How ATS Resume Scanners Work (Parsing, Keyword Matching and Scoring)
A technical but plain-English guide to how a resume scanner works — how your file is parsed into structured data, how keyword matching and scoring actually run, and what a score can and cannot tell you.
Nakul Ilawe · Founder & Chief AI Architect, DexterCV
Founder of Latinum HR Solutions. 10+ years in executive recruitment and hands-on AI engineering.
September 1, 2026 · 6 min read
Short answer: A resume scanner does three things in order. It extracts text from your file, structures that text into fields (name, employers, dates, titles, skills), and then scores what it found — usually keyword coverage against a role, plus formatting and completeness checks. Every "ATS score" you've seen is a score of that third step. If step one or two goes wrong, the score is meaningless, because the tool is grading a mangled copy of your resume.
Below is what actually happens at each stage, and how to use that knowledge instead of guessing.
Stage 1 — Text extraction
Your PDF or DOCX is not text. It's a set of drawing instructions that happen to look like text. A parser has to reconstruct the reading order.
| File type | How it's read | Where it breaks |
|---|---|---|
| PDF with a text layer | Glyphs plus coordinates are re-assembled into lines | Two-column layouts interleave the columns into nonsense |
| Scanned or image PDF | Nothing extractable without OCR | Usually returns an empty or near-empty resume |
| DOCX | XML with real paragraph structure — the cleanest input | Text boxes and SmartArt are often skipped entirely |
| Pages / ODT / RTF | Converted first, with losses | Bullets, dates and special characters get scrambled |
Two things matter more than anything else at this stage: your file must contain a real text layer, and your layout must be single-column. A visually beautiful two-column CV can lose a third of its content before any scoring begins — and neither you nor the recruiter sees it happen.
Test it yourself: open your PDF, select all, copy, and paste into a plain text editor. What you see is roughly what the parser sees. If the order is jumbled or content is missing, fix the layout before you worry about keywords.
Stage 2 — Structuring the text into fields
Extracted text is still a wall of characters. The parser now has to decide which parts are your job titles, which are employers, and which are dates.
It does this with a mix of:
- Section header matching — it looks for conventional labels: Experience, Work Experience, Education, Skills, Certifications. Creative headings like "My Journey" or "What I'm Good At" often map to nothing, and the content underneath is discarded or dumped into a generic bucket.
- Date pattern recognition —
Jan 2021 – Mar 2024is parseable.2021-24,'21 to '24, or a date sitting in a sidebar column often is not. Broken dates knock you out of "5+ years of experience" filters even when you have eight. - Positional heuristics — the line above a date range is probably a title or employer. This is why an inconsistent job block format hurts: change the order between roles and the parser assigns the wrong field.
- Contact extraction — regex for email and phone. Contact details placed in the document header or footer are the single most common cause of a resume with no reachable contact info, because several parsers ignore those regions.
At the end of this stage the system holds a structured record. That record — not your PDF — is what gets searched, filtered and scored.
Stage 3 — Keyword matching
Recruiters rarely browse. They search the structured records with filters and keywords taken from the job description.
Matching is usually some combination of:
- Exact and stemmed matching — "manage", "managed", "managing" collapse to one root. "Kubernetes" and "K8s" usually do not, unless someone configured a synonym list.
- Acronym pairs — write both forms once: Search Engine Optimization (SEO). This costs you nothing and doubles your match surface.
- Section weighting — a skill named inside a real experience bullet carries more weight in most scoring models than the same word listed in a skills block, because it is evidenced.
- Frequency with diminishing returns — the second mention adds a little, the tenth adds nothing. Keyword stuffing is detectable and penalised by modern scoring, and it reads badly to the human who eventually opens the file.
The honest limitation: no scanner knows the exact keyword list a specific employer configured. Any tool claiming a guaranteed "pass rate" for a named ATS is guessing. What a good scanner can do is measure coverage against the job description you paste in, which is a real and useful proxy.
Stage 4 — Scoring
A score is a model, not a verdict. Reasonable models weight roughly four things:
| Pillar | What it measures | Typical weight |
|---|---|---|
| Parsing and structure | Can the file be read and mapped to fields at all | Highest — it gates everything else |
| Keyword and role fit | Coverage of the terminology for the target role | High when a job description is supplied |
| Impact | Quantified outcomes rather than duty lists | Medium |
| Clarity | Bullet length, tense consistency, date hygiene | Medium |
Two rules make scores useful instead of anxiety-inducing:
- A critical parsing issue should cap the score. A resume with unreadable structure cannot be an 85 because the prose is elegant. DexterCV's scanner caps resumes carrying unresolved critical or warning issues, so a high score means genuinely clean, not merely wordy.
- Compare against yourself, not others. The value is the delta between your first scan and your scan after fixing findings — not a leaderboard.
What a resume scanner cannot tell you
- Whether a specific employer's ATS will reject you. Configuration varies per company.
- Whether you're qualified. Scoring reads structure and language, not capability.
- Whether a human will like your resume. That's the interview-rate signal, and it needs a real recruiter's read.
Treat the score as a pre-flight check: it catches the mechanical failures that silently cost you interviews, then hands the judgement back to you.
A practical 15-minute pass
- Copy-paste your PDF into a plain text editor and confirm nothing is missing or out of order.
- Move contact details out of the page header into the body.
- Rename every section to a conventional label.
- Make every date
Mon YYYY – Mon YYYY, consistently. - Spell out each important acronym once alongside its short form.
- Add a number to at least half your bullets.
- Re-scan and compare the two reports.
FAQ
Do ATS systems reject resumes automatically?
Some systems apply knockout questions or filters set by the employer, but in most cases the ATS parses and ranks your resume while a recruiter makes the decision. A clean, parseable resume makes sure the recruiter sees your information correctly.
Can an ATS read a two-column or graphic-heavy resume?
Many modern systems can, but columns, tables, text boxes and icons raise the risk of fields being read out of order or missed. A single-column, text-first layout is the safest choice for most applications.
Is PDF or DOCX better for an ATS?
A text-based PDF (not a scanned image) works with most systems. If an employer's portal asks specifically for DOCX, follow their instruction.
Does a high scanner score guarantee an interview?
No. A scan checks structure, readability and keyword coverage. Interviews still depend on your experience, the role's requirements and the number of applicants.
Try it on your own resume
Run a free scan — upload a PDF or DOCX and you'll get the parsed structure, the findings ranked by severity, and a score broken into the pillars above. If you want coverage against a specific role, paste the job description into the Resume Customizer instead, which scores match against that exact posting.
Related reading: what an ATS resume checker actually checks, single-column vs two-column resumes, and ATS keywords by industry.
