JJustResume

How to write an ATS-friendly resume

6 min read

Most advice about applicant tracking systems is either scaremongering or superstition. This guide sticks to what these systems mechanically do - parse a file into structured fields and match it against a job description - and what that means for the choices you make when writing your resume.

What an ATS actually does

An applicant tracking system is a database with a parser bolted to the front. When you upload a file, it extracts the text and tries to work out which fragment is your name, which are employers, which are job titles and which are dates. It stores the result as fields a recruiter can search and filter.

It is worth being precise about the myth here: mainstream systems do not usually auto-reject resumes with a hidden score. What actually happens is more mundane and more dangerous. If parsing goes wrong, your experience lands in the wrong fields or gets dropped, and when a recruiter filters for a job title or a skill, you simply do not appear in the results.

The formatting choices that break parsing

Almost every parsing failure comes from the same short list. Fixing these is the entire technical side of an ATS-friendly resume.

  • Two or more columns - many parsers read straight across the page, interleaving a sidebar into your job history mid-sentence.
  • Tables used for layout - cell boundaries are invisible to you and structural to the parser.
  • Text inside images or logos - it is not text, so it does not exist.
  • Content in headers and footers - frequently skipped entirely, which is why your phone number can vanish.
  • Text boxes - often extracted out of order, or not at all.
  • Unusual bullet glyphs and decorative dividers - these can come through as junk characters mid-line.

Use the section headings the parser expects

Parsers look for conventional headings to segment your resume. Use Experience (or Work Experience), Education, and Skills. Clever alternatives like 'Where I've Made an Impact' read nicely to a person but can leave the parser unable to identify the block as employment history.

Within experience, keep a consistent order for every role - job title, employer, location, dates - so the parser learns the pattern from the first entry and applies it correctly to the rest.

Match the language of the posting

Recruiters search the database with the words in their own job description. If the posting says 'accounts receivable' and your resume only says 'AR', you will not surface in that search. The same applies to tool names, certifications and job titles.

This is not an invitation to stuff keywords. Invisible white text and keyword lists in a tiny font are detectable, get candidates blacklisted, and read as dishonest the moment a human opens the file. Instead, mirror the posting's phrasing in bullets that describe things you genuinely did.

Write bullets that survive both readers

A good bullet starts with a strong action verb and ends with a result you can defend. 'Reduced deployment time from thirty minutes to four by rebuilding the CI pipeline' works for both audiences: it contains the terms a search would look for, and it tells a human what you are actually capable of.

Avoid opening with 'Responsible for'. It describes a job description rather than your contribution, and it wastes the most valuable position in the line.

Check it before you send it

The quickest sanity check costs nothing: open your exported PDF, select all the text, copy it and paste it into a plain text editor. What you see is roughly what a parser sees. If sections arrive out of order, or your contact details are missing, that is a parsing problem to fix - not a content problem.

You can also paste the text into our free ATS checker, which scores completeness, format safety, readability and length, and compares your wording against a job description if you supply one.