Why your CV is failing the ATS — and how to actually fix it

The applicant tracking system isn't a black box. It's mostly a keyword parser with a relevance score. Once you know what it's doing, the fix isn't mysterious — it's just specific.

Here's what the ATS is actually doing when it reads your CV, and the three changes that move you from filtered-out to shortlisted.

What the ATS actually does

When you upload a CV to a job board or ATS-backed portal, three things happen, in this order:

  1. Parsing. The system extracts text from your CV file and tries to map it to fields — name, contact, work history, education, skills. If your CV has unusual formatting (text in tables, text inside graphics, two-column layouts that confuse the parser), this step fails silently. The recruiter sees a CV with empty fields and moves on.

  2. Keyword matching. The system compares the parsed text against a list of keywords pulled from the job description. Most ATS tools score this by frequency and proximity — appearing once is weaker than appearing twice with surrounding context.

  3. Ranking. Candidates are sorted by match score. Recruiters typically only read the top 20–40 CVs for any given role, regardless of how many applied. Below the cut, no one reads you.

The myth is that the ATS rejects you. It doesn't, usually. It just ranks you below the cut, and the human recruiter never sees you.

Why most CVs rank low

Three patterns cause most ranking failures.

The CV uses synonyms the JD doesn't use. You wrote "project lead" but the JD says "project manager". You wrote "stakeholder engagement" but the JD says "client relationship management". Your skills are identical. Your match score isn't. The ATS isn't reading for meaning — it's pattern-matching strings.

The CV uses graphics or non-standard layout. Skills icons, two-column layouts, text-in-image headers, infographic-style summaries — they look impressive when a human is looking at them and become invisible to the parser. The system extracts what it can and leaves the rest.

The CV is missing the keywords entirely. You can do the work but you've described it differently. "Built reporting dashboards" doesn't match "data visualisation". "Wrote business cases" doesn't match "investment appraisal".

The fix, in three moves

One: extract the keywords from the JD before you touch your CV.

Open the job description. Highlight every noun phrase that describes a skill, tool, methodology, or qualification. Then group them: required (mentioned in essential criteria, repeated, emphasised) versus desirable (mentioned once, in a list).

You usually end up with 15–25 required terms and a longer desirable list. These are the strings the ATS is looking for.

Two: rewrite each work experience bullet using the JD's exact language.

Not paraphrased. Not "similar to". The exact noun phrases. If the JD says "stakeholder mapping", your bullet should say "stakeholder mapping", not "stakeholder analysis" or "stakeholder engagement".

This feels uncomfortable. It can read as repetitive. Do it anyway. The ATS isn't grading style.

A bullet rewrites like this:

  • Before: Led customer research programme, gathered insights from 30+ interviews, presented findings to senior team.
  • After: Led user research programme using semi-structured interviews (n=32), synthesised qualitative insights into prioritised problem statements, presented to senior stakeholders.

Same activity. Better keyword density. Same number of words.

Three: strip every non-standard layout element.

  • Replace graphics and icons with text
  • Switch from two-column to one-column
  • Move skills from a sidebar into a "Key skills" section near the top, as a comma-separated list
  • Save the CV as a clean .docx or PDF (text-based, not exported from a graphic design tool)
  • Avoid headers and footers — many parsers don't read them

You will lose some visual polish. You will gain a CV that parses correctly and ranks against the keywords it's supposed to.

The skills section that scores best

Most CVs put skills in a sidebar with skill bars or proficiency dots. ATS systems ignore both. The skills section that scores best is a single block near the top of the CV, formatted as a labelled paragraph or comma-separated list, containing the exact keywords from the JD.

Example:

Key skills: Stakeholder mapping, business case development, financial modelling, agile delivery (Scrum, Kanban), SQL, Tableau, Power BI, qualitative research, A/B testing.

Twenty seconds to read. Every word is doing work.

What the human recruiter is doing after the ATS

Once you've ranked above the cut, a recruiter spends roughly 30 seconds on each CV. They're scanning for:

  • Most recent role title (match to the JD)
  • Most recent employer (recognisable)
  • Length of time in the most recent role (stable, not job-hopping)
  • Two or three concrete outcomes near the top

So once the ATS lets you through, the top of your CV is what gets you to interview. The skills section gets you past the parser. The first two bullets of your current role get you into the shortlist.

Optimise for both.

A note on AI-generated CVs

ATS systems increasingly flag CVs that look like they were generated end-to-end by AI — usually by detecting generic phrasing, perfectly uniform bullet structures, or stock language patterns ("results-driven professional with a proven track record"). The flag doesn't always reject the CV, but it can reduce the rank.

If you used an AI tool to draft, rewrite the bullets in your own voice afterwards. Specificity ("I led a team of 6 through a billing system migration over 18 months") beats fluency every time, both with the ATS and the human.