How an ATS Resume Checker Works — Upload to Job Match
How an ATS resume checker works, stage by stage: what it reads in your file, how the score is built, and how job matching works. A five-stage walkthrough from the team that built one — including the published sub-score weights, how two-column layouts are detected from glyph positions, why a pasted resume hides the faults that matter, and how the AI rewrite is verified against your original so nothing is invented.

Last Updated: August 2026 · 11 min read
Quick Answer: An ATS resume checker works in two passes. First it opens your file the way a parser does and measures its structure — where every line of text physically sits, whether content is locked inside tables or images, whether a real text layer exists. Then it reads the extracted text and scores the content: keywords, quantified achievements, section order, contact details. Most free checkers only do the second pass, which is why they miss the two-column layout that scrambles your job titles.
Almost every article about ATS resume checkers is written by someone who has never opened a PDF's content stream. They tell you "the software scans your resume" and stop.
We built one, so this article does the opposite. Below is exactly what happens between dropping a file in and clicking apply — the five stages, what is measured in each, the weights behind the score, how the AI rewrite is stopped from inventing your career, and where our own approach has limits. You can follow along in the free ATS resume checker as you read.

The Five Stages, End to End
An ATS resume checker is a pipeline, not a single "scan". Each stage hands a different artefact to the next:
| Stage | What goes in | What comes out |
|---|---|---|
| 1. Upload | Your PDF, DOCX or TXT | Raw file bytes, held in memory |
| 2. Inspect | File bytes | A structure map — columns, tables, fonts, text layer |
| 3. Score | Structure + extracted text | A 0–100 score and a ranked issue list |
| 4. Rewrite | Issues + your original facts | An ATS-safe .docx or .pdf, re-scored |
| 5. Match | Your skill profile | Live job listings, ranked by fit |
The stages are deliberately separable. You can stop after stage 3 with a diagnosis and fix your resume by hand — nothing forces you into the AI steps.
Stage 1: What Happens the Moment You Upload
Your file is read as bytes, not as text. That distinction is the whole point of stage 1, and it is where a checker either earns its result or fakes it.
A tool that asks you to paste your resume text has already lost the information that matters. Copy-pasting from Word silently repairs the document: the two columns become one, the table cells become lines, the header text joins the body. You paste a clean version of a broken file and get a clean score for a resume that will still parse badly.
So the upload has to be the real artefact — the exact PDF or DOCX you attach to applications. On our tool that means:
- PDF, DOCX or TXT, up to 5 MB
- Parsed in memory — the file itself is never written to disk
- No account, no signup — nothing is behind a login wall
The analysis is then held in temporary server storage for up to four hours so the later stages work without making you upload again, and deleted after that.
The single most common self-inflicted wound: exporting a resume by screenshotting it, or scanning a printed copy. That file contains a picture of words. There is no text in it. Every ATS receives an empty document, and no keyword advice on earth will help.
Stage 2: What a Structural Checker Measures That a Text Checker Cannot
This is the stage that separates a real ATS checker from a keyword counter. Instead of only reading the words, the engine measures the physical geometry of the document.
How column detection actually works
When a PDF is parsed, every run of glyphs carries a transformation matrix — its position on the page. Collect the x-coordinate of every text run, and a two-column layout announces itself: the x-values cluster into two dense bands with an empty gutter between them, instead of spreading evenly from the left margin.
That matters because text extraction reads in content-stream order, not visual order. A two-column resume frequently comes out of a parser as "Senior Data Engineer Python, Spark, SQL Acme Corp AWS, Kafka 2021–Present" — job titles interleaved with the skills sidebar. To the recruiter's search, you have no clean job title at all.
Here is the class of fault this stage catches, none of which a text-only checker can see:
| Structural fault | Why it costs you | Text-only checker |
|---|---|---|
| Two-column layout | Extraction interleaves the columns | Invisible |
| Content inside tables | Cells are dropped or flattened out of order | Invisible |
| Text boxes | Frequently skipped entirely by parsers | Invisible |
| Contact details in the page header | A known class of ATS discards headers | Invisible |
| Image-only page (scan/screenshot) | Zero extractable text | Invisible |
| Links as annotations, not text | The URL disappears on extraction | Invisible |
| Non-standard embedded fonts | Glyphs can extract as the wrong characters | Invisible |
That last row is not theoretical, and it bites tool builders too. While building our PDF export we found that the standard bullet character •, written by one common PDF library, comes back out of extraction as a raw \x7f control character — a glyph no bullet-detection regex matches. A resume that looks perfect on screen was handing parsers a document with no recognisable bullets. We switched our exporter to a plain ASCII hyphen for exactly that reason. Your resume can be broken in ways that are completely invisible on screen, which is the entire argument for measuring the file instead of reading it.
The header/footer trap
The engine samples the top ~4.5% and bottom ~5% of each page. If your email or phone number lives in that band — because you used Word's header feature — it gets flagged as a major issue. A recruiter can end up with your resume and no way to contact you, which is the most expensive formatting mistake on this list.
Stage 3: How the ATS Score Is Actually Built
The score is a weighted composite of six deterministic sub-scores — no AI produces the number. Publishing the weights is unusual; most tools treat theirs as a secret, which conveniently means you can never check their arithmetic. Ours:
| Sub-score | Weight | What it measures |
|---|---|---|
| ATS Parseability | 25% | Everything from stage 2 — columns, tables, text layer, headers |
| Keyword Match / Skill Specificity | 20% | Overlap with the job description, or named tools if none is supplied |
| Impact & Evidence | 20% | Quantified bullets, strong openers, first-person leakage |
| Structure & Sections | 15% | Expected sections, order, length, date consistency |
| Contact & Discoverability | 10% | Email, phone, LinkedIn, location |
| Clarity & Consistency | 10% | Buzzwords, date-format drift, filename |
Parseability carries the most weight for a blunt reason: a keyword you have is worth nothing if the parser never reads it.
Every deduction is traceable
A score with no explanation is a horoscope. Each finding is a demerit with a severity, a point cost, and the evidence pulled from your own file:
- Critical — can stop the resume being read or shortlisted at all. No email address, for example, costs 50 points of the contact sub-score, because most ATS use email as the unique key for a candidate record.
- Major — measurably reduces your chances. A missing LinkedIn URL is −18; a missing phone number −20.
- Polish — worth fixing once the rest is clean.
Because the cost is attached to the finding, the fix order is not a matter of taste. Work top-down.
The honest limitation
This score is a model of ATS behaviour, not a live query against Workday or Greenhouse. Nobody outside those companies can score your resume against their real ranking, and any tool implying otherwise is overselling. What a good checker gives you is the set of faults that are known to hurt across parsers — which is actionable, and enough.
Stage 4: Analyse and Fix — Including What AI Genuinely Cannot Do
The issue list is designed to be worked through, not admired. Each item expands to show the evidence found in your file and the specific fix.
One design decision here took us two attempts to get right, and it is worth explaining because every AI resume tool has the same blind spot.
Some issues are writing problems: weak bullets, vague scope, buzzwords. An AI rewrite fixes those well. But some issues are missing facts — no email, no phone, no LinkedIn URL, no city. That information is not anywhere in the file, so no amount of model capability can recover it. The first version of our "Fix these with AI" button cheerfully rewrote the resume and produced a document carrying the exact same contact demerits, because there was nothing to work with.
The fix is not a better prompt. It is asking you. The tool now collects the missing details in a short form, validates them, and merges them into the rewrite — so the re-score genuinely improves instead of reporting the same gap back to you.
A useful test for any AI career tool: ask what it does when the input genuinely lacks the information. Tools that quietly generate something plausible are the ones that will invent a metric on your resume.
Stage 5: The AI Rewrite, and How It Is Stopped From Lying
The rewrite is constrained to facts already in your resume, and then verified — because a fabricated employer surfaces in the interview and ends the process.
Three mechanisms do the work:
- Facts are locked. The model is instructed as an editor, not an author: never invent an employer, title, date, degree, certification or technology that is not in the source. Date ranges are copied exactly.
- Placeholders instead of invented numbers. Where a bullet has no metric, the output carries a marked placeholder —
[X%],[N]— plus a note telling you what to fill in. An honest gap beats a fabricated number that you have to defend under questioning. - Post-generation verification. Every employer, institution and date in the output is checked back against your original text. The result is shown to you as an integrity check, not buried. If something could not be matched, you are told which item and asked to confirm it before sending.
The rewrite is then re-scored by the same engine that scored your original, so the before-and-after number is a genuine comparison rather than a marketing claim. You can download the result as .docx or .pdf — both single-column, standard headings, no tables, no graphics, with a real text layer.
Which format? Send the PDF unless the posting explicitly asks for Word. A DOCX renders differently across Word versions, so the layout a human reviewer sees may not be the one you designed. The parsing is equally clean either way.
Stage 6: How Resume Job Matching Works
A search profile is built from your resume, used to query live job-board APIs, and every returned listing is scored against your actual skills. The distinction that matters: those listings are fetched, not generated.
The flow:
- The engine extracts a profile — primary title, alternate titles, seniority, years of experience, core skills, location.
- That profile becomes queries against public job-board APIs: Remotive, Jobicy, RemoteOK, The Muse and Arbeitnow.
- Each real listing is scored against your resume, with a fit percentage, what matched, and — more usefully — what you are missing for that specific role.
- One click tailors your resume for any listing, feeding that job description back into stage 4.
Where this approach is limited
Free job-board APIs skew heavily toward remote and tech roles. If you are looking for an on-site finance role in Pune, these feeds will underserve you badly. Rather than pretend otherwise, the tool also builds a ready-made boolean search string from your resume for LinkedIn, Indeed, Google Jobs and Naukri — where the on-site listings actually live.
Being straight about that is not a weakness. A career tool that overstates its coverage costs you weeks of applying into the wrong channel.
What Most Free ATS Checkers Get Wrong
| Common approach | The problem | What to look for instead |
|---|---|---|
| Paste your resume as text | Destroys the structural faults you needed to find | Uploads the real file |
| One opaque score | You cannot act on a number with no components | Published weights and per-issue evidence |
| Scores only against a job ad | Useless before you have picked a job | Works with and without a job description |
| AI rewrite with no verification | Can invent employers and metrics | Shows an integrity check against your original |
| "Beat the ATS" framing | There is no bot rejecting you — a recruiter is filtering a list | Framing around being findable and credible |
| Generated "job matches" | Fictional listings waste your time | Named, linked, real job boards |
Common Mistakes This Process Catches
- Two-column "designer" templates. They look sharp and parse terribly. Single column, always.
- Contact details in the page header. Move them into the body, on the first lines.
- Skills that only exist in a skills list. Recruiters search for a skill and then look for evidence of it in your roles. Name the tool in the bullet where you used it.
- Duties instead of outcomes. "Responsible for pipelines" is a job description. "Cut pipeline cost 42% by migrating 240 tables" is evidence.
- Inconsistent date formats.
Jan 2021,01/2021and2021in one document reads as careless and confuses timeline parsing. - A filename like
resume_final_v3(2).pdf. UseFirstName-LastName-Resume.pdf.
Try It on Your Own Resume
The fastest way to understand any of this is to run your real file through it. The free ATS resume checker gives you the score, the full issue list with evidence, the AI rewrite with its integrity check, and live job matches — no signup, nothing stored.
If you want the keyword-matching side in more depth, our companion guide on the free ATS resume checker and keyword match scoring covers how to mirror a job description's language without keyword-stuffing.
Frequently Asked Questions
How does an ATS resume checker actually work? A good ATS resume checker does two separate jobs. First it opens your file the way a parser would and measures its structure — where each line of text sits on the page, whether content is trapped in tables or images, whether there is a real text layer. Then it reads the extracted text and scores the content: keywords, quantified achievements, section order and contact details. Text-only checkers skip the first job entirely, which is where most real damage lives.
Why do ATS checkers give different scores for the same resume? Because there is no standard ATS score. Each tool invents its own weighting. A keyword-only checker scores you against one job ad, so pasting a different ad changes the number. Ask what the score is made of — if a tool cannot show you the components and the evidence behind each deduction, the number is decoration rather than diagnosis.
Is a 100% ATS score possible or even useful? Possible, rarely useful. A perfect keyword score usually means the resume was stuffed to match one job ad, which reads badly to the human who sees it next. Aim for 85 or above with zero critical issues, then spend your remaining effort on evidence — numbers, outcomes and scope — because that is what convinces the recruiter after the parser is satisfied.
Can an AI resume writer invent things about my career? It can, and that is the central risk of AI resume tools. A fabricated employer or metric surfaces in the interview and ends the process. The defence is verification, not promises: constrain the model to facts already in the source file, then check every employer, institution and date in the output back against the original and show the user the result. Where a bullet has no metric, a marked placeholder is honest; an invented number is not.
Does the file format change my ATS score? The format matters less than the structure inside it. A single-column PDF exported from Word parses cleanly; a two-column DOCX built from tables does not. Send a PDF exported directly from your editor unless the posting asks for Word, and never send a scan or a photograph — an image of a resume has no text for the parser to read at all.
How does resume job matching work? Job matching builds a search profile from your resume — title, seniority, years, core skills — queries live job-board APIs with it, then scores each returned listing against your actual skills. The important detail is that the listings are real postings fetched from those boards. A tool that generates job descriptions rather than fetching them is showing you fiction.
What happens to my resume when I upload it? On the SolutionGigs ATS resume checker your file is parsed in memory and the file itself is never saved. The extracted analysis is held in the server's temporary storage for up to four hours so the follow-up steps work without a re-upload, then it is deleted. No account is required. The AI steps send your resume text to Groq for processing; the score and the full issue list work without them.
Conclusion
An ATS resume checker is not a bot you are trying to trick. It is a diagnostic for a boring, mechanical question: when a recruiter searches their system, does your resume come back, and does it read like evidence when it does?
The five stages answer that in order. Upload the real file, because a pasted copy hides the faults. Let the structure be measured, because columns and tables break parsers silently. Read a score whose components and deductions you can inspect. Fix the writing with AI, supply the facts AI cannot know, and verify nothing was invented. Then match against real listings and be honest about which channels those listings come from.
Run your actual resume — the one you have been sending — through the free ATS resume checker. Most people find at least one structural issue they had no idea was there. If you are early in a data career, pair it with our data engineer roadmap, and once the interviews start, the PySpark interview questions guide is the natural next step.
For background on how applicant tracking systems are used in hiring, the U.S. Bureau of Labor Statistics occupational outlook and Google's own guidance for job seekers on structured job data are both worth reading.
Mohammed Yaseen
Founder, SolutionGigs
Mohammed built the SolutionGigs ATS resume checker — the parsing engine, the scoring model and the job-matching layer described in this article. LinkedIn →
