One printed CV on a walnut desk with four translucent copies layered behind it, each progressively fragmenting into paper shards under a cool blue scanning light

Search for the best file format for a CV and you will meet a very confident statistic. Something like 97% of Word documents parse correctly, 76% of text PDFs, 53% of designed PDFs. It gets quoted in blog posts, repeated by AI assistants, and pasted into advice threads by people trying to help.

Go looking for the study behind those numbers and there isn’t one. No sample size. No named platforms. No date. No methodology. It is a number that got invented somewhere and then went travelling, and it now shapes what a lot of people do with the most important document of their working life.

So we stopped arguing about it and ran the experiment. One CV. Five file formats. Four AI models. Three runs each. An answer key to check every result against. Here is what actually happened.

48
scored extraction runs, plus 4 rejected outright
100%
of figures, accents and skills survived in every readable format
0
of 4 models could open a Word file at all

The short version: the file format mattered far less than everyone claims, and the model reading the file mattered far more than anyone mentions. Three of our four models read every readable format flawlessly, including the designed two column one that advice columns treat as career suicide. The fourth model, the cheapest, made a specific mistake on specific layouts. And you never get to choose which one reads you.

What we actually did (the boring part that makes the rest count)

Every competitor test we could find has the same flaw. They hand build a Word CV, then hand build a PDF CV, then compare the results. But those two documents have different content, different wording and different spacing, so when the results differ you have no idea whether the format caused it or the writing did. Content and format vary together, which makes the answer meaningless.

We fixed that by starting from a single source of truth. One canonical cv.json file, our open standard for career data. Then we rendered that one file into five different containers, holding every string identical. Same name, same bullets, same numbers, same order. The only thing that changed was the shape of the box.

The five formats were cv.json itself, plain text, a DOCX built with the same library our export route uses, a clean single column PDF, and a designed two column PDF with a dark sidebar holding contact details and skills. That last one is the layout people mean when they say a template looks good on Canva.

Then we deliberately booby trapped the CV. Our fictional candidate, Elena Marković, is a data analyst in Zürich who was promoted at the same employer, so Helvetia Logistics AG appears twice with two different job titles. She also did freelance work that overlaps with a full time role. Her name and her universities carry accented characters. Her bullets contain ten specific figures, including CHF 1.24M, 71%, 2,300 and EUR 640k.

Each format went to four models: a frontier tier, two mid tiers and a budget tier. We asked each one to extract the CV into a fixed JSON shape, ran every combination three times at temperature 0, and then diffed the output field by field against the original cv.json. Because we owned the answer key, what was lost is arithmetic rather than opinion.

What survived: basically everything you have been told to worry about

Start with the good news, because it is genuinely reassuring and almost nobody says it.

Every one of the ten tracked figures survived in every readable format, across all 48 scored runs. CHF 1.24M came back as CHF 1.24M. The 71% recovery rate stayed 71%. The 2,300 weekly shipments kept its comma. EUR 640k did not become 640, or 640,000, or vanish. Currency symbols, percentages and thousands separators all came through intact, every single time.

All four accented strings survived too, byte perfect, in all 48 runs. Elena Marković kept her ć. Zürich kept its umlaut. Universität Zürich and Sveučilište u Zagrebu came back exactly as written. If you have been quietly anglicising your own name because you assumed the software would choke on it, you can stop doing that.

Skills scored 100% everywhere. All ten came back in every format, including from the two column layout where they lived in a dark sidebar, visually detached from everything else. The sidebar is supposed to be the thing that gets orphaned. It wasn’t.

So the three fears that dominate resume advice, that AI will scramble your numbers, butcher your name and lose your skills, did not happen once in 48 runs. Not once. That is the most boring result in this article and probably the most useful one.

What actually broke: who you worked for

The failures, when they came, were narrow and specific. They were all about employer boundaries.

Remember the promotion. Elena worked at Helvetia Logistics AG twice, first as a Data Analyst from June 2021, then as a Senior Data Analyst from March 2023. Two roles, one employer, which is the single most common shape in a real career and a genuinely hard thing to parse, because the company name repeats and the reader has to decide whether that is one job or two.

On the plain text version and the designed two column PDF, the budget model collapsed them into a single job. It returned three roles instead of four. Then it took the bullets belonging to both positions and attached five of the eight to the wrong role.

The failure, in one line
What the CV said

Senior Data Analyst, Mar 2023 to present. Data Analyst, Jun 2021 to Feb 2023. Two roles at Helvetia Logistics AG.

What the budget model returned

One role at Helvetia Logistics AG, with the junior job’s achievements filed under the senior title and the promotion erased.

Why this is worse than deletion: nothing looks missing. The output is complete, confident and wrong. A recruiter reading the summary sees a coherent career with no visible gap, so there is no prompt to go back and check the original.

Think about what that costs in practice. A promotion is evidence that somebody trusted you enough to give you more. Flatten it into one job and you lose the story of progression entirely. The facts are all still on the page. The shape of the career is gone.

That single failure mode accounts for every point lost in the whole experiment. Nothing else broke.

The result we did not expect: the clean PDF beat plain text

Here is the finding that made us re run the whole thing to check we hadn’t made a mistake.

Plain text scored 91% on bullet attribution. The clean single column PDF scored 100%. The plain text file, the one with no formatting at all, the one that a decade of advice calls the safest possible option, performed worse than the PDF.

FormatBullet attributionKept the promotion as two rolesFigures, accents, skills
cv.json100%12 of 12 runs100%
Clean single column PDF100%12 of 12 runs100%
Plain text91%9 of 12 runs100%
Designed two column PDF91%9 of 12 runs100%
DOCXNot readableRejected by all 4 modelsNot readable

Once you see why, it stops being strange. In the PDF, the job title is bold and sits on its own line, and the employer and dates sit on a separate line underneath in smaller grey type. That visual hierarchy is information. It tells the reader, in a way it can actually use, that a new job starts here.

Strip all of that out and you get a wall of evenly weighted lines where a job title looks exactly like a company name looks exactly like a bullet. You didn’t make the document safer. You deleted the signposts and left the reader to guess.

So the advice to flatten your CV into plain text to be safe is, on this evidence, backwards. Formatting is not noise that gets in the way of the machine. Consistent formatting is how the machine works out where one thing ends and the next begins.

Nobody could open the Word file

This one was absolute. Every model, on every attempt, rejected the .docx with an unsupported file type error. Not a poor score. A flat refusal to look at it.

That needs one important caveat, because the honest version is more useful than the scary version. It does not mean a Word CV is unreadable in the real world. It means a language model cannot read a .docx natively. A .docx is a zip archive full of XML, so something has to unpack it and pull the text out before a model ever sees a word of it.

Plenty of systems do exactly that, and do it well. But it is an extra step in the chain, performed by a component you cannot see, and steps in chains are where things go quietly wrong. A text based PDF gets read directly. That is the entire practical difference, and it is enough to make the PDF the better default when nobody has told you otherwise.

The thing that actually decided everything

Now the part that reframes the rest of this article.

Look again at where the losses happened. Not at which format. At which model.

Three of our four models scored a perfect 100% on bullet attribution across every readable format, and kept the promotion as two separate roles in all 12 of their runs each. The frontier model, the fast frontier model and the mid tier model handled the designed two column PDF exactly as well as they handled the pristine cv.json. For those three, format was irrelevant.

Every single point lost in this experiment came from one model. The cheapest one.

1

The three capable models

Perfect scores on cv.json, plain text, clean PDF and the designed two column PDF. 36 runs between them, zero errors, zero merged employers.

What it means If a good model reads your CV, your layout genuinely does not matter much.

2

The budget model

Perfect on cv.json and the clean PDF. Dropped to 63% on plain text and the two column layout, merging the two Helvetia roles in every single run.

What it means Format only starts to matter once the reader is cheap, and then it matters a lot.

3

The one you cannot see

Employers choose their own tooling and almost none of them publish it. High volume screening has obvious cost pressure, which pushes it toward cheaper and faster models.

What it means You are optimising for an unknown reader, so you write for the weakest one.

This is the actual answer to the file format question, and it is not the answer anyone gives. The right format is not the one that works. Almost everything works. The right format is the one that still works when the thing reading it is the cheap option running at volume on a Tuesday afternoon.

There is a small joke buried in this. People spend hours agonising over whether to send a PDF or a Word file, and the real variable is a procurement decision made by a company they have never spoken to, about a model they will never learn the name of.

What this test does not measure

The reason the invented 97/76/53 statistic is worthless is that it never told you what it measured. So here are the limits of ours, stated plainly.

We did not test any employer ATS. We did not run this CV through Workday, Greenhouse, Lever, Taleo or iCIMS, because no outside party has access to those internal parsers. Anyone publishing a table of per platform parse rates is guessing, and we are not going to do the thing this article criticises. These results are about how language models read CV files, not about what any specific employer system does.

All four models were Google models. They spanned a frontier tier down to a budget tier, which is the comparison we cared about, but we did not test OpenAI or Anthropic models. A wider vendor spread might shift the numbers.

It is one CV. One career shape, one language, one industry. We deliberately built in hard cases, a same employer promotion and an overlapping freelance role, but a different CV would stress different things.

Two models were excluded, and here is why. One older model has been retired by Google and returned a not available error for every request, so it never read anything. A small open weight model restated our instructions back at us instead of returning JSON, on every format, so there was nothing to score. Neither exclusion is a comment on file formats and it would have been misleading to count them as failures.

One honest wrinkle. On two of three runs against the clean PDF, the budget model returned JSON with a closing brace missing. The content underneath was correct once the brace was repaired, so we scored the reading and reported the formatting failure separately. It is worth knowing that cheap models sometimes break in ways that have nothing to do with your document.

So what should you actually do

Five things, all of which fall directly out of the numbers above.

Send a text based PDF unless told otherwise. It scored 100% on every measure, it gets read directly with no conversion step, and it keeps your layout stable everywhere. If the posting asks for Word, send Word.

Never send an image or a scan. We did not test this because it is not a close call. A photo of a CV has no text layer at all, and everything above depends on there being text to read.

Make your employer boundaries obvious. This is the one thing that actually broke. If you were promoted, do not bury it. Give each role its own clearly separated block with the title on its own line and the employer and dates beneath it. Repeat the company name for each role rather than nesting them under one heading.

Keep one column for the file you submit. The two column layout only cost 9 points and only with one model. That is a small risk, not a disaster. But it is a free risk to avoid, and you can build a single column layout in about a minute in the FreeCV builder. Keep the designed version for your portfolio, where a human is looking at it.

Stop flattening to plain text for safety. It scored worse than the PDF. Consistent visual hierarchy is doing useful work, so let it.

If you want to check how a specific CV holds up against a specific job description before you send it, the FreeCV ATS checker will score it and show you what is missing. And if you want the version with nothing left to interpret at all, every FreeCV portfolio publishes a cv.json file at a permanent URL, which is the format that scored 100% here for the simple reason that there is nothing in it to guess about.

The findings
48 runs, one CV, five formats
  • Every figure, accented character and skill survived in every readable format. All 48 runs.
  • cv.json and the clean single column PDF both scored 100% on bullet attribution.
  • Plain text and the designed two column PDF both scored 91%.
  • No model could open a .docx natively. All four rejected it.
  • The only thing that ever broke was employer boundaries at a same employer promotion.
  • Three of four models were perfect on every format. Every lost point came from the cheapest one.
  • You cannot choose which model reads you, so write for the weakest one.

Frequently asked questions

Should I send my CV as a PDF or a Word document?

Send the PDF. In our test every one of the four models refused the .docx outright with an unsupported file type error, while the clean single column PDF scored a perfect 100% on every measure. A Word file has to be converted to text by something else before a model ever sees it, and that is one more step that can quietly go wrong. If a job posting specifically asks for .docx, send .docx, because a human system is expecting it. Otherwise the PDF is the safer default.

Does a two column CV really break AI screening?

It did not break anything outright, and that surprised us. The designed two column layout scored 91% on bullet attribution against 100% for the single column version. Every figure, every skill and every accented character survived in both. The gap came from one model merging two jobs at the same employer. So a two column layout is a small measurable risk rather than the catastrophe most advice describes.

Will an AI mangle the numbers on my CV?

No. This was the clearest result in the whole test. We tracked ten specific figures including CHF 1.24M, 71%, 2,300 and EUR 640k. Every single one survived in every readable format across all 48 scored runs. Currency symbols, percentages and comma separated thousands all came through intact. The common worry that a machine will scramble your metrics is not supported by anything we measured.

Do accented characters and non English names survive?

Yes, completely. Our test CV belonged to Elena Marković in Zürich, with degrees from Universität Zürich and Sveučilište u Zagrebu. All four accented strings came back byte perfect in all 48 runs, in every format. If you have been anglicising your own name out of fear the software will choke on it, you can stop.

Is plain text the safest format for a CV?

Apparently not, and this was the most counterintuitive finding. Plain text scored 91%, the same as the designed two column PDF, while the clean single column PDF scored 100%. The visual hierarchy in the PDF, the bold role and the separate company line, seems to help a model work out where one job ends and the next begins. Stripping all formatting removes cues rather than adding safety.

What actually went wrong in the runs that failed?

One specific thing. Our test CV contained a promotion, so the same employer appeared twice with two different job titles. The cheapest model collapsed those into a single job, returning three roles instead of four, and then attached five of the eight tracked bullets to the wrong position. Nothing was deleted. The facts were all still there, just filed under the wrong employer, which is arguably worse because it looks complete.

Does this mean my CV design does not matter?

It matters less than the folklore claims and more than nothing. Three of the four models read every readable format perfectly, including the designed two column one. Only the cheapest model cared about layout. The catch is that you never find out which tier of model is reading your application, so the sensible move is to submit the layout that survived every model rather than the one that only survives the good ones.

Which AI model reads my CV when I apply for a job?

You have no way of knowing, and that is the practical point of this whole test. Employers pick their own tooling and almost none of them publish it. Cost pressure pushes high volume screening toward cheaper and faster models, which are exactly the ones that struggled here. You cannot control the reader, so the only variable you control is how unambiguous the document is.

Did you test ChatGPT or Claude?

No, and that is a real limit on these results. All four models were from Google, spanning a frontier tier down to a budget tier. We did not test OpenAI or Anthropic models, and we did not test the parsers inside Workday, Greenhouse or Lever, because no outside party has access to those. Treat this as evidence about how language models read CV files, not as a measurement of any particular employer system.

What is cv.json and do I actually need it?

It is an open, machine readable format for career data that FreeCV publishes and any platform can use. In this test it scored a perfect 100% on every measure, which makes sense because there is nothing to interpret when the structure is already explicit. You do not need it to pass an application today, since employers parse the file you upload. Its value is that anything reading it cannot guess wrong.

About the Author

Abd Shanti is a co-founder of FreeCV, used by job seekers in 180+ countries. He writes about careers, AI, and open data, and he built and ran the 48 run format test in this article himself, including the two models he had to throw out.