How ATS systems read your CV (and what breaks them)

What actually happens after you hit apply: how parsers turn your file into searchable text, the formatting that scrambles it, and how to check yours in seconds.

5 min read · Updated Oct 2026

Most applications are read by software before a human sees them. Understanding that machine is not about gaming it; it is about not being thrown away for reasons you cannot see.

An Applicant Tracking System (ATS) is the software a company uses to receive, store, search and rank applications. Nearly every large company, and most small ones, run one. When you hit apply, your CV does not land in a neat inbox. It is parsed into plain text and structured fields, stored in a database, and searched and filtered by recruiters.

What actually happens to your file

There are four stages, and each one can lose something:

  1. Upload. The ATS accepts a file, usually PDF, DOCX or plain text.
  2. Extraction. A parser pulls the text out. It is looking for characters, not layout.
  3. Structuring. It tries to map that text into fields: name, contact details, work history, dates, education, skills.
  4. Matching and ranking. Recruiters search the database by keyword, title or company, and sometimes run automated scoring against the job description.

The human only ever reads what survives those steps.

Parsers read text, not design

A parser does not see your two columns, your colour-coded sidebar or your skill bars. It sees a stream of text in whatever order the file provides. Design that looks great on screen can reorder, merge or drop your content entirely.

The traps that cause the most damage:

  • Multi-column layouts. A single-stream parser reads across the columns, so two side-by-side blocks can interleave line by line into nonsense.
  • Tables and text boxes. Content inside them is frequently dropped or detached from its heading.
  • Headers and footers. Many parsers ignore them, which is exactly where people put their phone number and email.
  • Images, icons and skill bars. Anything drawn as a graphic is invisible. "5/5 Python" as a dot chart says nothing.
  • Creative section headings. "My journey" is not "Experience"; the parser may not recognise the section at all.
  • Unusual fonts and outlined text. If the text is saved as vector outlines, there are no characters to extract.
  • Inconsistent dates. "Jan 2020", "01/2020" and "2020" mixed together are hard to normalise into a timeline.

None of this is about aesthetics. It is about whether the machine can recover your information.

Keywords: matching, not stuffing

Once your CV is text, much of the filtering is keyword-based. A recruiter searching "Kubernetes" will only find people whose CV contains that word, and some systems score CVs against the job description.

The honest way to win this:

  • Mirror the job's vocabulary. If they say "PostgreSQL", do not only write "Postgres"; use their term where it is truthful.
  • Spell out acronyms once. "Continuous integration (CI)" catches both searches.
  • Put skills where they are searchable. A skills line is fine, but weaving the terms into your experience bullets is stronger.
  • Do not keyword-stuff. Modern systems and human reviewers both punish a wall of disconnected terms, and a white-text keyword block is an instant credibility loss.

What the ATS does not do

The ATS rarely rejects you on its own. It is a filing cabinet with a search box. The decisions come from a recruiter filtering that database, or from crude automated rules a hiring manager set up, such as "only candidates with a degree", that have nothing to do with your ability.

That is exactly why parsing matters so much: a perfectly qualified candidate with an unreadable CV is invisible in the search results.

A pre-flight checklist

Before you send, confirm:

  • The file is PDF (or the format the posting asks for), exported from a text-based source rather than a scan.
  • One single-column layout, with no tables and no text boxes.
  • Contact details are in the body, not a header or footer.
  • Section headings are the standard ones: Summary, Experience, Education, Skills.
  • Dates use one consistent format, with an end date or "Present".
  • LinkedIn and GitHub are written as full URLs in the text, not hidden behind linked words.
  • You can select and copy the text in your PDF. If you cannot, a parser cannot either.

Test it in seconds

Reading your own CV the way a parser does is genuinely hard to do by eye, which is why we built a free checker. Scan your CV with the ATS Resume Checker and it will show you the exact text an ATS extracts, flag multi-column and interleaving problems, check the essentials, and show the keywords a role expects that you are missing. It runs entirely in your browser, so your CV is never uploaded or stored.

Then tighten the writing itself with how to write a developer CV, and read the listing before you apply with how to read a job listing like a recruiter.

Find a role that's actually remote

Search fresh, genuinely-remote developer jobs - free.

Browse jobs