ATS parsing test
How our resumes parse,tested in the open.
We exported one fictional resume from every HireCurve template as PDF and DOCX, ran each file through open-source resume parsers, and checked every field against what the resume actually says. Everything is here, failures included.
What we found.Then we fixed the templates and ran it again.
Text extraction
11 of 11 files: every value readable, in order
Before and after the fixes, all 17 ground-truth values are in the extracted text of every template and both formats, and the three roles come out in page order.
OpenResume, all PDFs
37 → 92 of 102 fields
The first run failed on four layout choices, fixed below. Signal went from 3 to 17 of 17 and Compact to 17 of 17. What it still misses comes from how it reads page two: see what's still weak.
pyresparser, all files
36 → 33 of 132 fields
Still weak, and not all better: the PDFs of four templates improved, but Signal's PDFs and every DOCX dropped by one field. Its name and company guesses come from a small 2019 language model and shift with the words around them.
What we changed.A parsing fix, not a redesign.
01
Title and company on separate lines
The role heading was one line, “Senior DevSecOps Engineer — Northwind Cloud Services”, which OpenResume read as a company with no title. The company now sits on its own line under the title, in every template and in both PDF and DOCX.
02
Signal’s section numbers are drawn, not typed
OpenResume looks for a heading that is one bold, all-caps word, and Signal’s “01 SUMMARY” wasn’t one. In the PDF the numbers are now vector outlines in the same font and color, so the text is just “SUMMARY”. Word has no ATS-safe way to draw them, so the DOCX leaves them out and keeps the heading at the same indent.
03
Name first, tagline under it
The small focus-area line (“PLATFORM ENGINEERING · KUBERNETES · DEVSECOPS”) sat above the name, so parsers that take the first line as the name got the tagline. It now sits under the name. In Signal it also moved a few pixels lower, because pdf.js joined it to the 32pt name when it was closer.
04
Education on two lines
“B.S. Computer Engineering — University of North Texas, 2016” is now the degree on one line and the school on the next, with the year right-aligned like role dates. The words are unchanged; the line is only split.
Fonts, colors and spacing are otherwise unchanged. Separate lines make roles a little taller, so some templates now run onto a second page.
Results by file.Correct fields, before → after the fixes.
| File | Text extraction | OpenResume | pyresparser |
|---|---|---|---|
| Signal · PDF | 17 → 17 of 17all correct | 3 → 17 of 17all correct | 7 → 6 of 122 partial, 1 wrong, 3 missing |
| Signal · PDF (dark) | 17 → 17 of 17all correct | 3 → 14 of 173 missing | 7 → 6 of 122 partial, 1 wrong, 3 missing |
| Signal · DOCX | 17 → 17 of 17all correct | PDF only | 2 → 1 of 123 partial, 8 missing |
| Classic · PDF | 17 → 17 of 17all correct | 8 → 14 of 173 missing | 2 → 3 of 122 partial, 7 missing |
| Classic · DOCX | 17 → 17 of 17all correct | PDF only | 2 → 1 of 123 partial, 8 missing |
| Modern · PDF | 17 → 17 of 17all correct | 8 → 14 of 173 missing | 2 → 3 of 122 partial, 7 missing |
| Modern · DOCX | 17 → 17 of 17all correct | PDF only | 2 → 1 of 123 partial, 8 missing |
| Compact · PDF | 17 → 17 of 17all correct | 8 → 17 of 17all correct | 2 → 3 of 122 partial, 7 missing |
| Compact · DOCX | 17 → 17 of 17all correct | PDF only | 2 → 1 of 123 partial, 8 missing |
| Executive · PDF | 17 → 17 of 17all correct | 7 → 16 of 171 missing | 6 → 7 of 122 partial, 3 missing |
| Executive · DOCX | 17 → 17 of 17all correct | PDF only | 2 → 1 of 123 partial, 8 missing |
Grey is the first run on the original templates (2026-09-27); black is the run on the fixed templates (2026-09-27), same resume, same parser versions and same scoring rules. Counts, not a score: a field is either extracted correctly or it isn't. Fields a parser doesn't attempt (pyresparser has no location, role dates or graduation year) are left out of its count. The 5 DOCX files have no OpenResume result because it reads PDF only.
Every field, every file (fixed templates)
›Signal · PDF
| Field | Ground truth | Text extraction | OpenResume | pyresparser |
|---|---|---|---|---|
| Name | Jordan Okafor | correct | correctJORDAN OKAFOR | wrongDEVSECOPS Austin |
| jordan.okafor@example.com | correct | correctjordan.okafor@example.com | correctjordan.okafor@example.com | |
| Phone | (555) 010-2233 | correct | correct(555) 010-2233 | partial010-2233 |
| Location | Austin, TX | correct | correctAustin, TX | n/a |
| Role 1 title | Senior DevSecOps Engineer | correct | correctSenior DevSecOps Engineer | correctSenior DevSecOps Engineer |
| Role 1 company | Northwind Cloud Services | correct | correctNorthwind Cloud Services | missingBrightline Health |
| Role 1 dates | 2022-03 – present | correct | correctMAR 2022 – PRESENT | n/a |
| Role 2 title | Site Reliability Engineer | correct | correctSite Reliability Engineer | correctSite Reliability Engineer |
| Role 2 company | Brightline Health | correct | correctBrightline Health | correctBrightline Health |
| Role 2 dates | 2019-06 – 2022-02 | correct | correctJUN 2019 – FEB 2022 | n/a |
| Role 3 title | Systems Engineer | correct | correctSystems Engineer | correctSystems Engineer |
| Role 3 company | Keystone Systems | correct | correctKeystone Systems | missingBrightline Health |
| Role 3 dates | 2016-07 – 2019-05 | correct | correctJUL 2016 – MAY 2019 | n/a |
| Degree | B.S. Computer Engineering | correct | correctB.S. Computer Engineering | correctB.S. Computer Engineering |
| School | University of North Texas | correct | correctUniversity of North Texas | missing |
| Graduation year | 2016 | correct | correct2016 | n/a |
| Skills | 26 skills | correct (26 of 26) | correct (26 of 26)Cloud & Containers AWS, Kubernetes, Amazon EKS, Docker, Helm, Karpenter, Infrastructure as Code Terraform, Ansible, AWS Config, CI/CD & GitO… | partial (5 of 26)Python, Ansible, Aws, Compliance, Health, Audit, Security, Engineering, Docker, Config, Cloud, Linux, Technical, Github |
Original file · its OpenResume output · Raw output of the fixed file: Text extraction · OpenResume · pyresparser
›Signal · PDF (dark)
| Field | Ground truth | Text extraction | OpenResume | pyresparser |
|---|---|---|---|---|
| Name | Jordan Okafor | correct | correctJORDAN OKAFOR | wrongDEVSECOPS Austin |
| jordan.okafor@example.com | correct | correctjordan.okafor@example.com | correctjordan.okafor@example.com | |
| Phone | (555) 010-2233 | correct | correct(555) 010-2233 | partial010-2233 |
| Location | Austin, TX | correct | correctAustin, TX | n/a |
| Role 1 title | Senior DevSecOps Engineer | correct | correctSenior DevSecOps Engineer | correctSenior DevSecOps Engineer |
| Role 1 company | Northwind Cloud Services | correct | correctNorthwind Cloud Services | missingBrightline Health |
| Role 1 dates | 2022-03 – present | correct | correctMAR 2022 – PRESENT | n/a |
| Role 2 title | Site Reliability Engineer | correct | correctSite Reliability Engineer | correctSite Reliability Engineer |
| Role 2 company | Brightline Health | correct | correctBrightline Health | correctBrightline Health |
| Role 2 dates | 2019-06 – 2022-02 | correct | correctJUN 2019 – FEB 2022 | n/a |
| Role 3 title | Systems Engineer | correct | missing | correctSystems Engineer |
| Role 3 company | Keystone Systems | correct | missing | missingBrightline Health |
| Role 3 dates | 2016-07 – 2019-05 | correct | missing | n/a |
| Degree | B.S. Computer Engineering | correct | correctB.S. Computer Engineering | correctB.S. Computer Engineering |
| School | University of North Texas | correct | correctUniversity of North Texas | missing |
| Graduation year | 2016 | correct | correct2016 | n/a |
| Skills | 26 skills | correct (26 of 26) | correct (26 of 26)Cloud & Containers AWS, Kubernetes, Amazon EKS, Docker, Helm, Karpenter, Infrastructure as Code Terraform, Ansible, AWS Config, CI/CD & GitO… | partial (5 of 26)Python, Ansible, Aws, Compliance, Health, Audit, Security, Engineering, Docker, Config, Cloud, Linux, Technical, Github |
Original file · its OpenResume output · Raw output of the fixed file: Text extraction · OpenResume · pyresparser
›Signal · DOCX
| Field | Ground truth | Text extraction | OpenResume | pyresparser |
|---|---|---|---|---|
| Name | Jordan Okafor | correct | PDF only | partialJordan Okafor PLATFORM |
| jordan.okafor@example.com | correct | PDF only | correctjordan.okafor@example.com | |
| Phone | (555) 010-2233 | correct | PDF only | partial010-2233 |
| Location | Austin, TX | correct | PDF only | n/a |
| Role 1 title | Senior DevSecOps Engineer | correct | PDF only | missingSolutions Architect – Associate | DEVSECOPS |
| Role 1 company | Northwind Cloud Services | correct | PDF only | missingAmazon |
| Role 1 dates | 2022-03 – present | correct | PDF only | n/a |
| Role 2 title | Site Reliability Engineer | correct | PDF only | missingSolutions Architect – Associate | DEVSECOPS |
| Role 2 company | Brightline Health | correct | PDF only | missingAmazon |
| Role 2 dates | 2019-06 – 2022-02 | correct | PDF only | n/a |
| Role 3 title | Systems Engineer | correct | PDF only | missingSolutions Architect – Associate | DEVSECOPS |
| Role 3 company | Keystone Systems | correct | PDF only | missingAmazon |
| Role 3 dates | 2016-07 – 2019-05 | correct | PDF only | n/a |
| Degree | B.S. Computer Engineering | correct | PDF only | missing |
| School | University of North Texas | correct | PDF only | missing |
| Graduation year | 2016 | correct | PDF only | n/a |
| Skills | 26 skills | correct (26 of 26) | PDF only | partial (5 of 26)Python, Ansible, Aws, Compliance, Health, Audit, Security, Engineering, Docker, Config, Cloud, Linux, Technical, Github |
Original file · its OpenResume output · Raw output of the fixed file: Text extraction · pyresparser
›Classic · PDF
| Field | Ground truth | Text extraction | OpenResume | pyresparser |
|---|---|---|---|---|
| Name | Jordan Okafor | correct | correctJordan Okafor | correctJordan Okafor |
| jordan.okafor@example.com | correct | correctjordan.okafor@example.com | correctjordan.okafor@example.com | |
| Phone | (555) 010-2233 | correct | correct(555) 010-2233 | partial010-2233 |
| Location | Austin, TX | correct | correctAustin, TX | n/a |
| Role 1 title | Senior DevSecOps Engineer | correct | correctSenior DevSecOps Engineer | missingSenior Platform Engineer | Platform engineer |
| Role 1 company | Northwind Cloud Services | correct | correctNorthwind Cloud Services | missing |
| Role 1 dates | 2022-03 – present | correct | correctMAR 2022 – PRESENT | n/a |
| Role 2 title | Site Reliability Engineer | correct | correctSite Reliability Engineer | missingSenior Platform Engineer | Platform engineer |
| Role 2 company | Brightline Health | correct | correctBrightline Health | missing |
| Role 2 dates | 2019-06 – 2022-02 | correct | correctJUN 2019 – FEB 2022 | n/a |
| Role 3 title | Systems Engineer | correct | missing | missingSenior Platform Engineer | Platform engineer |
| Role 3 company | Keystone Systems | correct | missing | missing |
| Role 3 dates | 2016-07 – 2019-05 | correct | missing | n/a |
| Degree | B.S. Computer Engineering | correct | correctB.S. Computer Engineering | correctB.S. Computer Engineering |
| School | University of North Texas | correct | correctUniversity of North Texas | missing |
| Graduation year | 2016 | correct | correct2016 | n/a |
| Skills | 26 skills | correct (26 of 26) | correct (26 of 26)Cloud & Containers: AWS, Kubernetes, Amazon EKS, Docker, Helm, Karpenter, Infrastructure as Code: Terraform, Ansible, AWS Config, CI/CD & Gi… | partial (5 of 26)Python, Ansible, Aws, Compliance, Health, Audit, Security, Engineering, Docker, Config, Cloud, Linux, Technical, Github |
Original file · its OpenResume output · Raw output of the fixed file: Text extraction · OpenResume · pyresparser
›Classic · DOCX
| Field | Ground truth | Text extraction | OpenResume | pyresparser |
|---|---|---|---|---|
| Name | Jordan Okafor | correct | PDF only | partialJordan Okafor PLATFORM |
| jordan.okafor@example.com | correct | PDF only | correctjordan.okafor@example.com | |
| Phone | (555) 010-2233 | correct | PDF only | partial010-2233 |
| Location | Austin, TX | correct | PDF only | n/a |
| Role 1 title | Senior DevSecOps Engineer | correct | PDF only | missingSolutions Architect – Associate | DEVSECOPS |
| Role 1 company | Northwind Cloud Services | correct | PDF only | missingAmazon |
| Role 1 dates | 2022-03 – present | correct | PDF only | n/a |
| Role 2 title | Site Reliability Engineer | correct | PDF only | missingSolutions Architect – Associate | DEVSECOPS |
| Role 2 company | Brightline Health | correct | PDF only | missingAmazon |
| Role 2 dates | 2019-06 – 2022-02 | correct | PDF only | n/a |
| Role 3 title | Systems Engineer | correct | PDF only | missingSolutions Architect – Associate | DEVSECOPS |
| Role 3 company | Keystone Systems | correct | PDF only | missingAmazon |
| Role 3 dates | 2016-07 – 2019-05 | correct | PDF only | n/a |
| Degree | B.S. Computer Engineering | correct | PDF only | missing |
| School | University of North Texas | correct | PDF only | missing |
| Graduation year | 2016 | correct | PDF only | n/a |
| Skills | 26 skills | correct (26 of 26) | PDF only | partial (5 of 26)Python, Ansible, Aws, Compliance, Health, Audit, Security, Engineering, Docker, Config, Cloud, Linux, Technical, Github |
Original file · its OpenResume output · Raw output of the fixed file: Text extraction · pyresparser
›Modern · PDF
| Field | Ground truth | Text extraction | OpenResume | pyresparser |
|---|---|---|---|---|
| Name | Jordan Okafor | correct | correctJordan Okafor | correctJordan Okafor |
| jordan.okafor@example.com | correct | correctjordan.okafor@example.com | correctjordan.okafor@example.com | |
| Phone | (555) 010-2233 | correct | correct(555) 010-2233 | partial010-2233 |
| Location | Austin, TX | correct | correctAustin, TX | n/a |
| Role 1 title | Senior DevSecOps Engineer | correct | correctSenior DevSecOps Engineer | missingSenior Platform Engineer | Platform engineer |
| Role 1 company | Northwind Cloud Services | correct | correctNorthwind Cloud Services | missing |
| Role 1 dates | 2022-03 – present | correct | correctMAR 2022 – PRESENT | n/a |
| Role 2 title | Site Reliability Engineer | correct | correctSite Reliability Engineer | missingSenior Platform Engineer | Platform engineer |
| Role 2 company | Brightline Health | correct | correctBrightline Health | missing |
| Role 2 dates | 2019-06 – 2022-02 | correct | correctJUN 2019 – FEB 2022 | n/a |
| Role 3 title | Systems Engineer | correct | missing | missingSenior Platform Engineer | Platform engineer |
| Role 3 company | Keystone Systems | correct | missing | missing |
| Role 3 dates | 2016-07 – 2019-05 | correct | missing | n/a |
| Degree | B.S. Computer Engineering | correct | correctB.S. Computer Engineering | correctB.S. Computer Engineering |
| School | University of North Texas | correct | correctUniversity of North Texas | missing |
| Graduation year | 2016 | correct | correct2016 | n/a |
| Skills | 26 skills | correct (26 of 26) | correct (26 of 26)Cloud & Containers: AWS, Kubernetes, Amazon EKS, Docker, Helm, Karpenter, Infrastructure as Code: Terraform, Ansible, AWS Config, CI/CD & Gi… | partial (5 of 26)Python, Ansible, Aws, Compliance, Health, Audit, Security, Engineering, Docker, Config, Cloud, Linux, Technical, Github |
Original file · its OpenResume output · Raw output of the fixed file: Text extraction · OpenResume · pyresparser
›Modern · DOCX
| Field | Ground truth | Text extraction | OpenResume | pyresparser |
|---|---|---|---|---|
| Name | Jordan Okafor | correct | PDF only | partialJordan Okafor PLATFORM |
| jordan.okafor@example.com | correct | PDF only | correctjordan.okafor@example.com | |
| Phone | (555) 010-2233 | correct | PDF only | partial010-2233 |
| Location | Austin, TX | correct | PDF only | n/a |
| Role 1 title | Senior DevSecOps Engineer | correct | PDF only | missingSolutions Architect – Associate | DEVSECOPS |
| Role 1 company | Northwind Cloud Services | correct | PDF only | missingAmazon |
| Role 1 dates | 2022-03 – present | correct | PDF only | n/a |
| Role 2 title | Site Reliability Engineer | correct | PDF only | missingSolutions Architect – Associate | DEVSECOPS |
| Role 2 company | Brightline Health | correct | PDF only | missingAmazon |
| Role 2 dates | 2019-06 – 2022-02 | correct | PDF only | n/a |
| Role 3 title | Systems Engineer | correct | PDF only | missingSolutions Architect – Associate | DEVSECOPS |
| Role 3 company | Keystone Systems | correct | PDF only | missingAmazon |
| Role 3 dates | 2016-07 – 2019-05 | correct | PDF only | n/a |
| Degree | B.S. Computer Engineering | correct | PDF only | missing |
| School | University of North Texas | correct | PDF only | missing |
| Graduation year | 2016 | correct | PDF only | n/a |
| Skills | 26 skills | correct (26 of 26) | PDF only | partial (5 of 26)Python, Ansible, Aws, Compliance, Health, Audit, Security, Engineering, Docker, Config, Cloud, Linux, Technical, Github |
Original file · its OpenResume output · Raw output of the fixed file: Text extraction · pyresparser
›Compact · PDF
| Field | Ground truth | Text extraction | OpenResume | pyresparser |
|---|---|---|---|---|
| Name | Jordan Okafor | correct | correctJordan Okafor | correctJordan Okafor |
| jordan.okafor@example.com | correct | correctjordan.okafor@example.com | correctjordan.okafor@example.com | |
| Phone | (555) 010-2233 | correct | correct(555) 010-2233 | partial010-2233 |
| Location | Austin, TX | correct | correctAustin, TX | n/a |
| Role 1 title | Senior DevSecOps Engineer | correct | correctSenior DevSecOps Engineer | missingSenior Platform Engineer | Platform engineer |
| Role 1 company | Northwind Cloud Services | correct | correctNorthwind Cloud Services | missing |
| Role 1 dates | 2022-03 – present | correct | correctMAR 2022 – PRESENT | n/a |
| Role 2 title | Site Reliability Engineer | correct | correctSite Reliability Engineer | missingSenior Platform Engineer | Platform engineer |
| Role 2 company | Brightline Health | correct | correctBrightline Health | missing |
| Role 2 dates | 2019-06 – 2022-02 | correct | correctJUN 2019 – FEB 2022 | n/a |
| Role 3 title | Systems Engineer | correct | correctSystems Engineer | missingSenior Platform Engineer | Platform engineer |
| Role 3 company | Keystone Systems | correct | correctKeystone Systems | missing |
| Role 3 dates | 2016-07 – 2019-05 | correct | correctJUL 2016 – MAY 2019 | n/a |
| Degree | B.S. Computer Engineering | correct | correctB.S. Computer Engineering | correctB.S. Computer Engineering |
| School | University of North Texas | correct | correctUniversity of North Texas | missing |
| Graduation year | 2016 | correct | correct2016 | n/a |
| Skills | 26 skills | correct (26 of 26) | correct (26 of 26)Cloud & Containers: AWS, Kubernetes, Amazon EKS, Docker, Helm, Karpenter, Infrastructure as Code: Terraform, Ansible, AWS Config, CI/CD & Gi… | partial (5 of 26)Python, Ansible, Aws, Compliance, Health, Audit, Security, Engineering, Docker, Config, Cloud, Linux, Technical, Github |
Original file · its OpenResume output · Raw output of the fixed file: Text extraction · OpenResume · pyresparser
›Compact · DOCX
| Field | Ground truth | Text extraction | OpenResume | pyresparser |
|---|---|---|---|---|
| Name | Jordan Okafor | correct | PDF only | partialJordan Okafor PLATFORM |
| jordan.okafor@example.com | correct | PDF only | correctjordan.okafor@example.com | |
| Phone | (555) 010-2233 | correct | PDF only | partial010-2233 |
| Location | Austin, TX | correct | PDF only | n/a |
| Role 1 title | Senior DevSecOps Engineer | correct | PDF only | missingSolutions Architect – Associate | DEVSECOPS |
| Role 1 company | Northwind Cloud Services | correct | PDF only | missingAmazon |
| Role 1 dates | 2022-03 – present | correct | PDF only | n/a |
| Role 2 title | Site Reliability Engineer | correct | PDF only | missingSolutions Architect – Associate | DEVSECOPS |
| Role 2 company | Brightline Health | correct | PDF only | missingAmazon |
| Role 2 dates | 2019-06 – 2022-02 | correct | PDF only | n/a |
| Role 3 title | Systems Engineer | correct | PDF only | missingSolutions Architect – Associate | DEVSECOPS |
| Role 3 company | Keystone Systems | correct | PDF only | missingAmazon |
| Role 3 dates | 2016-07 – 2019-05 | correct | PDF only | n/a |
| Degree | B.S. Computer Engineering | correct | PDF only | missing |
| School | University of North Texas | correct | PDF only | missing |
| Graduation year | 2016 | correct | PDF only | n/a |
| Skills | 26 skills | correct (26 of 26) | PDF only | partial (5 of 26)Python, Ansible, Aws, Compliance, Health, Audit, Security, Engineering, Docker, Config, Cloud, Linux, Technical, Github |
Original file · its OpenResume output · Raw output of the fixed file: Text extraction · pyresparser
›Executive · PDF
| Field | Ground truth | Text extraction | OpenResume | pyresparser |
|---|---|---|---|---|
| Name | Jordan Okafor | correct | correctJordan Okafor | correctJordan Okafor |
| jordan.okafor@example.com | correct | correctjordan.okafor@example.com | correctjordan.okafor@example.com | |
| Phone | (555) 010-2233 | correct | correct(555) 010-2233 | partial010-2233 |
| Location | Austin, TX | correct | correctAustin, TX | n/a |
| Role 1 title | Senior DevSecOps Engineer | correct | correctSenior DevSecOps Engineer | correctSenior DevSecOps Engineer |
| Role 1 company | Northwind Cloud Services | correct | correctNorthwind Cloud Services | missingBrightline Health | Amazon |
| Role 1 dates | 2022-03 – present | correct | correctMAR 2022 – PRESENT | n/a |
| Role 2 title | Site Reliability Engineer | correct | correctSite Reliability Engineer | correctSite Reliability Engineer |
| Role 2 company | Brightline Health | correct | correctBrightline Health | correctBrightline Health |
| Role 2 dates | 2019-06 – 2022-02 | correct | correctJUN 2019 – FEB 2022 | n/a |
| Role 3 title | Systems Engineer | correct | correctSystems Engineer | correctSystems Engineer |
| Role 3 company | Keystone Systems | correct | correctKeystone Systems | missingBrightline Health | Amazon |
| Role 3 dates | 2016-07 – 2019-05 | correct | correctJUL 2016 – MAY 2019 | n/a |
| Degree | B.S. Computer Engineering | correct | correctB.S. Computer Engineering | correctB.S. Computer Engineering |
| School | University of North Texas | correct | correctUniversity of North Texas | missing |
| Graduation year | 2016 | correct | correct2016 | n/a |
| Skills | 26 skills | correct (26 of 26) | missing (0 of 26) | partial (5 of 26)Python, Aws, Compliance, Health, Technical, Audit, Security, Engineering, Docker, Config, Cloud, Linux, Ansible, Github |
Original file · its OpenResume output · Raw output of the fixed file: Text extraction · OpenResume · pyresparser
›Executive · DOCX
| Field | Ground truth | Text extraction | OpenResume | pyresparser |
|---|---|---|---|---|
| Name | Jordan Okafor | correct | PDF only | partialJordan Okafor PLATFORM |
| jordan.okafor@example.com | correct | PDF only | correctjordan.okafor@example.com | |
| Phone | (555) 010-2233 | correct | PDF only | partial010-2233 |
| Location | Austin, TX | correct | PDF only | n/a |
| Role 1 title | Senior DevSecOps Engineer | correct | PDF only | missingSenior Platform Engineer | Solutions Architect – Associate |
| Role 1 company | Northwind Cloud Services | correct | PDF only | missingAmazon |
| Role 1 dates | 2022-03 – present | correct | PDF only | n/a |
| Role 2 title | Site Reliability Engineer | correct | PDF only | missingSenior Platform Engineer | Solutions Architect – Associate |
| Role 2 company | Brightline Health | correct | PDF only | missingAmazon |
| Role 2 dates | 2019-06 – 2022-02 | correct | PDF only | n/a |
| Role 3 title | Systems Engineer | correct | PDF only | missingSenior Platform Engineer | Solutions Architect – Associate |
| Role 3 company | Keystone Systems | correct | PDF only | missingAmazon |
| Role 3 dates | 2016-07 – 2019-05 | correct | PDF only | n/a |
| Degree | B.S. Computer Engineering | correct | PDF only | missing |
| School | University of North Texas | correct | PDF only | missing |
| Graduation year | 2016 | correct | PDF only | n/a |
| Skills | 26 skills | correct (26 of 26) | PDF only | partial (5 of 26)Python, Aws, Compliance, Health, Technical, Audit, Security, Engineering, Docker, Config, Cloud, Linux, Ansible, Github |
Original file · its OpenResume output · Raw output of the fixed file: Text extraction · pyresparser
How we tested.So you can check it.
The resume. One fictional person, Jordan Okafor, with example.com and 555-01xx contact details: three roles, one degree, two certifications and eight skill lines. It is the same sample resume HireCurve's own tests use.
The files. Each of the five templates was exported through the same code that serves your downloads: PDF through Gotenberg 8.37.0 (headless Chromium, as in production) and DOCX from our Word generator. Signal also has a dark PDF, so it is tested too. That is 6 PDFs and 5 DOCX files.
Scoring. Both sides are normalized before comparing: case, whitespace and dash styles are ignored, phones are compared digit by digit, and dates are compared as month and year (“MAR 2022” = “March 2022”). A field is correct when the values match, partial when one contains the other or only one of two dates matches, wrong when a different value was extracted, and missing when nothing was. For text extraction, correct means the value appears in the text.
First run on the original templates 2026-09-27; second run on the fixed templates 2026-09-27. Everything ran locally with free, open-source tools; no paid parsing service, and no AI model, was used.
Parsers and versions
- Apache Tika (plain text)
- Apache Tika 3.2.3
- Extracts the raw text of a PDF or DOCX. Field parsing starts from text like this, so it shows whether every value is readable at all and whether the roles come out in order.
- OpenResume parser
- commit 4f8255a, pdf.js 3.7.107
- The open-source parser behind open-resume.com. Reads PDF only, groups lines into sections by their headings, then picks fields with scoring rules.
- pyresparser
- 1.0.6 (spaCy 2.3.9, en_core_web_sm 2.3.1, pdfminer.six 20240706, docx2txt 0.8)
- A widely copied Python parser built on spaCy and NLTK. Reads PDF and DOCX; returns name, email, phone, skills, degree and flat lists of titles and companies, not one record per role.
Ground truth
- Name
- Jordan Okafor
- jordan.okafor@example.com
- Phone
- (555) 010-2233
- Location
- Austin, TX
- Role 1
- Senior DevSecOps Engineer, Northwind Cloud Services2022-03 to present
- Role 2
- Site Reliability Engineer, Brightline Health2019-06 to 2022-02
- Role 3
- Systems Engineer, Keystone Systems2016-07 to 2019-05
- Education
- B.S. Computer Engineering, University of North Texas, 2016
- Skills
- AWS, Kubernetes, Amazon EKS, Docker, Helm, Karpenter, Terraform, Ansible, AWS Config, GitHub Actions, Argo CD, Jenkins, Prometheus, Grafana, SLOs, On-call, Trivy, Checkov, HashiCorp Vault, SOC 2, Python, Go, Bash, Linux, FinOps, Rightsizing
What's still weak.And why.
- OpenResume loses whatever starts page two. It joins the last line of page one to the first line of page two with no break between them. Where a role or a heading lands at the top of page two, that role (Classic, Modern, Signal dark) or that section (Executive's skills) is lost. One-page resumes don't hit this: Compact, the densest template, gets 17 of 17.
- pyresparser is unreliable either way. It reads the name with the first word of the tagline attached in every DOCX (partial), misreads the name in Signal's PDFs, only ever finds “010-2233” of the phone number, never finds the school, and matches 5 of 26 skills because it only knows its own skill list.
- Signal's DOCX has no section numbers. Word files have no ATS-safe way to draw them, so they are left out; the PDF keeps them as graphics.
What this doesn't show.Read before quoting it.
- These are not the systems employers use. Workday, Greenhouse, Lever, iCIMS, Taleo and the rest run their own proprietary parsers. We can't test those for free, and we won't guess how they behave. Treat these results as a sign of how a file holds up in general, not as a prediction for any one employer.
- Open-source parsers are simpler. OpenResume states it only handles single-column English resumes; pyresparser was last released in 2019 and relies on a small spaCy model. Commercial parsers are usually more forgiving, but not always.
- One resume. A different person's history (more roles, a second degree, no dates) could parse better or worse.
- Parsing is not ranking. Even a perfect parse says nothing about how a recruiter or a search filter scores the content. That is what keyword coverage is for.
Check it yourself.Files, raw output and the script.
The download has every exported file from the fixed templates, each parser's raw output, the ground truth, the results and the scripts we ran. The original files and their raw output stay available under /ats-test/before/. The parsers need Docker, Node and Python 3.9, all free. Re-exporting the files needs the HireCurve source, but the parse and score steps work on the files as downloaded.
Your next application,written from your real work.
Two applications a month are free, each with a cover letter and interview prep. Bring the resume you have; leave with one built for the job.
Start free