Blog & Engineering Notes
Things we built, measured, or got wrong. Written by the developer, dated, and updated in place when code or benchmarks change.
Articles (4)
#PDFWhy LaTeX Resumes Fail ATS Parsers: The pdflatex Ligature and Virtual Font Pitfall
Default pdflatex builds convert character pairs like 'fi' and 'fl' into composite ligatures that legacy ATS extractors drop or turn into whitespace. Here is why 'efficient' becomes 'e cient' in recruiter databases, and how to fix your LaTeX preamble.
Why ATS PDF Parsers Break on Hyphens and Em-Dashes (and Drop Minus Signs in Equity Models)
Word processors silently convert standard ASCII hyphens into Unicode en-dashes and em-dashes. Here is how that corrupts date parsing in legacy ATS pipelines, drops negative numbers in equity models, and how to verify your PDF in five seconds.
The Invisible ATS Trap in AI-Generated Resumes: Letter-Spacing and Broken Parsing
Why ChatGPT, Claude, and Gemini produce PDF resumes that look visually pristine to humans but extract as disconnected glyphs in enterprise applicant tracking systems like Greenhouse and Workday.
How an ATS Actually Reads Your PDF (and Why Two Columns Break It)
A technical walk-through of PDF text extraction (content streams, reading order, and why a layout that looks fine to you arrives scrambled in the recruiter's database). With a five-second self-test.