The short version
Key takeaways
- An ATS is a database with a parser, not a judge. It extracts fields, indexes terms, and lets recruiters search and rank candidates.
- The highest-leverage edit is not adding 40 keywords — it is mirroring the job description's exact terms where the parser reads them and the recruiter scans them.
- Formatting can silently undo a great CV: multi-column layouts, tables, and text in headers/footers are documented parsing risks.
- Tailoring is a 10-minute loop when the job description is clean — and should never require inventing credentials, titles or years.
You applied. The CV was good. Then: silence. Almost every job seeker interprets that silence as “the ATS rejected me.” The more useful interpretation is mechanical: the system either could not read part of your file, or could read it but could not find the terms the recruiter searches for. Both are fixable in minutes — and both are the reason the loop below exists.
I build Tailor AI, a local-first resume tailoring tool, and I test this loop on real postings every week. This guide uses the same six steps the app automates: decode, score, integrate, fix parsing, export, apply. You can run it manually, with any ATS checker, or with the tool.
What an ATS actually does (and what it doesn't)
An applicant tracking system does three things in sequence: it parses your file into structured fields (name, contact, employers, titles, dates, skills, education), it stores and indexes that data, and it lets recruiters search, filter and rank the resulting candidates. Greenhouse's own help centre documents the parse step and its failure modes — a resume with a columned layout, contact details in headers/footers, or text boxes may not be interpreted correctly at all (Greenhouse Support). Workable describes the same mechanics: the ATS reads the text, extracts key data, and builds a profile recruiters search (Workable).
What most ATS platforms do not do is auto-reject you with a robot stamp. The typical failure is quieter: you become hard to find, or your profile ranks low for the exact job you applied to. Academic comparisons of resume-to-job matching make the same point — automated matching is built around keyword and skills alignment, and it is only as good as the text it can extract (Resume2Vec, Electronics 2025).
1 1 minDecode the job description into three columns
Before touching your CV, split the posting's requirements into three buckets. This one step prevents both under-tailoring and lying.
| Bucket | What goes in it | Example (DevOps JD) |
|---|---|---|
| Named tools & skills | Products, languages, platforms, certifications-as-skills | Kubernetes, Terraform, AWS, Prometheus, Go |
| Capability phrasing | How the role describes the work | hybrid cloud, network architecture, secure coding, IT operations |
| Blocked facts | Things a CV cannot invent: tenure, credentials, job titles | “6+ years”, “AWS Certified”, “Senior SRE” |
Verification: you should have 8–20 concrete terms in the first two buckets. If the posting is full of vague phrases (“dynamic environment”, “wear many hats”), stop — that JD gives the ATS little to rank on, and your CV should not pretend otherwise.
2 2 minScore your current CV against the posting
By the end of this step you will know exactly which terms are missing and which ones you already have. Paste the job description into your checker (or use Match Analysis in Tailor AI) and read the missing lists — not just the score.
- Ignore the absolute number. A score is only meaningful against the same JD and the same master CV. Use it to find gaps and track movement.
- Read the evidence. “Missing: Prometheus” means the term does not appear anywhere the checker looks. That is actionable; “score 61” is not.
- Expect false positives. Good checkers deduplicate terms already present in your CV (e.g. “CI/CD” inside a bullet). If a tool lists a term you clearly have, fix the tool, not your CV.
Verification: you have a short list of genuinely missing terms, and each one is something you could defend in an interview.
3 3 minIntegrate only the gaps you can stand behind
Now place the missing terms in this order of impact: experience bullets → skills section → summary. A term inside a real bullet carries context; a term in a skills list carries existence; both are legitimate, but only one reads well.
- Bullets first. Rewrite an existing bullet to include the term where it is true — “operated Kubernetes clusters” → “operated Kubernetes and Helm releases across GKE and EKS”. Keep the original metrics verbatim.
- Skills second. Terms that are real but not worth a bullet go in the skills section, using the JD's exact wording. If the JD says “AWS CloudFormation”, do not write “cloud infra tooling”.
- Summary last. One sentence of positioning is enough. A summary stuffed with 20 keywords helps nobody — parsers already read the rest.
Verification: every integrated term is either in a bullet you could talk through for two minutes, or in skills you have actually used.
4 2 minFix the formatting traps that break parsing
This is the step most candidates skip, and it is documented by the vendors themselves. Greenhouse lists these as parsing risks (source):
- Multi-column layouts and tables
- Name and contact details in the header, footer, or text boxes
- Resumes with no clear sections, or formats that change per section
- Company names without identifying words (leaving dates ambiguous)
Use a single-column layout, standard heading names (SUMMARY, EXPERIENCE, EDUCATION, SKILLS), real selectable text, and contact details in the body. Icons are fine as decoration, never as the only label. Dates should follow one format throughout.
If you can't highlight and copy a line of your PDF, neither can the parser.
Verification: open the exported PDF, drag-select from the title to the last bullet, and paste into a plain-text editor. Nothing should be scrambled, missing, or duplicated.
5 1 minExport, then verify the file an ATS will read
Tailoring is only real when the exported document still contains what you edited. After export:
- Copy-paste the whole PDF into a text file and check the headings survive in order.
- Confirm every integrated term appears exactly once or twice — not zero times (lost in export), not twelve (keyword stuffing).
- Open the file on a phone. If a human can't scan it in 10 seconds, a busy recruiter won't either.
In Tailor AI, the exported PDF is generated from the same structured data the editor shows, and the audit lists where every JD term landed — experience bullet, skills, or “not in your CV”. If a term is genuinely absent, the chip stays honest rather than disappearing.
6 1 minApply and keep an evidence trail
The last minute is operational. Apply through the posting, keep the exact JD you tailored against, and log the date. When a reply arrives three weeks later, the version you sent is the only thing that matters — not what your CV looks like today.
- One role, one tailored version, one record.
- Follow up once, with a specific line about the role — not a generic “bumping this”.
- If you use auto-apply, verify the submission receipt instead of assuming it worked.
The 50 → 98 case (transparent, from our own tooling)
This is first-hand evidence from building the tool, disclosed as such: on a real “Senior IT Operations Engineer” posting, our match analysis initially returned 50% with an empty gap list — a matcher bug that produced a fake “nothing missing” verdict. After fixing the matcher and integrating the genuinely missing terms, the same job scored 98%, with 17 terms added across experience bullets, summary and skills — and zero credentials, titles or tenure invented.
The point is not the score jump — it is that the jump came from real terms already present in the candidate's history. A second case, a LinkedIn job with only a title and no description, required resolving the full posting text (0 → 7,605 characters) before any tailoring was possible. Garbage in, garbage out applies to ATS matching more than anywhere.
ATS-friendly vs ATS-hostile formatting
| Element | Keep it parseable | Why it breaks |
|---|---|---|
| Layout | Single column | Columns scramble reading order |
| Contact | In the body | Headers/footers are often ignored |
| Section names | Standard (EXPERIENCE, SKILLS) | Creative labels confuse field mapping |
| Text | Real, selectable text | Images and scanned PDFs are unreadable |
| Dates | One format (e.g. “Jan 2021 – Present”) | Mixed formats miscalculate tenure |
| Skills | Exact JD wording, in context | Synonyms may not match search terms |
FAQ
Do ATS platforms automatically reject resumes?
Most do not auto-reject. They parse your file into fields, index it, and let recruiters search and rank it against the job description. Parse failures and weak keyword coverage mostly make you harder to find — which feels like rejection.
What is a good ATS match score?
There is no universal number. A score is only useful relative to the same job description and the same master CV. Use it to find missing requirements and track improvements, not as a pass/fail line.
Should I use the exact job description wording?
Yes for named tools and skills, when they are truthfully part of your experience. Mirror the term the posting uses — “AWS CloudFormation”, not a vague synonym — and keep it in context inside a bullet or the skills section.
Can AI write my CV claims?
It can rewrite and reorder what you already have, and it can add missing terms as skills. It must not invent credentials, employers, job titles or years of experience. Treat any tool that fabricates those as a liability.
How long should tailoring take?
About 10 minutes per role when the description is clean. If a posting has no usable description, tailoring cannot be honest — resolve the real posting text first, or skip it.
Your 10-minute checklist
- JD decoded into tools, capabilities, and blocked facts
- Current CV scored; missing terms read from the evidence list
- Missing terms integrated — bullets first, skills second, summary last
- No invented credentials, titles, or tenure
- Single-column layout, standard headings, contact in the body
- PDF copy-paste test passed (text selectable, order intact)
- Term count verified after export (present, not repeated 12 times)
- Application logged with the exact JD version you used
That is the whole loop. It is boring, it is mechanical, and it beats every “ATS killer” trick that survives on optimism. The next time an application goes quiet, come back with the evidence list — not with forty more keywords.
03 Next Monday: Why your job search feels brokenFour numbers worth tracking — response rate, match quality, tailoring time, follow-up cadence — and how to measure them locally.Sources
- Greenhouse Support — Unsuccessful resume parse (formatting failure modes; last updated 2026).
- Workable — What is resume parsing and how an ATS reads a resume.
- Jobscan — Greenhouse ATS: what job seekers need to know (2026).
- Electronics (MDPI) — Resume2Vec: improving resume-to-job matching in ATS (2025).
- First-hand: Tailor AI match/tailoring runs on real postings (October 2026); repository at Atanub707/Tailor-AI.