ATS education
How resume parsing works.
"Parsing" is the process of converting a resume file into structured data. It's the most technically interesting part of the ATS story, and the part most often explained badly. This article walks through what happens to your resume after you submit it, without pretending the process is more magical than it is.
Contents
1. The four steps of parsing
When you submit a resume to an ATS, the process typically involves four stages. Different systems implement these differently, but the overall shape is similar:
- Text extraction — the software reads your file and pulls out the raw text characters.
- Field detection — the software tries to identify what kind of information each piece of text is (a name, an email, a job title, a date).
- Field mapping — the software assigns the identified fields to the right structured fields in its database.
- Searchability — the extracted and mapped content becomes searchable by recruiters.
2. Step 1: text extraction
Text extraction is the process of getting the actual characters out of your resume file. This is different for different file formats:
- DOCX — the text is stored natively. Extraction is usually clean, but layout structures (tables, text boxes, headers) can confuse some extractors.
- PDF — this is where it gets complicated. PDFs can be generated in two very different ways:
- Text-based PDFs — generated from word processors or design tools. Text characters are embedded and extractable.
- Image-based PDFs — scanned documents or files generated from images. Text is not stored as characters; the file contains images of text. These require OCR (optical character recognition) to extract.
- Plain text (.txt) — trivially extractable, but unusual to submit.
Most resumes submitted as PDFs are text-based PDFs, and extraction works cleanly. But an image-based PDF is a serious problem: without OCR, the ATS sees nothing.
3. Step 2: field detection
Once the text is extracted, the ATS tries to work out what each piece of text represents. This is pattern-matching. Common patterns include:
- Email addresses — matched by their standard pattern (something@something.something).
- Phone numbers — matched by digit patterns, with allowances for different international formats.
- Dates — matched by month names, numerical formats, and year ranges.
- URLs — matched by http:// or www. patterns.
- Job titles — this is where it gets harder. There's no fixed pattern for "Senior Software Engineer"; the system has to be trained to recognise common title structures.
- Company names — even harder, since company names are essentially arbitrary strings.
Modern parsing engines are quite sophisticated — they use a mixture of regex, dictionaries, and machine learning models trained on large resume datasets. But they are not perfect.
4. Step 3: field mapping
Field mapping is the process of assigning detected fields to the ATS's internal data structure. For example, the parser might identify "January 2020 – March 2022" as a date range, then try to attach that range to the employment entry directly above it.
This is where layout matters most. If the date is placed in a confusing location — a sidebar, a table cell, an unexpected header — the mapping may attach the dates to the wrong entry, or fail to attach them at all.
5. Step 4: searchability
Once extracted and mapped, your resume becomes part of the ATS's searchable pool. When a recruiter searches for "Python developer with 5 years of experience", the ATS matches that query against the stored content using keyword matching and relevance ranking.
At this stage, the specific words in your resume matter. If you list "Python" but the search is for "Python developer", you may still match. If you describe your work as "wrote backend code" without ever naming Python, you may not appear even if you have five years of Python experience.
6. Where parsing fails
Common parsing failure modes:
- Multi-column layouts — the parser may read column by column, producing a scrambled text stream that mixes your education and experience into a single unreadable block.
- Tables — content inside table cells is sometimes extracted out of order or dropped entirely.
- Text boxes — content inside text boxes is often ignored entirely, or extracted at the end of the resume regardless of its visual position.
- Headers and footers — sometimes ignored, sometimes mixed into the body.
- Images containing text — invisible to text extraction unless OCR is enabled.
- Unusual fonts — some decorative or symbol fonts produce garbled text or missing characters.
- Unexpanded abbreviations — "Sr. Eng." may not map to "Senior Engineer" in some systems.
- Non-standard section names — "Career Journey" instead of "Experience" may not be recognised as an employment section.
7. What you can do
The practical response to all of this is straightforward:
- Submit a text-based PDF or DOCX. Both extract cleanly. Avoid submitting image-based PDFs.
- Use single-column layouts. Reading order is unambiguous.
- Avoid tables for content. If you need visual structure, use spacing and typography, not tables.
- Avoid text boxes. Everything should be in the document body text.
- Use standard section headings. "Experience", "Education", "Skills" parse reliably.
- Test extraction. See our guide to checking text extraction for a method that takes two minutes.
You cannot guarantee perfect parsing. Different ATS systems will parse the same resume differently. What you can do is use layouts and content conventions that maximise the chance of clean extraction — which is exactly what our ATS-friendly templates are designed for.