How ATS Systems Actually Work (And How They Filter You Out)
A technical breakdown of how Applicant Tracking Systems score resumes, why qualified candidates get auto-rejected, and what keywords the algorithm actually scans for.
The 6-second scan that decides your career
Your resume gets between 6 and 30 seconds in front of the ATS. Not a human. A parser + scorer — two pieces of software that do the same job 95% of HR departments used to do by hand.
And unlike a human, they don't care about:
- Your credentials
- Your years of experience
- Your portfolio
- Your cover letter
They care about one thing: does the text in your resume match the text in the job listing?
That's it. That's the game.
What actually happens when you click "Submit"
Here's the exact sequence:
- Parser extracts the text from your PDF, docx, or HTML resume
- Tokenizer splits the text into words, phrases, and n-grams
- Entity extractor tags entities (company names, job titles, technologies, certifications)
- Scorer compares your extracted entities against the job description's required entities
- Ranker sorts you against every other applicant by match percentage
- Cutoff — anyone below the threshold (usually 60-80% match) never reaches a human
The threshold is set by the hiring company. Some set it low (50%) so humans review more applications. Most set it high (70-80%) to reduce noise.
The fundamental flaw
Here's what the algorithm can't do:
It can't tell that "managed a team of 5" means the same thing as "led 5 direct reports." Unless the ATS has a synonym dictionary (most don't), those are two different strings.
It can't tell that you built an e-commerce platform when the job listing says "consumer web applications." Different words, same work.
It can't tell that 8 years at a no-name company producing the same output as 2 years at Google is worth more than the headline.
The algorithm doesn't understand meaning. It understands keyword density.
What the algorithm actually scores on
From reverse-engineering how Workday, Greenhouse, Lever, iCIMS, and Taleo parse job listings, there are five scoring dimensions:
1. Required keyword presence (40-50% of score)
Did you include every "required" skill listed in the job description? If the listing says "Python, SQL, AWS" and you only have "Python" on your resume, you're already at 33% on this dimension.
2. Keyword frequency (15-25% of score)
How often does the keyword appear? A mention of "Python" once in a skills list scores lower than "Python" appearing 3 times across different roles and projects. This is why "stuffing" keywords in a single line doesn't work — the algorithm wants distribution.
3. Title and section placement (10-20% of score)
Keywords in your job titles and section headers weigh more than keywords in body text. "Python Developer" as a job title scores higher than "worked with Python" in a bullet.
4. Years of experience (10-15% of score)
The algorithm looks for date ranges near skill mentions. If the job wants "5+ years of Python" and your resume shows Python mentions spanning 2019-2026 (7 years), you match. If your Python mentions only span 2023-2026 (3 years), you don't.
5. Education and certifications (5-10% of score)
Degrees and certifications are scored as binary matches. "MBA required" — either you have it or you don't.
Why you're getting auto-rejected
Here's the painful truth: you're probably qualified for most of the jobs you're applying to. The algorithm just doesn't know it.
If the job listing says "Agile" and your resume says "Scrum," you might lose 5-10 points.
If the job listing says "managed cross-functional teams" and your resume says "led matrixed teams," you might lose 5-10 more points.
If you've got 10 such mismatches in a single application, you're at a 40-50 point deficit before the human review round even starts.
What to do about it
You have two options:
Option 1 — Rewrite your resume for every job. Read the listing carefully, identify every keyword, rephrase your experience to match the job's exact language. This works. It also takes 30-60 minutes per application.
Option 2 — Inject an optimization layer. Let software analyze the job listing, extract every keyword the ATS will score on, and inject it into your resume in a way the algorithm parses but humans don't see. 30 seconds instead of 30 minutes.
The system is rigged. The machine decides whether your resume ever sees a human. The only winning move is to speak the machine's language.
Frequently Asked Questions
Do ATS systems reject 75% of resumes?
What is keyword matching in ATS?
Can ATS systems read PDFs?
Ready to beat your ATS?
First keyword check is free. No card required.
Optimize My Resume