How to Use AI and LaTeX to Build a Resume That Actually Gets Read
What I put together after a colleague got laid off and his resume was going nowhere
A buddy of mine -- solid engineer, fifteen years in the field -- got laid off a few months back. Smart guy, great track record. He was applying everywhere and hearing nothing. Not even rejections. Just silence.
I offered to take a look. His resume content was fine. His format was the problem. He had one of those slick two-column Word templates that looks great on screen and gets absolutely shredded by ATS parsers before a human ever sees it.
We rebuilt it in LaTeX using AI to do the heavy lifting. His ATS score improved noticeably -- without changing a single bullet point. Same content, different format, completely different result.
I documented the whole process here so you can do the same for yourself or someone you know who is in the same spot.
Why the Format Matters More Than You Think
Before a recruiter touches your resume, an ATS has already parsed it. Workday, Greenhouse, Lever, iCIMS -- these platforms extract your text, map it into structured fields (name, employer, title, dates, skills), and score your match against the job description. That score is what gets you in front of a human or not.
The format of your resume directly affects how accurately that extraction works. Most people have no idea -- including a lot of experienced people who should know better.
What a Word File Actually Is
A .docx file is a ZIP archive of XML. When an ATS ingests it, it is parsing that XML -- not the polished page you see in Word. Text boxes, multi-column layouts, tables, headers, and footers all live in separate XML nodes. Parsers frequently read them out of order, skip them entirely, or collapse them into broken strings.
Your phone number ends up next to your email. Your job title gets detached from the company name. The skills section you spent an hour on gets read as one long run-on line. The ATS scores you lower because it cannot find the fields it is looking for -- even though everything is sitting right there on the page.
That is exactly what was happening to my colleague's resume.
Canva and Fancy Templates Make It Worse
If anything, visually impressive templates are more dangerous than plain Word files. Canva resumes store content in floating graphic layers. To an ATS, those layers do not exist. Your content is invisible to the parser. You can submit something that looks polished and professional and score near zero on readability without ever knowing it happened.
The Font Encoding Issue
This one is subtle. Many fonts render character pairs like "fi", "fl", and "ff" as single combined glyphs called ligatures. When an older ATS extracts text character by character, it pulls out a symbol it does not recognize instead of the individual letters. The word "proficient" can come out as garbage. Keywords disappear from the parsed output even though they are clearly visible on the page.
Why LaTeX Fixes All of This
LaTeX is a document preparation system that has been used in academic and technical publishing for decades. You write plain text markup, a compiler turns it into a PDF, and that PDF is structurally clean in ways that Word files are not.
For resume purposes, here is what actually matters:
- No hidden layers. LaTeX produces a flat, linearized PDF. Content flows top to bottom in the exact order you wrote it. No floating elements, no separate XML nodes, no out-of-order extraction.
- Clean font encoding. Standard LaTeX fonts handle ligatures as real separate characters in the PDF text layer. No garbled keywords.
- Proper Unicode support. With XeLaTeX (covered below), special characters in names, company names, and technical terms are encoded and extracted correctly.
- Single-column by default. The format we generate is one column, standard section headers, bullet points -- exactly the structure ATS parsers are built to handle.
- Plain text source. The resume lives in a .tex file you can version control, diff, and tailor in under a minute without anything reformatting on you.
Step 1: Use AI to Generate the LaTeX
You do not need to know LaTeX. You just need to give AI precise enough instructions that it does not go off the rails with custom fonts and obscure packages that break in Overleaf.
Copy the resume as plain text -- paste it straight out of Word -- and send it to ChatGPT or Claude with this prompt:
The Prompt
Convert my resume into professional LaTeX code optimized for ATS (Applicant Tracking Systems). Use a clean, single-column layout with standard fonts only -- no custom fonts, no fontspec. Use these exact section headers: Summary, Experience, Education, Skills, and Projects. Format all achievements as bullet points using the \itemize environment. Do not use tables, text boxes, multi-column layouts, graphics, icons, colors, or hyperlinks. Use only these standard LaTeX packages: geometry, enumitem, titlesec, and parskip. Set margins to 1 inch on all sides. Ensure all special characters are properly escaped (& % # $ _ etc.). Output only the raw LaTeX code, no explanation, no markdown fences, no commentary.
Why the Prompt Is Written This Way
- No fontspec: Without this, AI defaults to fontspec and Helvetica. That can introduce the same encoding problems we are trying to eliminate.
- Exact section headers: ATS systems are keyword-trained. "Experience" scores better than "Work History". Do not let the AI get creative with these.
- Pinned packages: Left to its own devices, AI will pull in obscure LaTeX packages that cause compilation errors. geometry, enumitem, titlesec, and parskip are stable and work in Overleaf without issues.
- Escape special characters: Ampersands in company names, percent signs in metrics, hashes in GitHub URLs -- these all break compilation if not escaped. Telling AI upfront saves time hunting errors later.
- No markdown fences: AI wraps code output in triple backticks by default. Paste those into Overleaf and the backticks become syntax errors. This instruction stops that.
Step 2: Paste Into Overleaf and Switch the Compiler
Overleaf is a free browser-based LaTeX editor. No install required. Create a free account at overleaf.com, start a new blank project, delete the default template content, and paste in what the AI generated.
Before you compile, change one setting. This is the part that tripped us up the first time.
Switch to XeLaTeX
Overleaf defaults to pdfLaTeX. If the resume has any non-ASCII characters -- accented letters in a name, special symbols, anything outside basic English -- pdfLaTeX will either error out or produce bad output silently. XeLaTeX handles Unicode correctly. Make the switch before you compile.
- Click File in the top menu bar
- Select Settings at the bottom of the File menu
- Click Compiler in the left panel
- Change the dropdown from pdfLaTeX to XeLaTeX
- Close Settings and hit the green Recompile button
If you hit red errors after compiling, it is almost always an unescaped special character. Check the line number in the error log, find the character -- usually &, %, #, $, or _ -- and put a backslash in front of it. That is the fix the vast majority of the time.
Step 3: Download and Submit
Once it compiles clean, click the download icon next to the Recompile button. That is the file to submit -- not the original Word version, not a Canva export. The LaTeX-compiled PDF is what gets parsed correctly.
Bonus: The Resume Is Now a Text File
Once you go through this process, the resume lives in a .tex file. For anyone with a technical background that is just a better way to manage a document.
- Tailoring takes seconds. Edit a few lines, recompile. No reformatting, no layout drift.
- Version control works. Drop it in Git and you have a full history of every version ever submitted.
- AI can maintain it. Feed the .tex file back to Claude or ChatGPT with a target job description and ask it to tailor the content. Structured markup is something AI handles well.
If you know someone who is currently in the job market and struggling to get traction, send them this. The content on their resume might be great. The format might be the thing nobody told them about.
Key Takeaways
- ATS software parses your resume before any human sees it. Format directly affects your score
- Word and Canva files have hidden structure that parsers frequently misread or drop entirely
- LaTeX produces a flat, clean PDF with no hidden layers and proper character encoding
- You do not need to know LaTeX. Paste the prompt above into ChatGPT or Claude with the resume text
- In Overleaf, switch the compiler from pdfLaTeX to XeLaTeX before you compile
- Same content, better format. That alone moved the needle on ATS scoring