Skip to the content

Guide

Are LaTeX resumes ATS friendly? Three templates, parsed

The usual answer is a guess about LaTeX in general. The real answer depends on the template. This page parses the three most used ones with a resume parser and shows what each lost: one lost nothing, one lost every hyphen and most of its dates, and one lost the candidate's name.

The measurement

Three templates, one parser

Each PDF went through the same parser and scorer the checker runs, unchanged, on 28 October 2026. Jake’s Resume was compiled from its own source; the other two are the example PDFs their authors publish.

TemplateScoreWhat a parser lost
Jake's Resume
jakegut/resume at 3e64a93, compiled with pdfLaTeX
98/98
Parses clean
Nothing. Name, email, phone, links, all four sections and all seven date ranges came back.
Awesome-CV
posquit0/Awesome-CV at dfe8635, its published example resume
53/98
At risk
Every hyphen and date dash, the dates on page 2, and seven entries' dates with them.
moderncv, classic style
xdanaux/moderncv at 453d694, its published example
39/98
Breaks
The name: the address above it was read as the name. Contact icons became stray letters.

So LaTeX itself is not the problem, and neither is PDF. The difference between 98/98 and 39/98 is three specific things a template does or does not do, and all three are fixable in the template.

Why Jake’s parses

Two lines most LaTeX resumes leave out

A PDF stores glyphs, the shapes of letters, not letters. To get text back out, a parser needs a map from each glyph to the character it stands for. pdfLaTeX only writes a complete map when it is told to, and Jake’s template tells it to:

\input{glyphtounicode}
\pdfgentounicode=1

The rest is ordinary good practice: one column, plain section names (Education, Experience, Projects, Technical Skills), the phone, email and profile links written out as text on the second line, and every date in the same shape. Its dates sit at the right edge of each entry, on the same line as the job, which a parser reads as one line rather than a second column. The result is a parse with nothing missing.

Why Awesome-CV loses dates

Its hyphens come out as invisible characters

Awesome-CV is one of the most starred LaTeX CV templates on GitHub, at about 28,800 stars, and it looks excellent. Its example PDF encodes every hyphen and every dash between two dates as a soft hyphen, character U+00AD, an invisible mark that text software is built to ignore. There are 41 of them in the example. The source says cloud-native and Sep. 2023 - Mar. 2024; this is what comes out:

Seasoned SRE/DevOps leader ... seeking highimpact opportunities
in fastgrowing startup companies. With 15+ years of handson ...
DevOps Engineer  Sep. 2023 Mar. 2024

Two things break at once. A recruiter searching for cloud-native will not match cloudnative. And Sep. 2023 Mar. 2024is two dates side by side, not a range, so no start and end are recorded. On page 2 it gets worse: the dates and locations, set at the right of each entry, come out as a separate block after all the jobs, and the checker reported seven entries with no dates at all. A second extractor, poppler’s pdftotext, finds the same 41 soft hyphens, so this is in the file, not in one reader.

Why moderncv loses the name

The address comes first

Parsers take the first substantial line of a resume as the candidate’s name. moderncv’s classic style prints the address block at the top of the page, so the extracted text opens like this, and the parser files “street and number” as the name:

street and number
postcode city
country
H +1 (234) 567 890
B john@doe.org

The single letters are its contact icons. They are drawn from a symbol font, and a symbol font’s phone or envelope comes out as a letter. The dates sit in a column down the left margin, which a parser reads apart from the jobs they belong to. One caveat in moderncv’s favour: its example is an unfilled template, with “year–year” where the dates go, so its missing-dates and placeholder findings come from the example text. The name and the icons come from the layout, and they would follow your content into it.

The answer

How to make a LaTeX resume parse

Yes, a LaTeX resume can be fully ATS friendly. If you use Jake’s Resume or a template built on it, keep the two unicode lines and you are most of the way there. If you use anything else, add them near the top of your preamble and compile with pdfLaTeX.

Keep your name as the first line, with nothing above it. Write your phone, email and profile URLs as plain text rather than icons. Keep one column, and keep each date on the same line as the job it belongs to. Use a plain hyphen between dates, and check that it survives.

Then check the PDF you actually send, not the source. Copy all of its text into a plain text editor: if hyphens, dates or your name come out wrong there, a parser sees the same thing. Or drop it into the ATS resume parser test, which shows every field it recovered and runs in your browser. For the same question about PDF against Word, see the format comparison, and for what the number means, read how the score works.