Course › Module 4 · Resume parsing and AI screening

Lab 3: screen the dataset, compare to a human shortlist

Module 4, Lesson 7  ·  4 min read ·  Updated 21 September 2026

Module 4 · Lesson 7

Screen all 500 CVs, then find out where you and a human reviewer disagreed. The disagreements are the point, not the shortlist.

What to do

  1. Screen all 500 CVs using rules you wrote from the job brief in Module 2.
  2. Pick exactly 20.
  3. Open /human-shortlist.csv in the practice folder. It holds 20 candidates chosen by a person who read everything by hand, with their notes.
  4. Compare the two lists.

What to write down

GroupQuestion to answer
On both listsHow many? This is your starting point
Only on yoursDid the human miss them through tiredness, or do they know something your rules do not?
Only on theirsWhere did they land in your run, and which rule cost them?
On neitherCheck five. Do you agree they belong out?

What your overlap means

OverlapWhat it meansWhat to do
10–14 of 20Healthy. Two processes agreeing on the main thing, differing at the edgesStudy the edges
18–20Your rules copied one person's taste, blind spots includedCheck whether both lists look like your existing team
Under 6One of the two processes is brokenCheck the reading quality on their picks first

That last instruction matters. In practice, a lot of "the software missed them" cases turn out to be reading failures — the tool never saw the evidence. Check the extracted data before you conclude anything about your rules.

What to hand in

One page: your rules as written, your 20, how many overlapped, and three sentences on the one rule you would change and why. Keep it — the final project in Module 12 builds on it.

Check yourself before Module 5

  • Which field does your tool handle worst on these CVs?
  • Can you explain, for one specific person, why they ranked where they did — pointing at the line in their CV?
  • Did you find at least one person the tool ranked low who deserved a read?
  • Would your rules have found the human's picks if the reading had been perfect?

If the answer to the third one is no, run the full-text search from Lesson 6 before moving on. In a pile of 500 there is almost always at least one.

Doing this without a screening tool

You do not need a tool for this one. The manual version teaches you something the automatic version cannot: how expensive attention really is at this volume.

  1. Get the text out of the CVs. On Mac or Linux, run pdftotext -layout on each file; on Windows, use any bulk PDF-to-text tool. That is the whole reading layer, and doing it yourself makes the two-column failures obvious straight away.
  2. Put one row per candidate in a spreadsheet: reference, filename, extracted text.
  3. Add one column per rule. Use SEARCH or COUNTIF against the text. That is exactly what keyword matching is, and seeing it written as a formula takes most of the mystery out of the category.
  4. Add up the scores. Sort. Take the top 20.
  5. Then do the parts no tool does for you: read the rejections, check the formats, compare against the human list.

Allow two hours rather than forty minutes. The rules sheet already has the columns set up.

What this exercise is really testing

Not whether you can operate a screening tool — that takes ten minutes to learn. Whether you can look at its output and tell the difference between a weak candidate and a candidate the tool failed to see.

Common questions

What is resume parsing?

Resume parsing turns a document into structured fields — name, employers, titles, dates, skills. It runs in seven stages: file intake, text layer or OCR, layout reconstruction, segmentation, entity extraction, normalisation, and mapping into your ATS fields. Every screening score is arithmetic over its output.

Why do resume parsers get things wrong?

Because a resume is a design document pretending to be a data record. Two-column layouts break reading order, creative section headings break segmentation, freelance and concurrent roles produce duplicate or missing positions, and five date conventions break normalisation. A parser producing a confident number from corrupted input looks identical to one that is right.

Does resume format affect your chances?

Measurably. In a run over 500 synthetic resumes distributed identically across formats, DOCX cleared the must-haves 91.6% of the time, single-column PDF 84.3%, two-column PDF 75%, and scanned PDFs 0%. None of that difference is candidate quality. In a real pool, template choice correlates with country and career stage.

What should you never use as a hard filter when screening?

Years of experience, degree or institution, current job title, employment gaps, location for remote roles, and continuous tenure. Each is either a proxy for something you are not allowed to select on, or depends on a parsed field you have not audited. Weight them instead — a weighted signal moves candidates, a hard filter removes them.

How do you know if AI screening is filtering out good candidates?

You will not find out from your metrics, because a rejection generates no event. Build in a disagreement check: after every run, open the three highest-scoring rejects and the three lowest-scoring accepts, and decide whether you agree. Then run a full-text search of the rejected pool for your top capability — in the worked run that recovered one candidate in six.

Check yourself

Four questions. Nothing is recorded anywhere but your own browser — this is for you, not for a score.

  1. 1Your parser gets employment dates right about 80% of the time. What follows?

  2. 2Which of these is a legitimate hard filter?

  3. 3Your parsed candidate count is 498 but you uploaded 500 files. What is the correct response?

  4. 4Everyone in your screening run scores between 78 and 84. What does that tell you?