Skip to content

An ATS-friendly resume checklist grounded in how parsing works

An applicant tracking system reads text, structure, and keywords. Passing it is a matter of being legible and relevant, not of tricking the software. Here is the concrete checklist.

Founder, Folio8 min read

An applicant tracking system, or ATS, is software that reads a resume into text, splits it into sections, and matches it against a job description before a recruiter ever sees it. You make a resume ATS-friendly by keeping it machine-readable and relevant: use a single-column layout, standard section headings, a common font, real text rather than images, and the exact keywords from the job posting where they are genuinely true. Passing an ATS is about legibility and relevance, not about tricks, and any attempt to game the parser fails the moment a human reads the page.

Ground truth

What an applicant tracking system actually does

Before any checklist is useful, it helps to know what the software on the other side is doing, because almost every ATS myth comes from imagining it wrong. When you submit a resume, the system does not look at your design. It runs a parser that converts your file into plain text, then tries to work out which chunk of that text is your experience, which is your education, which is your skills, and so on. It stores those parsed fields in a database and compares them against the requirements the employer configured for the role. Only after that does a recruiter open the file, and often they read the parsed version rather than your original.

Two consequences follow, and they drive the entire checklist. First, anything the parser cannot convert to clean text is invisible to the system. A skill trapped inside an image, a title stranded in a header, or a date lost inside a multi-column table simply does not exist as far as the match is concerned. Second, the parser relies on convention to find your sections. It looks for headings it recognises, so a section you cleverly renamed can be dropped into the wrong bucket or ignored. The software is not intelligent. It is pattern matching on a document it expects to look ordinary.

This is why the honest goal is legibility, not trickery. You are not trying to fool a gatekeeper. You are trying to hand a fairly literal-minded machine a document it can read without confusion, so that the true, relevant content of your resume actually reaches the recruiter intact. Everything below is in service of that single aim, and none of it involves deceiving anyone.

The checklist

The structural checks that keep a resume machine-readable

Each item here protects the parser from getting confused. Clear these and the text of your resume reaches the database the way you wrote it, in the right sections.

Layout

Use a single-column layout

Parsers read top to bottom, left to right. A two-column design can interleave your text into nonsense, mixing a skill from the sidebar into the middle of a job. One column keeps the reading order intact.

Headings

Use standard section headings

Name your sections Experience, Education, and Skills, the words the parser is trained to find. A creative heading such as Where I Have Made An Impact can cause the whole section beneath it to be misfiled or lost.

Text

Keep everything as real, selectable text

If you can highlight the words with a cursor, the parser can read them. A resume saved as an image, or with key details baked into a graphic, arrives at the system as an empty page.

Fonts

Choose a common, plain font

Standard fonts map cleanly to characters the parser knows. Decorative or heavily stylised fonts can convert to garbled text, and ligatures or icons can drop letters out of a word entirely.

Structure

Avoid tables, text boxes, and columns

Tables and text boxes are the most common cause of scrambled parsing, because their contents are read in an order you did not intend. Lay the resume out with ordinary paragraphs and lists instead.

File

Send the format the posting asks for

When a listing names a format, follow it. A widely supported, text-based document parses reliably, while an unusual export or a design file may not be read at all. Put contact details in the body, never in the page header.

Relevance

How to match a job without stuffing keywords

Structure gets your resume read. Relevance gets it ranked. This is how to align with a specific posting using only claims that are true.

  1. Read the job description as a keyword source.

    The posting is a list of the exact terms the employer configured the system to look for. Pull out the named skills, tools, and qualifications, and note the precise wording each one uses.

  2. Mirror the exact phrasing you honestly match.

    If the posting says project management and you have that skill, write project management, not the synonym you prefer. A parser matches strings, so the closer your wording is to theirs, the cleaner the match, provided the claim is true.

  3. Place keywords in real context, not a block.

    Work each relevant term into a bullet or your skills list where it describes something you actually did. A keyword sitting inside a genuine accomplishment satisfies both the parser and the human, which a bare keyword dump never does.

  4. Spell out every acronym once.

    Different postings search for the short form or the long form, so write both at least once, as in search engine optimisation followed by SEO. That way you match whichever version the system was told to look for.

  5. Tailor per role, and never invent a match.

    Adjust the emphasis for each posting so the most relevant terms appear naturally. Add only skills you genuinely have, because a keyword you cannot defend in an interview costs you more than the match was ever worth.

The temptation

Why gaming the parser always backfires

Once people learn that an ATS matches keywords, the temptation is to game the match rather than earn it, and every one of those tactics fails. The oldest is white text: pasting a block of keywords in a colour that blends into the background so a human cannot see it but the parser can. Modern systems flag hidden text, recruiters routinely select all to reveal it, and the moment it is found the application is discarded as dishonest. You have not beaten the filter. You have handed the employer a clean reason to reject you.

Keyword stuffing is the subtler version, cramming every term from the posting into a dense list regardless of whether you have the skill. It sometimes lifts the machine match, and then it fails at the next step, because a recruiter reads a resume that claims twenty specialities and demonstrates none, and concludes the candidate is padding. The same is true of stuffing keywords into the file metadata or the document header. These moves treat the ATS as the finish line, when it is only the turnstile. A human always reads what gets through, and a human is much harder to fool than a parser.

The reliable way to rank well is unglamorous and it works: be genuinely relevant, and be legible about it. A resume that honestly mirrors the language of a job you are actually qualified for, laid out so the parser reads it cleanly, will outperform a stuffed one over any real number of applications. There is no trick that beats being the right candidate presented clearly, and every trick that promises otherwise creates a problem at the interview stage that is worse than the one it solved.

Verify

Test it the way the machine sees it, then send

The last step is the one most people skip: look at your resume the way the parser will, before an employer does. The quickest manual check is to save the document as plain text, or copy everything and paste it into a blank text file, then read what comes out. If your sections are still in order, your dates still sit beside the right jobs, and nothing has turned to garble, the parser will most likely see it the same way. If the text arrives scrambled, out of order, or missing, you have found a structural problem while you can still fix it rather than after a silent rejection.

A checker does the same job more precisely, scoring how a specific resume matches a specific posting and flagging the sections a parser struggles with. Being straight about the free plan on Folio, it publishes a portfolio at portfolio.wrxstack.com/yourname rather than a domain of your own, it shows a small Made with Folio badge, and the full theme gallery is a paid feature. The resume export is not gated: it downloads as PDF and DOCX at no cost and with no watermark, and the built-in checker returns a deterministic score for a resume against a given job description so you can see the match and the structural warnings before you apply.

Whatever you use to test it, the sequence is the same. Make the layout legible, mirror the true keywords in real context, refuse every trick, and then read the parsed version back before sending. An ATS-friendly resume is not a gamed resume. It is an honest, relevant one, laid out so a literal-minded machine can pass it through to the person who actually decides.

Frequently asked questions

How do you make a resume ATS-friendly?

Keep it machine-readable and relevant. Use a single-column layout, standard section headings such as Experience and Education, a common font, and real selectable text rather than images or graphics. Then mirror the exact keywords from the job description for skills you genuinely have, placing them in the context of real accomplishments. The goal is legibility and honest relevance, not tricking the parser.

What formatting breaks an applicant tracking system?

Tables, text boxes, and multi-column layouts are the most common causes of scrambled parsing, because the software reads their contents in an order you did not intend. Images, graphics with text baked in, decorative fonts, and details placed in the page header can also be dropped entirely. Lay the resume out with ordinary paragraphs and lists, and keep contact details in the body of the document.

Do keywords still matter for an ATS resume?

Yes, but only the true ones. An applicant tracking system matches the exact terms an employer configured from the job description, so mirroring that precise wording for skills you actually have improves the match. Spell out acronyms and their long forms at least once, and place every keyword inside a real bullet or skills entry rather than a hidden block, so it satisfies both the parser and the recruiter who reads it next.

Does hiding keywords in white text beat the ATS?

No, and it is one of the fastest ways to get rejected. Modern systems flag hidden text, and recruiters routinely select all to reveal anything disguised in the background colour. The moment it is found, the application is discarded as dishonest. The same applies to keyword stuffing, which may lift the machine match but fails immediately when a human reads a resume that claims skills it never demonstrates.

How can you test whether a resume is ATS-friendly?

Save the document as plain text, or copy everything into a blank text file, then read it back. If your sections stay in order, your dates sit beside the right jobs, and nothing turns to garble, the parser will most likely read it the same way. A dedicated checker does this more precisely, scoring the resume against a specific job description and flagging the sections a parser struggles with before you apply.

Start free

Build the portfolio, resume, and site in one place.

A theme, an AI resume, a custom domain, and the SEO built in. No card required to start, and your work is yours to export any time.

Keep reading

ATS-Friendly Resume Checklist: How to Pass Parsing