Skip to main content
← Back to Blog
ATS Optimization10 min readMarch 21, 2026

How ATS Software Actually Works: Parsing, Matching & Scoring Explained

The exact technical process ATS uses to read your resume: from parsing and section detection to keyword matching and score calculation — so you understand why the rules work, not just what they are.

Most advice about ATS focuses on what to do — use keywords, avoid tables, keep it simple. Almost none of it explains why those rules work, which means you can't reason about new situations or edge cases. This article explains exactly what happens inside an ATS from the moment you submit your resume to the moment a score appears.

Understanding the four-step pipeline — parsing, section detection, keyword matching, and scoring — gives you a mental model that applies to any ATS, not just the one you happen to be dealing with today.

Want to see this in action?

Paste your resume and job description into 22 Skills to see exactly which keywords matched, which were missed, and your overall ATS score — in under 30 seconds.

Check My ATS Score Free →

Step 1 — Resume Parsing: Extracting Raw Text

When you submit a resume, the first thing the ATS does is extract the raw text from your file. This is called parsing. How well it works depends almost entirely on your file format and how you created it.

PDF files created from Word or Google Docs

When you export a Word document or Google Doc as PDF, the text is stored as actual selectable text inside the file. ATS parsers read this reliably — the text comes out clean and in the right order.

PDF files created from design tools (Canva, Piktochart, Adobe Illustrator)

Design tools store text as graphical elements — image layers, vector paths, or embedded fonts with non-standard encoding. When the parser attempts to extract text, it either finds nothing, finds garbled characters, or assembles fragments in the wrong order. Your experience and skills are invisible to the system even though the document looks professional on screen.

Quick test

Open your resume, select all (Ctrl+A), copy, and paste into plain text (Notepad on Windows, TextEdit in plain text mode on Mac). If the result is jumbled, missing sections, or shows no text at all, ATS sees the same thing.

Scanned PDF files

A scanned resume is a photo of a document. ATS needs Optical Character Recognition (OCR) to read it. Most modern ATS platforms include OCR, but accuracy drops significantly on decorative fonts, low-contrast designs, or rotated text. When OCR misreads characters, keywords disappear — “Python” becomes “Pythan,” “JavaScript” becomes “JavaScrípt,” and the match score drops.

Word (.docx) files

Word documents are parsed very reliably across virtually all ATS platforms. If the job posting doesn't specify a format preference, .docx is the safest choice. If it requests PDF, generate it from Word — not from a design tool.

The rule

Create your resume in Word or Google Docs. Export to PDF only. Never use Canva, Piktochart, or any graphic design tool for your primary submission resume.

Step 2 — Section Detection: Organizing the Text

After extracting text, the ATS needs to understand where information lives. Is this line a job title? A date range? A skill? A company name? This process — section detection — determines whether your 8 years of Python experience gets filed under “skills” or lost under “unstructured text.”

ATS platforms maintain a dictionary of known section header variants. When the parser encounters a heading that matches a known pattern, it starts reading everything below as belonging to that section until the next heading.

Section TypeHeaders ATS RecognizesHeaders That Confuse ATS
Work ExperienceWork Experience, Experience, Employment History, Professional ExperienceMy Journey, Career Highlights, What I've Done
SkillsSkills, Technical Skills, Core Competencies, Key SkillsThings I Know, My Toolkit, Areas of Expertise
EducationEducation, Academic Background, DegreesWhere I Studied, Learning History
CertificationsCertifications, Licenses, CredentialsAchievements, Badges

When section detection fails, keywords get assigned to the wrong category — or to no category at all. A skill listed under an unrecognized header may not be counted toward the skills match. This is why creative resume structures often score lower than plain, standard ones.

Two-column layouts create a specific problem: parsers typically read left-to-right, top-to-bottom. In a two-column resume, they often interleave the left and right columns, producing incoherent text — a job title from the left column followed by a skill from the right, then a date from the left again. The section detector cannot make sense of the result.

Step 3 — Keyword Matching: Exact, Fuzzy, and Semantic

With text extracted and sections identified, the ATS extracts keywords from the job description and searches for them in your resume. There are three types of matching — and most platforms use a combination of all three.

Type 1 — Exact Matching

The simplest form: the system searches for the literal string from the job description in your resume. If the job posting says “Google Analytics 4” and your resume says “Google Analytics 4,” it's a match. If your resume says “Google Analytics” (no version number) or “GA4,” it may not be counted.

Implication: Use the exact terminology from the job description. If they say “cross-functional collaboration,” don't substitute “interdepartmental teamwork.”

Type 2 — Fuzzy Matching

Fuzzy matching handles minor spelling variations, plurals, and typos using string distance algorithms. The most common is Levenshtein distance — the number of single-character edits (insertions, deletions, substitutions) needed to transform one string into another.

A Levenshtein distance of ≤2 means “manage” matches “managed” (1 edit), and “optimization” matches “optimisation” (1 edit). It does not bridge larger conceptual gaps — “led” and “managed” are 5 edits apart, so fuzzy matching won't connect them.

Implication: Minor UK/US spelling differences and verb tense variations are handled automatically. Entirely different synonyms are not.

Type 3 — Semantic Matching (NLP)

Modern ATS platforms use Natural Language Processing models (BERT, RoBERTa, or proprietary embeddings) to understand meaning, not just characters. The system converts both the job description and your resume into numerical vectors and measures how close they are in “meaning space.”

This allows the system to recognize that “led a cross-functional team” and “project management” describe overlapping competencies, or that “revenue growth” and “sales increase” are semantically related.

Implication: Strong context helps even when you don't use the exact keyword. But semantic matching isn't universal — many ATS platforms still rely primarily on exact and fuzzy matching. Don't rely on it to bridge important keyword gaps.

Step 4 — Scoring and Ranking: How the Match Percentage Is Calculated

After matching keywords, the ATS computes a score. This is not a simple keyword count divided by total keywords. Most systems apply weighting logic across at least three dimensions:

Required vs. preferred keywords

Keywords marked as required qualifications carry significantly more weight than nice-to-have skills. Missing a required keyword has a larger negative impact on your score than missing a preferred one.

Placement (section-based weighting)

Keywords in your Skills section and Professional Summary typically score higher than keywords buried in bullet points at the bottom of your last role. The parser knows which section it's reading and weights accordingly.

Frequency and recency

A skill that appears multiple times across different roles demonstrates breadth of use. A skill listed once in a job from 2016 may score lower than the same skill appearing in your two most recent positions.

Context relevance

NLP-powered systems look at surrounding context. "Python" used in a data engineering context scores differently than "Python" mentioned in passing in an unrelated role description.

The final output is a ranked list of candidates. The ATS presents the top scorers to the recruiter — typically sorted by match percentage descending. A recruiter managing 250 applications might open the top 20. If your resume ranks 45th, it is functionally equivalent to not being reviewed, regardless of your actual qualifications.

“ATS systems rank and sort all incoming applications before a recruiter reviews the top candidates. Optimizing your resume for ATS compatibility means ranking higher in that list — which determines whether a recruiter ever opens your file.”

See Your ATS Ranking Right Now

Paste your resume and job description — get your keyword match score, see what's missing, and understand where you rank.

Analyze My Resume Free →

No signup required • Results in 30 seconds

Legacy ATS vs. Modern AI-Powered ATS

Not all ATS platforms are equal. The strategies that matter most depend on whether you're dealing with a legacy rules-based system or a modern NLP-powered one.

FeatureLegacy / Rules-BasedModern / NLP-Powered
Keyword matchingExact strings onlyExact + fuzzy + semantic
SynonymsNot recognizedOften recognized via embeddings
Section detectionFixed header dictionaryML-based context inference
Scoring logicKeyword count / rulesWeighted multi-factor model
OCR for scansOften absentUsually included
ExamplesOlder Taleo, BrassRingWorkday, Greenhouse, Lever, Personio

The practical advice is the same for both: use the exact terminology from the job description, use standard section headers, and create your resume in Word or Google Docs. These rules are necessary for legacy systems and beneficial for modern ones — they never hurt you.

How 22 Skills Implements ATS Scoring

22 Skills is an AI-powered resume optimizer that simulates ATS keyword scoring. Here's exactly how the scoring model works, because we believe transparency builds trust.

1

1. Keyword extraction

GPT-4o-mini (primary) or Claude Sonnet (fallback) extracts all relevant keywords from your job description — hard skills, soft skills, tools, certifications, job titles, and industry terms. This produces a dynamic keyword list specific to that posting.

2

2. Fuzzy matching with Levenshtein distance ≤2

Each keyword is matched against your resume text using fuzzy matching at a Levenshtein distance of ≤2. This handles plurals, tense variations, and minor spelling differences without hallucinating connections between conceptually different terms.

3

3. Critical requirements weighted 3×

Keywords identified as critical requirements (e.g., "required: 5+ years Python") carry three times the weight of nice-to-have qualifications in the final score. This reflects real recruiter priorities.

4

4. Match score calculation

The final score is the weighted sum of matched keywords divided by the weighted sum of all required and preferred keywords. Scores range from 0–100%. A score of 70%+ indicates strong ATS compatibility for most roles.

5

5. Prioritized suggestions

Missing keywords are sorted by weight — critical gaps appear first. The AI Resume Rewriter then incorporates them into your resume text naturally, not as keyword stuffing.

“22 Skills calculates ATS compatibility by comparing resume text to job descriptions using fuzzy keyword matching with a Levenshtein distance tolerance of ≤2. The scoring model weights critical job requirements 3× more than nice-to-have qualifications, producing a match score that reflects real recruiter priorities rather than simple keyword frequency.”

Frequently Asked Questions

Does ATS automatically reject resumes?

Modern ATS systems rank and sort resumes — they do not automatically reject based on content alone. A 2025 Enhancv study of 25 recruiters (enhancv.com/blog/does-ats-reject-resumes) found 92% confirmed their ATS does not auto-reject. The practical effect is similar: candidates ranked low in ATS may never be reviewed if a recruiter only opens the top results from a pool of 250+ applications.

Can ATS read PDF resumes?

Modern ATS platforms read PDF files created from Word or Google Docs without issue. The problem is PDFs generated by design tools like Canva — those embed text as image layers that ATS cannot extract. Always generate PDFs from a word processor, not a design application.

What keywords does ATS look for?

ATS extracts keywords from the job description and compares them to your resume. This includes hard skills (specific tools, technologies, certifications), soft skills explicitly named in the posting, job titles, and industry-specific terminology. The most important keywords are those listed as required qualifications — these carry the most weight in scoring.

Does ATS understand synonyms?

It depends on the ATS generation. Legacy rules-based systems only match exact text. Modern NLP-powered platforms use semantic similarity to recognize related competencies. Fuzzy matching handles minor spelling variants within an edit distance of 1–2 characters. To be safe, use the exact terminology from the job description wherever accurate.

How does ATS scoring work?

ATS scoring compares your resume to the job description and produces a match percentage. Factors include: which required keywords appear in your resume, where they appear (skills section and summary score higher), how many times they appear, and whether the context is relevant. Critical requirements typically carry more weight than nice-to-have qualifications.

Key Takeaways

  • Parsing: Create resumes in Word or Google Docs. Export to PDF. Never use design tools for your submission resume.
  • Section detection: Use standard headers (Work Experience, Skills, Education). Avoid two-column layouts and creative heading names.
  • Keyword matching: Use exact terminology from the job description. Fuzzy matching handles minor variants; it does not bridge synonyms.
  • Scoring: Required keywords count more. Placement matters — skills in your Skills section score higher than the same skill buried in a 2018 role.
  • Modern vs. legacy: Rules optimized for legacy systems still help with modern ones. Never hurt yourself to optimize for semantic matching.

Check Your ATS Score

Paste your resume and job description into 22 Skills to see exactly which keywords matched, which were missed, and where you rank — no signup required.

Get My ATS Score →

Free • No signup • Results in 30 seconds