When you apply through a job portal, your CV is usually read twice: once by software that extracts its text into fields, and later, if that goes well, by a person. The software never sees the design. It opens the PDF, pulls out the characters in the order it thinks they belong, and looks for a name, headings and roles.

We built PearlCV's export around that, and measured what goes wrong. Three things stood out.

Letter spacing splits words

Small capitals with generous letter spacing are a classic look for headings. To a text extractor, the gap between letters can look like the gap between words. With PDFKit, the extractor built into Apple's systems, headings started to come apart at 0.125 of the font size. With pdfminer, which many résumé parsers use, it happened from 0.1: a heading reading "SUMMARY" came out as "S U M M A RY". PearlCV templates never space letters wider than 0.08 of the font size, and the template format refuses anything wider.

Some glyphs have no letters behind them

Modern fonts swap in alternative shapes depending on context: a raised plus sign next to a figure, an en dash that sits higher between numbers, a joined "fi". In a PDF, each drawn shape needs a record of which character it stands for. The alternatives often have none, and a parser simply drops them. In our tests a phone number lost its plus sign and every date range lost its dash. PearlCV turns these substitutions off, and a test checks every shape in every bundled font against the character it should stand for.

Columns are read in the parser's order, not yours

A sidebar beside your experience looks clear to a person. A parser gets the text in one of two ways: some read it in the order the file stores it, others rebuild the page from where each line sits, and those can interleave two columns. Then it splits the text at headings and files what follows under the last heading it saw. A skill list read in the middle of your experience is filed as experience. Right-aligned dates can also arrive after the role they belong to.

We measured this on our own designs. Read in the order the file stores it, every template came through correctly. Rebuilt from the layout, one did not: a sidebar that started below a full-width banner had its skills filed under Experience, by PDFKit and by pdfminer alike. A sidebar running the full height of the page read correctly both ways, so every PearlCV sidebar now does, and a section that continues on the next page beside another column repeats its heading there.

There is still no way to promise how every system reads a page, so PearlCV checks instead of promising. It reads your designed PDF both ways and runs seven checks, from contact details to content filed under the right headings, with a plain verdict and the text a parser sees. Every template passes them with a full CV before it ships. When a CV passes, there is one CV to send. When your own changes trip a check, such as two sections side by side, PearlCV says what and takes you to the fix, or makes an ATS-safe copy in the same design: the same type and colours, in one column under standard headings. The check, its fixes and the copy are part of PearlCV Pro.

What this means for you

Send one CV: the one PearlCV calls ready for hiring systems, to recruiters, to hiring managers and to job portals alike. If Export says a check needs a fix, fix it, or send the ATS-safe copy to portals and your designed CV to people. Either way, it still looks like you.