Skip to main content
ExplainerATS ParsingPDF Format· 8 min read· in Careers & Work

Why PDF Font Kerning and CID-Keyed Encodings Scramble Resumes in Applicant Tracking Systems

Applicant Tracking Systems frequently reject qualified candidates because PDF text extraction algorithms misinterpret font kerning tables and fail to decode subsetted CID-keyed fonts. Without a proper ToUnicode map, the parser extracts raw binary escape codes instead of searchable English text.

By Bo Feng

Share this story

In short

  • Applicant Tracking Systems rely on text extraction to populate candidate databases, but PDFs prioritize visual coordinates over semantic text structure.
  • Font kerning adjustments in PDFs force parsers to guess word boundaries, frequently causing them to fuse adjacent words or split single words apart.
  • When PDFs use subsetted CID-keyed fonts without a proper ToUnicode translation map, the ATS extracts raw alphanumeric escape codes instead of readable English text.

The fate of a modern job application is sealed the moment an Applicant Tracking System (ATS) strips away the visual design to read the underlying binary text stream. This extraction step dictates whether a candidate's qualifications are mapped to a database or discarded as unreadable garbage. If the parsing pipeline cannot convert the file into structured data, human recruiters never see the resume.[1][2]

Over 98% of Fortune 500 companies rely on ATS software to collect, sort, and rank job applications. These systems operate as digital gatekeepers, using multi-stage document processing pipelines to convert free-form resumes into searchable candidate profiles. The process begins with text extraction, where the software attempts to pull raw strings from the uploaded file.

To a software engineer, an ATS is fundamentally an ingestion pipeline that strips away the user interface to extract a JSON payload of skills and experience. When a candidate uploads a PDF, the system does not read it like a human being. It relies on the document's internal architecture to identify text, a process that frequently fails due to the mechanical nature of the PDF format.[1]

The core ranking mechanism in most ATS platforms is keyword frequency analysis, which compares extracted tokens against a weighted list derived from the job requisition. Hard skills, specific certifications, and exact job titles receive the highest weighting coefficients. If the text extraction phase scrambles these critical keywords, the candidate's composite score drops to zero, triggering an automated rejection.[2]

The Illusion of the PDF Canvas

The fundamental disconnect between job seekers and ATS platforms stems from a misunderstanding of what a PDF actually is. A PDF is not a semantic text document; it is a visual coordinate system designed to ensure that a page looks identical on any screen or printer. The file format prioritizes visual fidelity over structural logic.[4]

Inside a PDF content stream, text is drawn using coordinate positioning operators, such as the Tj and TJ commands. Letters do not necessarily appear in reading order inside the binary file. A header at the top of the page might be the very last object encoded in the stream, placed there by the generator to minimize font-switching overhead.[4]

The three-stage document processing pipeline used by enterprise Applicant Tracking Systems.

Because the order of operators has zero guaranteed relationship to visual reading order, text extraction is entirely heuristic-based. The parser must measure glyph vertical coordinates to group characters into horizontal lines, then sort text fragments from left to right. This complex reconstruction is highly vulnerable to formatting anomalies.[4]

"The PDF renders perfectly because the renderer draws glyph outlines directly—it doesn't need Unicode to draw shapes," notes a 2026 technical analysis of text extraction architectures. "But any parser trying to extract actual text is stuck." When the underlying data lacks semantic structure, the ATS parser is forced to guess the document's intent.[4]

The Kerning Trap and Word Segmentation

One of the most common causes of ATS text scrambling involves font kerning tables. Kerning fine-tunes the spacing between specific character pairs to make text look balanced, such as pulling a capital "W" and a lowercase "e" closer together. Inside font files, these adjustments are stored in large two-dimensional matrices.[4]

The PDF TJ operator implements these kerning adjustments directly in the content stream, expressing the gaps in thousandths of a text space unit. A parser reading the stream encounters an array of characters and numeric adjustments, such as [(A) 120 (W)] TJ. The software must then decide whether each numeric gap represents a kerning adjustment or a physical word boundary.[4]

The PDF Extract algorithm, a common foundational tool for text parsing, attempts to approximate character text spacing by averaging a selection of the smaller character distances within a line. It uses this average to normalize horizontal distances, centering character gaps around zero while leaving word distances larger.[4]

However, this averaging technique struggles with documents that mix high-quality typography with poor font embedding. If a resume utilizes multiple font sizes, bolding, or italics for emphasis, the kerning distances fluctuate wildly. The parser's baseline average becomes skewed, leading to unpredictable segmentation errors across different sections of the document.[4]

ATS platforms heavily weight hard skills and exact job titles, making parsing errors in these sections particularly damaging.

There is no definitive rule for distinguishing between kerning and a space character; it depends entirely on the font, the PDF generator, and the specific extraction algorithm. If the parser's threshold is too sensitive, it interprets kerning as a space, splitting a word like "Developer" into "D e v e l o p e r."[4]

Conversely, if the parser's threshold is too loose, it ignores legitimate spaces and fuses adjacent words together. An applicant might possess the exact required skills, but if the ATS extracts "SeniorSoftwareEngineer" as a single token, the keyword matching algorithm will fail to recognize it. The candidate is penalized for the document's typography.[2][4]

CID-Keyed Fonts and the ToUnicode Bridge

Beyond spacing issues, the actual encoding of the characters frequently breaks ATS parsers. Many modern PDFs utilize Character Identifier-keyed (CID-keyed) fonts, particularly when documents are exported from web-based design tools like Canva or heavily formatted word processors. These tools often subset fonts, embedding only the specific glyphs used in the document to reduce file size.[3][4]

When a font is subsetted, the PDF assigns arbitrary IDs to the glyphs rather than standard ASCII or Unicode values. The bytes inside the text string are not readable characters; they are simply index numbers pointing to a specific shape in the embedded font dictionary. To extract readable text, the parser requires a translation mechanism.[3][4]

The PDF specification provides this translation through the /ToUnicode CMap, a bridge that maps the arbitrary Character IDs back to standard Unicode strings. If the font includes a correct /ToUnicode table, the ATS parser can seamlessly convert the CID codes into searchable English words.[3][4]

However, PDF generators frequently omit or corrupt the /ToUnicode CMap during the export process. This omission is invisible to the human eye because the document still contains the correct glyph shapes for rendering. But to a machine parser, the semantic meaning of the text is completely obliterated.[3][4][5]

When a PDF lacks a ToUnicode map, parsers fall back to raw character codes, extracting alphanumeric garbage instead of text.

The Extraction Resolution Hierarchy

When an ATS text extractor encounters a character code without a /ToUnicode CMap, it follows a strict resolution hierarchy defined by the PDF specification. It first attempts to fall back to the font's encoding dictionary to obtain glyph names, hoping to infer the Unicode values from standard Adobe Glyph Lists.[3]

If the font lacks standard encoding information—which is almost always the case with subsetted CID-keyed fonts—the parser reaches the bottom of the hierarchy. It is forced to use the raw character code as the Unicode code point. This results in the extraction of raw CID escape codes, such as /i255 or (cid:38).[3][5]

"When processing PDFs that have CID-keyed fonts without ToUnicode mappings, Docling extracts garbage text instead of readable content," explains a 2026 GitHub issue detailing extraction failures. The parser pulls the raw CID codes, completely bypassing the ATS keyword frequency analysis.[5]

A 2026 study published on arXiv highlighted this exact vulnerability, noting that an extractor falling back to raw codes produces text that differs entirely from the rendered glyphs. The visual and extracted token sequences become permutations of the same character set, making the divergence invisible to any diff-based integrity check.[3]

This font-decoding split allows a document to display one set of characters while feeding a completely different string to the underlying database. While security researchers study this phenomenon for potential exploits, job seekers experience it as a catastrophic formatting bug that silently deletes their professional history.[3]

This silent failure is the primary reason highly qualified candidates receive immediate automated rejections. The applicant uploads a visually stunning resume, unaware that the ATS database has recorded their entire work history as a string of unsearchable alphanumeric variables.[1][2]

Illustration: Pasting a PDF into a plain text editor reveals exactly what the ATS parser will extract.

Navigating the Parsing Pipeline

Once the text is extracted, the ATS assigns a composite score ranging from 0 to 100. This score determines whether the application enters the active review pipeline or remains buried in the database. The algorithm weights recent roles and exact job title matches heavily, meaning a parsing error in the work history section is particularly devastating.[2]

Semantic matching capabilities vary significantly between platforms. Legacy systems perform strict literal matching, while modern platforms incorporate limited synonym resolution. However, no system can resolve a synonym if the underlying text has been scrambled into raw CID codes. The baseline requirement for any ATS is a clean, readable text layer.[2]

To survive the parsing pipeline, job seekers must prioritize structured data over creative design. Enterprise Applicant Tracking Systems, including Workday, Greenhouse, and iCIMS, process standard DOCX files with the highest fidelity. Word documents inherently store text as semantic strings rather than visual coordinates, bypassing the kerning and CID encoding traps entirely.[1][2]

For candidates who prefer the fixed layout of a PDF, the document must be generated from a standard word processor using system-default fonts. Fonts like Arial, Calibri, or Times New Roman are rarely subsetted into CID-keyed formats, ensuring that the text remains encoded in standard Unicode.[1]

Documents generated via LaTeX also parse exceptionally well, as the compiler enforces strict structural rules and generates high-quality PDFs with clean text layers. The LaTeX engine explicitly handles the /ToUnicode mappings, ensuring that the semantic text perfectly matches the visual output.[1]

Documents generated via LaTeX also parse exceptionally well, as the compiler enforces strict structural rules and generates high-quality PDFs with clean text layers.

The simplest diagnostic test for a resume is to copy the entire document and paste it into a plain text editor like Notepad. If the resulting text is scrambled, missing spaces, or replaced by arbitrary symbols, the ATS parser will suffer the exact same failure.[1]

Ultimately, the recruitment process is an exercise in database management. The resume is not a marketing brochure; it is a data payload designed to populate specific fields in an employer's system. Ensuring that the payload is machine-readable is the only way to guarantee that a human being will eventually evaluate the candidate's actual qualifications.[1][2]

How we did this

Method
Derivation of ATS keyword failure rates by mapping the PDF text extraction resolution hierarchy against standard ATS keyword matching algorithms.
What we found
When a PDF lacks a ToUnicode map, the ATS parser's fallback to raw character codes completely bypasses the keyword frequency analysis, resulting in an automatic zero score for hard skills and job titles, regardless of the applicant's actual qualifications.
What we worked from
  • PDF resolution hierarchy fallback to raw character codes: Extracts raw CID escape codes instead of Unicode — arXiv
  • ATS keyword frequency analysis weighting: Hard skills and exact titles receive highest coefficients — HireReadyAI
Limits of this analysis
This derivation assumes the ATS does not employ secondary Optical Character Recognition (OCR) as a fallback for machine-readable PDFs, which some newer enterprise systems are beginning to implement.

Terms to know

Applicant Tracking System (ATS)
Software used by employers to collect, parse, sort, and rank job applications automatically.
CID-Keyed Font
A font format that uses Character Identifiers instead of standard encodings, often used when subsetting fonts to reduce file size.
ToUnicode CMap
A translation table inside a PDF that maps arbitrary Character IDs back to standard, readable Unicode text.
Kerning
The adjustment of space between specific pairs of characters to improve visual balance and readability.
Text Extraction
The computational process of pulling raw text strings from the binary data of a document file.

Questions readers ask

Why does my resume look perfect to me but fail in the ATS?

PDFs prioritize visual layout over text structure. If the file uses subsetted fonts without a translation table, the ATS parser extracts raw binary codes instead of the English words you see on the screen.

How can I test if my PDF has text extraction issues?

Copy all the text from your PDF and paste it into a plain text editor like Notepad. If the pasted text is scrambled, missing spaces, or replaced by arbitrary symbols, the ATS will fail to read it.

Does saving my resume as a Word document fix the problem?

Yes. Standard DOCX files inherently store text as semantic strings rather than visual coordinates, completely bypassing the kerning and CID encoding traps that plague PDFs.

Different angles

ATS Software Developers

Focus on standardizing parsing pipelines and keyword matching to handle diverse inputs at scale.

Developers of enterprise Applicant Tracking Systems view the resume parsing challenge as an ingestion problem. Their primary goal is to convert unstructured, free-form documents into a standardized database schema that recruiters can easily search and filter. Because they process millions of applications daily, these systems rely on fast, deterministic text extraction algorithms rather than computationally expensive Optical Character Recognition (OCR) for every document. From this perspective, the failure lies not with the ATS, but with the lack of standardization in candidate submissions. Developers argue that if applicants treated their resumes as structured data payloads—using standard DOCX formats or cleanly compiled LaTeX PDFs—the parsing failure rate would drop to near zero. They design their keyword weighting algorithms assuming the incoming text layer is accurate, placing the burden of document compatibility squarely on the applicant.

PDF Specification Engineers

Focus on the visual fidelity of PDFs and the technical necessity of CID-keyed fonts for complex typography.

Engineers who maintain and implement the PDF specification approach the format primarily as a digital printing press. The core mandate of a PDF is to ensure that a document renders identically across any operating system, device, or physical printer. To achieve this, the format relies on absolute coordinate positioning and embedded font subsets, which inherently prioritize visual layout over semantic text structure. From a specification standpoint, the use of CID-keyed fonts and complex kerning tables is a feature, not a bug. It allows designers to use intricate, custom typography without bloating the file size. While the specification provides the /ToUnicode CMap to bridge the gap between visual glyphs and semantic text, engineers note that it is the responsibility of the software generating the PDF—such as Canva or Microsoft Word—to properly encode this translation table, rather than a flaw in the PDF architecture itself.

Career Strategists

Focus on the frustration of automated rejections and advocate for plain-text formatting to bypass technical hurdles.

Career coaches and job search strategists view the ATS parsing pipeline as an opaque, adversarial system that unfairly penalizes qualified candidates for minor technical infractions. They witness firsthand the frustration of job seekers who spend hours crafting visually appealing resumes, only to receive instantaneous automated rejections because a hidden font subset scrambled their work history. To combat this, strategists increasingly advocate for a "plain text first" approach to resume design. They advise candidates to strip away all complex formatting, columns, and custom fonts, favoring standard DOCX files or highly structured, single-column PDFs. For this camp, the aesthetic appeal of a resume is entirely secondary to its machine readability, treating the application process as an exercise in search engine optimization rather than graphic design.

ATS Software Developers 35%Career Strategists 35%PDF Specification Engineers 30%
ATS Software Developers
Focus on standardizing parsing pipelines and keyword matching to handle diverse inputs at scale.
Career Strategists
Focus on the frustration of automated rejections and advocate for plain-text formatting to bypass technical hurdles.
PDF Specification Engineers
Focus on the visual fidelity of PDFs and the technical necessity of CID-keyed fonts for complex typography.

Perspectives this story doesn't cover

  • Design Software Vendors
  • Corporate Recruiters

Sources

Source coverage

6 outlets

3 viewpoints surfaced

ATS Software Developers 35%Career Strategists 35%PDF Specification Engineers 30%
  1. [1]nnitiwe.ioCareer Strategists

    The Parsing Pipeline: How It Works

    Read on nnitiwe.io →
  2. [2]HireReadyAIATS Software Developers

    How ATS Parsing Engines Operate

    Read on HireReadyAI →
  3. [3]arXivPDF Specification Engineers

    Font-Decoding Split: Text Extraction Resolution Hierarchy

    Read on arXiv →
  4. [4]LlamaIndexPDF Specification Engineers

    PDF Text Is Glyph Shapes, Not Characters

    Read on LlamaIndex →
  5. [5]GitHubPDF Specification Engineers

    Docling Issue: CID-keyed fonts without ToUnicode mappings extract garbage text

    Read on GitHub →
  6. [6]Factlen Editorial Team

    Synthesis by Factlen editorial team

    Read on Factlen Editorial Team →

Comments

Stay informed

Every angle. Every day.

Get Careers & Work stories with full source coverage and perspective breakdowns, free every day.