For recruiters and hiring teams
Resume parser: what it does, why it fails, and how to test one
A resume parser is software that reads a CV file, pulls out the text, and sorts it into fields such as name, contact details, jobs, education and skills. Quality varies with layout. Columns, tables, images and scanned PDFs cause most errors. Test any parser with ten of your own real CVs before you trust it.
What a resume parser is
A resume parser turns an unstructured document into structured data. A CV arrives as a PDF, a Word file or plain text. A person reads it top to bottom and understands it. A computer sees a stream of characters, and the parser's job is to decide which characters are a name, which are a job title, and which are a date range.
Recruiters meet parsers in two places. The first is an applicant tracking system, where the parser fills a candidate profile so you do not retype anything. The second is a screening tool, where the parsed text is compared with a job's requirements to rank applicants. In both cases the parser sits at the start of the pipeline, so its mistakes flow into everything after it.
Which fields come out
Most parsers aim to return a similar set of fields. What differs is how reliably each one is filled.
| Field | What it holds | Typical difficulty |
|---|---|---|
| Name | Full name, sometimes split into first and last | Low, but fails when the name sits in a graphic header |
| Contact | Email, phone, city, profile links | Low for email, medium for phone formats and locations |
| Work history | Employer, title, start and end dates, duties | High: layouts and date formats vary a lot |
| Education | School, degree, subject, year | Medium: degree names differ by country |
| Skills | Tools, languages, methods | Medium: skills hide inside sentences as well as lists |
| Certifications | Licences and named credentials | Medium |
| Summary | Profile paragraph at the top | Low |
| Total experience | Years worked, usually calculated from dates | High: depends on every date being read correctly |
How parsers work, in plain terms
Parsing happens in stages. Understanding the stages tells you where it can go wrong.
- Step 1, text extraction: the software opens the file and pulls out the text. For a PDF it reads the text layer. For a Word file it reads the document body. This step does not understand meaning at all.
- Step 2, segmentation: the text is cut into blocks, usually by spotting headings such as Experience, Education and Skills.
- Step 3, field detection: inside each block the parser finds items such as dates, company names and titles. Older parsers use rules and patterns. Newer ones use language models. Many use both.
- Step 4, normalisation: values are cleaned up, for example turning Sept 2021 and 09/2021 into one date format.
- Step 5, output: the result is stored as fields, or passed straight on to a scoring step.
Why resume parsers fail
Almost every bad parse traces back to step 1 or step 2: the text came out in the wrong order, or did not come out at all. The table lists the usual causes and what you can do.
| Cause | What goes wrong | What helps |
|---|---|---|
| Two or more columns | Text is read across the page, so a skill list gets mixed into a job description | Ask for single-column CVs, or read the original |
| Tables and text boxes | Cells come out in an odd order, or the box content is dropped | Check the parsed text, not just the fields |
| Images and graphic skill bars | Anything drawn as a picture has no text to read | Do not rely on rating graphics |
| Scanned PDFs | A scan is a photograph of a page with no text layer, so there is nothing to extract unless the tool runs OCR | Ask for a text-based export |
| Unusual headings | Segmentation misses sections called, for example, My Journey or Where I Have Been | Use standard headings in your own forms |
| Headers and footers | Contact details placed there can be lost or repeated on every page | Check contact fields first |
| Unusual dates | Missing months, seasons or ongoing roles break experience totals | Read dates yourself on close calls |
Accuracy, and how to test a parser with ten CVs
Be wary of any single accuracy percentage. It depends on whose CVs were used, in which language and layout. A vendor's number tells you little about your own applicants. Test with your own files instead.
A fair test takes under an hour. Gather ten real CVs from a past role, with permission and with personal details handled the way your policy requires. Choose them to include difficulty: two designed templates, one two-column CV, one with a table, one with a long career, one from a school leaver, one in a non-standard layout, one exported from Word, one exported from a design tool, and one scan if you receive them.
- Open each CV and write down by hand the name, email, last job title and last employer.
- Run all ten through the parser and compare. Score each field right, partly right or wrong.
- Look at the raw extracted text for the three worst files. If the text is jumbled, the fields cannot be right.
- Count how many files failed silently, meaning no error but wrong or empty output. Silent failure is the dangerous kind.
- Repeat with a few CVs from the people you most worry about missing, such as career changers.
A quick example of a bad parse
Imagine a two-column CV. The left column holds a skills list: Excel, SQL, Python. The right column holds the job history. A naive extractor reads straight across each line, so the output might read Excel Senior Analyst, SQL Acme Ltd, Python 2019 to 2023. A person sees the mix-up at once, but a parser may record the job title as Excel Senior Analyst and the employer as SQL Acme Ltd.
Nothing in that output says it failed. The fields are filled, just wrongly. This is why the raw text view matters more than any confidence number: if the extracted text reads out of order, every field built from it is suspect. The fix is rarely in the parser settings. It is usually a different file, such as a single-column export from the candidate.
File formats to expect
PDF and Word are the common formats, and plain text works too. Check which versions a tool really supports. Some read modern .docx files but not the older .doc format. Some limit file size. Images and links to online profiles are usually not parsed at all, so a CV that is only a photo of a page will fail.
If you build an application form, state the accepted formats on the page. It saves rejected uploads and support questions.
Privacy and data handling questions to ask
A CV contains personal data, often including a home address and a work history. Before you upload candidates to any parser, ask the vendor these questions and keep the answers in writing. Rules differ by country, so check your local law or take advice for anything you are unsure of.
- Where is the data stored, and for how long? Can you delete a candidate on request?
- Is candidate data used to train models? If so, can that be turned off?
- Which sub-processors, such as AI providers, receive the text?
- Does the tool redact personal details such as name or photo before anything is scored?
- Is there an audit trail showing who viewed or changed a record?
- How are candidates told their CV is processed, and is consent recorded?
Build or buy
Building your own parser looks easy in a demo and is hard in production. The long tail of layouts, languages and file quirks takes continuous work. Buying costs a subscription but moves that maintenance to someone else.
| Question | Build | Buy or use a tool |
|---|---|---|
| Time to first result | Weeks to months | Same day |
| Ongoing upkeep | Yours: new layouts and formats | The vendor's |
| Control over fields | Full | Limited to what the vendor exposes |
| Privacy review | You own it entirely | Needs a vendor review |
| Best for | Large teams with engineers and unusual needs | Small and mid-size hiring teams |
How Rezumz reads PDF, Word and text CVs
Rezumz uses one shared reader for CVs that come in through the apply page, recruiter uploads, the public parse endpoint and Slack file uploads, so all of them support the same formats. It reads PDF files by extracting the text layer, Word .docx files by extracting the document text, and plain .txt files directly. Any other file type is rejected with an error. The apply page accepts PDF, Word or text files up to 5MB.
One limit matters: Rezumz does not run OCR. A scanned PDF with no text layer, or a CV that is a photo, has no text to read, so it cannot be scored. When you see an empty result, ask the candidate for a text-based file.
After reading, Rezumz compares the text with the job's must-have and nice-to-have skills. 80 percent of the score is the share of must-haves found and 20 percent is the share of nice-to-haves, allowing for slightly different wording. The AI also reads the CV for extra signals such as certifications and leadership, shown beside the score. It never rejects anyone, and the CV text it relied on is shown so you can check it.
What to do when a CV will not parse
- Open the original and confirm you can select and copy text from it. If you cannot, it is a scan.
- Ask the candidate for a Word or text-based PDF version, politely and without implying fault.
- If the candidate is promising, read the file by hand and enter what matters.
- Add a note on the apply page saying which formats work best, to cut repeats.
- Never treat an empty result as a poor candidate. It means the file could not be read.
Who it is not for
Rezumz is built for small and mid-size hiring teams. If you need deep HRIS or payroll integration, a parser that does OCR on scans, or tight links to a specific enterprise ATS, a larger system may fit better. Rezumz connects to other tools through webhooks, a read-only API and tools such as Zapier or Make, not through ready-made enterprise connectors. Try the demo with your own awkward CVs to see if it reads them well enough for your work.
Frequently asked questions
What does a resume parser do?
It reads a CV file, extracts the text, and sorts it into fields such as name, contact details, work history, education and skills. Screening tools then compare those fields or the raw text with a job's requirements. Its output is only as good as the text it manages to extract.
Why does my resume parser get things wrong?
The most common reasons are multi-column layouts, tables, text inside images, scanned PDFs and unusual section headings. These break text extraction or section detection, so later steps work on jumbled or missing text. Checking the raw extracted text for a bad file usually shows the cause.
Can a resume parser read a scanned PDF?
Only if it includes OCR, which converts images of text into text. Many do not. Rezumz reads the text layer of PDFs and does not run OCR, so a scan without text cannot be read. Ask the candidate for a text-based PDF or Word file.
How do I test a resume parser?
Take ten real CVs including some hard layouts, write down the name, email, last title and last employer by hand, then compare with the parser output. Also inspect the raw text for the worst files and count silent failures, where output is wrong without any error.
Is it safe to upload CVs to a resume parser?
It depends on the vendor. Ask where data is stored, how long it is kept, whether it trains models, which sub-processors receive it, and how deletion works. Rules differ by country, so check local law or take advice for anything unclear.
What file types does Rezumz accept for CVs?
Rezumz reads PDF, Word .docx and plain text files. Other types are rejected. The apply page takes files up to 5MB. Scanned PDFs and photos without a text layer cannot be read because Rezumz does not run OCR.