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
Use identical content
Every fixture contains the same name, contact information, employers, education, technologies, and five section headings.
- 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
Extract with two independent libraries
The run uses pdfplumber 0.11.9 and pypdf 6.10.0.
- 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.