LaTeX CV with Overleaf and Jake's Resume: how the PDF parses
Jake's Resume, the LaTeX template many people open in Overleaf, gave a one-page, one-column PDF whose text CitedCV's reader got in reading order in our test. One other extractor moved a date, so paste-test your own export.1
Written 13 October 2026. CitedCV. How we write our guides
First, keep the two lines that make the text readable
Open the template from Overleaf's gallery page for Jake's Resume with the Open as Template button. The page names Jake Gutierrez as author, publishes it under the MIT License and shows a last update six years ago. The GitHub repository it comes from, jakegut/resume, says the Overleaf copy is not updated and that the design is based on sb2nov/resume.
Near the top of the source sit two lines worth leaving alone: \input{glyphtounicode} and \pdfgentounicode=1. The template's own comment says they are there so the generated PDF is machine readable and ATS parsable.
What those two lines do
The pdfTeX manual (revision 979, covering pdfTeX 1.40.29) explains the mechanism. By default pdfTeX writes no /ToUnicode resource, the table that maps each glyph in a font to a Unicode character. Without it, the PDF reader decides how text search behaves: plain ASCII usually works, but anything beyond it, ligatures such as fi included, is likely to fail. Setting \pdfgentounicode to 1 adds the table, and the glyphtounicode file supplies its entries.
Copying text out of a PDF and a parser reading it depend on the same mapping. So our reading of the manual is that a CV built without these lines can come out with broken ligatures in words like certified or office. We did not build a pdfLaTeX version to prove it; the paste test further down shows you whether your own file has the problem.
How Overleaf compiles the file
- Overleaf offers four compilers: pdfLaTeX, LaTeX, XeLaTeX and LuaLaTeX. Its documentation calls pdfLaTeX the default and most frequently used one.
- The compiler and the TeX Live version are set per project: open the settings from the gear icon at the bottom left of the editor or from the File menu, then choose Compiler. Overleaf recommends the most recent TeX Live in most cases and advises against legacy versions for new projects.
- Fast [draft] mode skips image processing and replaces every image with an empty box. Turn it off before you download the PDF you will send.
- Free projects have a 10-second compile timeout, according to Overleaf's post of 16 June 2025; premium plans keep 4 minutes.
Switching to XeLaTeX or LuaLaTeX
The two Unicode lines are pdfTeX commands. When we built the unmodified template with Tectonic, which runs the XeTeX engine, it stopped at line 7 of glyphtounicode with Undefined control sequence. If you change compiler to use a system font, comment out both lines. In our XeTeX build every embedded font carried a Unicode map, as Poppler's pdffonts tool reported.
Filling in the template's commands
| Command | Its slots, in order | What to watch |
|---|---|---|
| \resumeSubheading under Education | School, city, degree, dates | The dates sit at the right edge of the second line |
| \resumeSubheading under Experience | Job title, dates, employer, city | The title comes first and the employer second |
| \resumeProjectHeading | Project name and stack, dates | Name and stack are split by a vertical bar |
| \resumeItem | One bullet | Write the result, not the duty |
| The centred header block | Name, phone, email, LinkedIn, GitHub | Every link has a target and a visible text |
The sample header links the email to x@x.com while the text shows jake@su.edu, and the LinkedIn and GitHub links point to placeholders. Change both parts of every link. The extractors we used read only the visible text, while a recruiter who clicks lands on the target.
Our test: Jake's Resume through two text extractors
We compiled the template as published, with its sample content, and read the PDF the way the CitedCV free checker reads an upload. The method, so you can repeat it:
| Step | What we used on 13 October 2026 |
|---|---|
| Template | resume.tex from github.com/jakegut/resume, master branch (MIT License) |
| Build | Tectonic 0.16.9 (XeTeX engine), with the two pdfTeX-only lines commented out and nothing else changed |
| Reader | The checker's PDF reader (apps/web/app/lib/extract.client.ts) with pdfjs-dist 6.3.289 |
| Audit | auditCvText from packages/engine-core, English rules, US region |
| Cross-check | Poppler pdftotext 26.02.0, in its default mode and in raw mode |
This is not Overleaf's default build: Overleaf would compile with pdfLaTeX, which we did not have locally. Treat the numbers as one data point about this template, not a verdict on yours.
What came out
| Check | Result |
|---|---|
| Pages and columns | 1 page, 1 column |
| Pages that are pictures | 0 |
| Filled shapes such as skill bars | 0 |
| Words read | 398 |
| Headings filed as sections | Education, Experience, Projects, Technical Skills |
| Contact details | Phone and email found on the second line |
| Date style | One style throughout, such as Aug. 2018 – May 2021 |
| Reading order in the CitedCV reader | Each title with its dates on one line, employer and city on the next, then the bullets |
| Audit score | 66 of 100, in the 50 to 74 band the checker calls workable |
Why 66 and not higher
The file raised no layout finding at all. The score comes from the sample wording: language 60, structure 100, contact 100 and evidence 40. Evidence is the share of bullet lines that carry a number, and 4 of the 20 sample bullets do. Three bullets were flagged as having no number, name or scope, for example Communicate with managers to set up campus computers used on campus. Your own lines will score differently.
Two things that did not read as intended
- Poppler's default mode, which rebuilds the layout from positions, moved the date Sep. 2018 – Present below the next job title. In raw mode, which follows the order the text was written into the file, every date stayed on its line. The template sets dates at the right edge of a full-width row, and right-hand text is what a position-guessing reader can split off.
- CitedCV's checker merged two roles into one. Both Southwestern University jobs share the same employer line under different titles, and the checker files bullets under the last plain line above them, so it reported 9 bullets for one entry where the roles have 3 and 6. That is a limit of our checker, and it shows something about the layout: the employer line, not the job title, sits directly above the bullets.
Greenhouse's help page lists tables and columned layouts among the causes of an unsuccessful parse. The template builds each entry header with a LaTeX table, yet both extractors found ordinary lines of text in the PDF. What decides the outcome is the order the text comes out in, which you can check yourself.
Check your own Overleaf PDF in five minutes
- In Overleaf, turn off Fast [draft] mode, recompile and download the PDF.
- Open it and try to select a line. If nothing highlights, there is no text layer for any parser to read.
- Select all, copy and paste into a plain text editor. Check that every date sits beside its own job title and not under the next one.
- Search the pasted text for words containing fi, fl or ff and check that they pasted whole.
- Upload the PDF to the CitedCV free checker, which runs in your browser with no account and reports columns, picture pages, missing headings and dates it cannot read.
- On the employer's form, read the parsed fields before you submit. Greenhouse's candidate FAQ says parsing can make mistakes and asks you to review and edit your information first.
Sources, read on 13 October 2026
| Source | Date on the page | Used for |
|---|---|---|
| Overleaf template gallery: Jake's Resume | Last updated six years ago | Author, licence, Open as Template |
| Overleaf docs: selecting a TeX Live version and LaTeX compiler | None shown | The four compilers, the default, the settings path |
| Overleaf docs: recompiling your project | None shown | Fast [draft] mode and empty image boxes |
| Overleaf blog: changes to free compile timeout | 16 June 2025 | 10 seconds free, 4 minutes premium |
| pdfTeX user manual | Revision 979, pdfTeX 1.40.29 | What \pdfgentounicode and the ToUnicode table do |
| GitHub: jakegut/resume | MIT License, 2020 | The source file we compiled |
| Greenhouse: unsuccessful resume parse | Updated 2 March 2026 | Tables and columns among parse problems |
When LaTeX is the wrong tool
- You need a Word file. Overleaf gives you a PDF; if a recruiter or agency asks for a DOCX to edit, you will be rebuilding the CV somewhere else.
- You have a deadline and have never used LaTeX. One missing brace stops the compile, and fixing errors can take longer than the layout saves.
- You want a two-column or sidebar template. We tested one single-column template; any other needs the paste test before you trust it.
What our test does not show
It does not show how Workday, Greenhouse or any other employer system reads this file, because each runs its own parser. It shows what two widely used extractors and the CitedCV checker got from one build of one template.
Other ways to get the same clean layout
| Option | Strength | Limit |
|---|---|---|
| Overleaf with Jake's Resume | Consistent typography and a one-column layout that read in order in our test | PDF only, LaTeX to learn, compile errors to fix |
| A Word template | Editable by anyone and exportable to both DOCX and PDF | Some templates use tables, headers or text boxes, which Greenhouse lists among parse problems |
| CitedCV | Writes the CV from the facts you give it in single-column templates; exports PDF, DOCX and TXT, each read back by a text extractor and measured | Costs credits after the signup bonus; you choose a template instead of editing layout code |
If you are still choosing a file type, the guide to PDF or Word for ATS covers that decision, and the guide to a resume that is not parsing covers what to do when a form comes back empty.
Questions people ask
Is a LaTeX resume ATS friendly?
It can be, when the PDF has a text layer and the text comes out in reading order. In our test of Jake's Resume the CitedCV reader got every line in order, while one Poppler mode moved a date. Paste-test your own file.
Is Jake's Resume ATS friendly?
In our test it read as a one-page, one-column PDF with four standard headings, contact details and dates found and no layout findings. We built it with XeTeX, not with the pdfLaTeX Overleaf uses by default.
Should I compile my resume with pdfLaTeX or XeLaTeX?
Keep pdfLaTeX for Jake's Resume, because its two Unicode lines are pdfTeX commands. Overleaf names pdfLaTeX as its default; moving to XeLaTeX means commenting out those lines first.
Why does my Overleaf resume fail with Undefined control sequence?
One common cause is a pdfTeX-only command under XeLaTeX or LuaLaTeX. In Jake's Resume the glyphtounicode input and the pdfgentounicode line stop a XeTeX build; switch back to pdfLaTeX or comment them out.
What does pdfgentounicode do in a resume template?
It makes pdfTeX write a ToUnicode table into the PDF. The pdfTeX manual says that without one, searching for anything beyond basic ASCII, ligatures such as fi included, is likely to fail.
Is Overleaf free for making a resume?
Yes, Overleaf has a free plan. Its post of 16 June 2025 set the free compile timeout to 10 seconds, with 4 minutes on premium plans; check the current limits on Overleaf's own pages.
Do right-aligned dates cause parsing problems?
They can with some readers. Poppler's default mode moved one right-aligned date in Jake's Resume below the next job title, while the CitedCV reader and Poppler's raw mode kept it in place.
How do I check what an ATS reads from my LaTeX PDF?
Copy all the text from the PDF into a plain text editor and read it top to bottom, then run the file through a free checker. On the employer's form, review the parsed fields before you submit.
Sources
- Overleaf template gallery: Jake's Resumewww.overleaf.com/latex/templates/jakes-resume/syzfjbzwjncs
- Overleaf docs: selecting a TeX Live version and LaTeX compilerdocs.overleaf.com/getting-started/recompiling-your-project/selecting-a-tex-live-version-and-latex-compiler
- Overleaf docs: recompiling your projectdocs.overleaf.com/getting-started/recompiling-your-project
- Overleaf blog: changes to free compile timeout (16 June 2025)www.overleaf.com/blog/changes-to-free-compile-timeout
- The pdfTeX user manual (CTAN)mirrors.ctan.org/systems/doc/pdftex/manual/pdftex-a.pdf
- GitHub: jakegut/resumegithub.com/jakegut/resume
- Greenhouse Support: Unsuccessful resume parsesupport.greenhouse.io/hc/en-us/articles/200989175-Unsuccessful-resume-parse
- Greenhouse Support: MyGreenhouse FAQ for Candidatessupport.greenhouse.io/hc/en-us/articles/43418495049499-MyGreenhouse-FAQ-for-Candidates