Version 1.0 Published July 23, 2026 Reproducible files included

Controlled PDF resume format benchmark

We placed the same 14 resume fields in four one-page PDF layouts, then extracted each file with pdfplumber and pypdf. The test measures literal field recovery and section order—not acceptance by a proprietary applicant tracking system.

Result in one paragraph

The single-column and table fixtures returned all 14 fields in both parsers and preserved the expected section order. The two-column fixture returned 93% of fields in pdfplumber and 100% in pypdf, but both parsers reordered the sections. The image-only PDF returned no text because this benchmark did not apply OCR.

Four controlled fixtures

Extraction results

Fixture pdfplumber pypdf Expected order Interpretation File
Single-column semantic
One text column with conventional sections
100% 100% Preserved Strong extraction PDF ↓
Two-column sidebar
Skills and education in a left sidebar; experience in the main column
93% 100% Not preserved Fields recover; review order PDF ↓
Table-based layout
Section labels and content stored in table cells
100% 100% Preserved Strong extraction PDF ↓
Image-only scan
A raster image embedded in a PDF with no text layer
0% 0% Not preserved Poor extraction PDF ↓

Field recall is exact, case-insensitive matching after whitespace normalization. It does not judge whether a parser understood the meaning of the content.

Method

How the test works

  1. 1

    Use identical content

    Every fixture contains the same name, contact information, employers, education, technologies, and five section headings.

  2. 2

    Change only the document layout

    The fixtures use a single text column, a two-column sidebar, table cells, or a raster image with no embedded text layer.

  3. 3

    Extract with two independent libraries

    The run uses pdfplumber 0.11.9 and pypdf 6.10.0.

  4. 4

    Score fields and order

    The script checks 14 literal fields and whether SUMMARY, EXPERIENCE, PROJECTS, SKILLS, EDUCATION appear in that order.

What this supports

  • +A real text layer is necessary for these non-OCR parsers to recover resume content.
  • +A visually correct two-column resume can still produce a different text sequence.
  • +Tables are not automatically unreadable; results depend on how the PDF is created and parsed.
  • +Testing more than one extractor catches behavior that a single parser can hide.

What this does not prove

  • ×Ranking or acceptance in a proprietary applicant tracking system
  • ×Recruiter preference or interview outcomes
  • ×Optical character recognition
  • ×Semantic quality of extracted resume content

Workday, Greenhouse, Lever, and other proprietary systems can use different extraction, normalization, enrichment, and ranking logic. This benchmark does not represent or certify those vendors.

Use the result practically

Prefer a real text layer, conventional headings, and an order that still makes sense when styling is removed.