What a Resume Parser Actually Sees
When you upload a resume, the first thing that happens to it is not judgement. It’s reading. A piece of software called a parser opens the file and tries to rebuild your career as structured data: a name, an email address, a list of jobs each with an employer, a title, and a date range, a school, a set of skills.
Everything else — the recruiter’s search, the shortlist, the “we found you a match” email — runs on that reconstructed record, not on your beautiful PDF. So it’s worth understanding what the reconstruction step actually involves. It’s four stages, and each one can go wrong in a specific, fixable way.
Stage 1: Text extraction
The parser pulls raw text out of the file. This sounds trivial. It isn’t, because most document formats don’t store “a paragraph.” They store positioned fragments — a run of characters, a font, and coordinates on a page.
A PDF in particular is closer to a set of drawing instructions than to a document: put these glyphs here, those glyphs there. There is no built-in concept of “this line comes after that one.” The extractor has to infer the order from the positions.
What comes out of this stage is a single stream of text. Nothing else survives. Your font choices, your colour scheme, your carefully balanced whitespace — all discarded. If a word is not stored as text, it does not exist after stage 1. That is why a skills chart saved as an image contributes exactly nothing.
Stage 2: Reading order
Having extracted fragments, the parser has to decide what order they go in. The default assumption is the obvious one: top to bottom, left to right.
That assumption holds beautifully for a single-column document and falls apart the moment you introduce a second column. Consider a resume with a narrow left sidebar for skills and dates, and a wide right column for job descriptions. Visually, a human reads down the sidebar, then down the main column — or reads them side by side, effortlessly. A parser working line by line across the page may produce something like:
Skills Senior Analyst, Northwind Ltd.Python Rebuilt the monthly reporting pipelineSQL 2021 – 2024
Every word is present. The relationships between them are destroyed. “Python” is now sitting inside a job title line. The date range has drifted two lines away from the job it belongs to.
This is the single most common way a strong resume becomes a weak record, and it is invisible to you, because on screen the document looks immaculate.
Stage 3: Sectioning
Now the parser has an ordered stream of text and needs to chop it into sections: this part is work experience, this part is education, this part is skills.
It does that mostly by looking for headings it recognises. Experience, Work Experience, Employment History, Education, Skills, Certifications — these are understood essentially everywhere. Anything more creative may not be.
If you head your work history with something like “Where I’ve Made a Difference,” a parser that doesn’t recognise the phrase has a problem. It might merge that content into whatever section came before, or treat it as an unclassified block. Either way, your jobs may not be filed as jobs, and a recruiter filtering for people who have held a particular title won’t find you.
The cost of a plain heading is a little personality. The cost of an unrecognised heading can be your entire work history landing in the wrong bucket. It’s not a close call.
Stage 4: Field matching
Within each section, the parser looks for the specific values it wants.
- Contact details are found by pattern: something shaped like an email address, something shaped like a phone number. This is fairly robust — with one big exception. Text placed in a document’s header or footer region is sometimes skipped entirely during extraction. Put your contact block in the body of the page.
- Dates are found by pattern too, and then matched to the job nearest them. Consistent formatting helps enormously;
Jan 2021 – Mar 2024on the same line as, or directly under, the job title is the safest arrangement. We go deeper on this in job titles, dates, and the fields parsers look for. - Employer and title are inferred from position and phrasing. A line like
Senior Analyst — Northwind Ltd.is easy. A line where the title, company, location, and dates are all in different table cells is much less so. - Skills are matched against a vocabulary. This is where the term “keyword” comes from, and it is much less mystical than it sounds: if a role requires a skill you have, the plain name of that skill should appear somewhere in readable text.
What this means in practice
Every stage rewards the same thing: a document whose logical structure and visual structure agree.
- One column, top to bottom.
- Real text, never text baked into an image.
- Standard section headings.
- Contact details in the body of the page.
- Dates adjacent to the job they describe.
- Skills written out in ordinary words.
Notice that none of this is a trick, and none of it makes your resume worse for a human. A single-column document with clear headings is also the easiest thing for a tired person to skim at 4pm. The formats that parse well and the formats that read well are, almost without exception, the same formats.
The part we won’t tell you to do
Because parsers work on extracted text, some people conclude that you can feed them one thing and show the human another: a block of white-on-white keywords, a two-point-font list of every technology in the industry, terms stuffed into the document’s metadata.
Don’t. The extracted text is frequently what the recruiter sees in their search results and sometimes what they read in full, so the hidden block tends to surface in front of exactly the person you were hiding it from. It reads as dishonesty, and it costs you the application on the spot — not because a machine caught it, but because a human did.
The goal isn’t to feed the parser something clever. It’s to make sure the true version of your resume survives the trip.
Check it yourself
You don’t have to guess how your file behaves. Open your resume, select all, copy, and paste into a plain text editor. What you see is a close approximation of what stage 1 and stage 2 produce. If your job titles, employers, and dates come out in a sensible order, you’re in good shape. If they’re interleaved, out of order, or missing, you’ve just found your problem — and it’s a formatting fix, not a rewrite.