CV parsing explained: how your ATS reads a resume
How CV parsing works inside an ATS: the fields a parser extracts, multilingual support, the layouts that break parsing, and why deduplication by email matters.
On this page
CV parsing converts an uploaded resume file into structured candidate data: contact details, work history, education, skills, and languages, in seconds rather than minutes of typing. Good parsers read PDF and Word files across languages, survive imperfect layouts, and deduplicate by email so the same person never becomes two records.
What fields does a CV parser extract?
| Field group | Typical fields | Reliability |
|---|---|---|
| Identity | Name, email, phone, location | High; this is the easy part |
| Work history | Employers, titles, dates, descriptions | Good on conventional layouts; dates trip on formats like “summer 2021” |
| Education | Degrees, institutions, graduation years | Good; local abbreviations vary by country |
| Skills | Explicit skill lists plus skills inferred from role descriptions | The differentiator between parsers |
| Languages | Spoken languages and levels | Often self-reported and optimistic |
| Extras | Links, certifications, work permits | Patchy; verify manually when it matters |
The skills row is where parsers differ most. Weak ones only lift the literal skills section; strong ones infer skills from what the person actually did in each role. That distinction feeds straight into how candidate matching works, because a skill the parser missed is a match the engine cannot make.
Can CV parsing handle every language?
Mainstream languages parse well; the long tail does not. For EU recruiting, the practical bar is solid Dutch, German, French, and English handling, including the mixed-language CV, since a Dutch CV with English job titles is the normal case rather than the exception. Specific things to test with any vendor:
- Date conventions: 1-3-2024 and 3/1/2024 are different days in different countries.
- Local education systems and degree abbreviations, which rarely translate one to one.
- Names with diacritics, and transliterated names that appear in two spellings.
- CVs that switch language halfway, usually at the skills section.
A vendor demo should run on your real CV mix, not on their polished sample files.
Where does CV parsing fail?
Every parser fails somewhere, so here is the honest list:
- Two-column and creative layouts. Text extraction can read columns in the wrong order and scramble work history.
- Scanned or photographed CVs. Image files need character recognition first, and quality follows the quality of the scan.
- Tables and text boxes. Content placed inside design elements gets skipped by weaker extractors.
- Unusual dates and gaps. Phrases like “2019 to now”, sabbaticals, and overlapping roles confuse timeline logic.
- Headshots, logos, and graphics. Decoration the parser must ignore, and sometimes does not.
The design consequence: parsing must always be correctable. The candidate record should show the original CV next to the extracted data so a recruiter can fix a wrong field in seconds. A parser that hides its source document is a parser you cannot audit.
How does deduplication by email work?
The email address acts as the natural key. When a CV arrives, whether uploaded by a recruiter, submitted through an apply form, or imported in bulk, the system checks whether a candidate with that email already exists. On a match, the new application attaches to the existing record: history accumulates on one profile instead of splitting across duplicates. You immediately see that this person also applied last year, which stage they reached, and what notes were left.
Recruitifly deduplicates by email at intake and during migration imports, which is what keeps a transferred database clean instead of doubled. One limit worth knowing: people legitimately use multiple addresses, so good systems also flag near-matches, the same name and phone under a new email, for a human merge decision rather than merging silently.
What happens after the CV is parsed?
Parsing is the front door to everything else. The structured profile becomes searchable, so you can find every candidate with payroll experience near Utrecht in one query. It feeds matching and pipeline scoring, and it pre-fills what candidates would otherwise retype in application forms. Parsing quality therefore caps the quality of everything downstream. When you evaluate an ATS, upload twenty of your own recent CVs, including the ugly ones, and inspect the resulting profiles field by field; the features overview shows where parsing sits in Recruitifly’s flow.
Recruitifly is in private beta. Bring your strangest CVs and see how the parser holds up: talk to us to join.
Frequently asked questions
What is CV parsing in an ATS?
CV parsing is the automatic extraction of structured data from an uploaded resume: name, contact details, work history, education, skills, and languages. The ATS turns a PDF or Word file into a searchable candidate profile in seconds, so nobody retypes CVs and search and matching can work across the whole database.
Why do CV parsers fail on some resumes?
The usual culprits are two-column layouts read in the wrong order, scanned images that need character recognition first, content hidden inside tables or text boxes, unusual date formats, and decorative graphics. No parser is perfect, so the system should always show the original CV beside the extracted fields and let a recruiter correct mistakes in seconds.
How does an ATS detect duplicate candidates?
Primarily by email address. When a CV arrives or an import runs, the system checks for an existing candidate with the same email and attaches the new application to that record instead of creating a twin. Recruitifly applies this at intake and during migration imports. Near-matches with different addresses should be flagged for a human merge decision.
Can an ATS parse Dutch or German CVs?
Good parsers handle the major European languages, including Dutch, German, and French, and cope with the common mixed case such as a Dutch CV with English job titles. Quality drops on rarer languages and on local conventions like degree abbreviations, so always test a vendor with your own real CV mix before relying on it.
Recruitifly Editorial
Editorial
Related reading
Adding LLM screening to your ATS without creating duplicate records
Layer LLM screening over your ATS without splitting your candidate data: one source of truth, stable ID sync, scores written back as fields, not copies.
Sourcing with adjacent job titles and skills
Searching one job title misses most of the market. A worked SRE example plus a repeatable method for mapping adjacent titles and skills for any role.
AI Act candidate disclosure: notice template
What to tell applicants when automated screening is used, under the EU AI Act and GDPR Articles 13, 14 and 22, plus a copy-paste disclosure notice template.
Want to see how this looks on your own data?
No hard promises. Just a straight conversation about exports, stages, and your current stack.
Contact us