AI Resume Screening System

Parse, Match and Rank Job Applications

Design a system that turns uploaded resumes into structured profiles, ranks applicants against a job with reasons a recruiter can check, and proves with numbers that the ranking does not disadvantage any group.

Overview

A popular job can draw thousands of applications. Recruiters cannot read them all with equal care, so companies use software that reads each resume, compares it with the job, and puts the most relevant applicants first. This problem is that software: an asynchronous pipeline that parses resumes, a scorer that ranks them, and the controls that keep the ranking fair and explainable.

The technical parts are familiar: file parsing, text extraction with a language model, embeddings, a ranked list per job. What makes the problem different is the risk. A screening model learns from what recruiters did before, and if they favored one group, the model learns that too. Reuters reported in 2018 that Amazon dropped an experimental recruiting engine after it learned to penalize resumes containing the word 'women's', because it had been trained on ten years of mostly male applicants. Laws now reach these tools directly: New York City requires a yearly independent bias audit before an employer uses one, and the EU AI Act lists AI that filters job applications as high-risk.

Questions to ask first

  • Does the system reject applicants on its own? — No. It ranks and explains; a recruiter decides
  • What volume? — 2 million applications a day across 200,000 open jobs
  • How fast must a new application be scored? — Within 5 minutes of upload
  • Which file types? — PDF, Word and plain text; scanned PDFs need OCR
  • Where is it used? — US and EU employers, so NYC Local Law 144 and the EU AI Act apply
  • Do we have demographic data? — Only voluntary self-identification, stored apart from the profile and never used to score

What you will be able to do

  • Build the parse and score pipeline and say why it is asynchronous.
  • Separate must-have requirements from ranking signals, and explain every score with evidence from the resume.
  • Name the proxy features that leak protected traits and say what removing them does and does not fix.
  • Compute adverse impact with the four-fifths rule in SQL and say what to do when a group falls below it.
  • Explain why recruiter decisions are biased labels and how to retrain safely.

Key concepts

  • Resume parsing
  • Skill normalization
  • Must-have vs nice-to-have
  • Semantic matching
  • Explainable scores
  • Proxy features
  • Adverse impact (four-fifths rule)
  • Human in the loop
  • Audit trail

Functional requirements

  • Accept resumes in PDF, Word and text, and parse them into a structured profile (roles, dates, skills, education)
  • Score each application against its job: must-have checks plus a ranking score
  • Show a ranked list per job with the evidence behind each score
  • Let recruiters record advance or reject decisions with a reason code
  • Re-score all applicants when the job description changes
  • Produce adverse-impact reports by group and an audit log of every score and decision

Non-functional requirements

  • A new application is scored within 5 minutes at p95 (a target we chose)
  • The ranked list for a job loads in under 1 second for 5,000 applicants (a target we chose)
  • Every score is reproducible: the model version and inputs are stored with it
  • Demographic data is never an input to scoring and is readable only by the audit job and compliance staff
  • No application is lost: uploads are durable before the API answers

Interview questions

  • How do you keep the system from discriminating?
  • Walk me through the four-fifths rule with numbers.
  • Why is scoring asynchronous instead of done in the upload request?
  • How do you explain a candidate's rank to a recruiter?
  • Can you just train a model on who got hired?
  • What changes for an employer hiring in New York City or the EU?
  • How would you stop keyword stuffing?

Sign up free to read the full topic

More System Design topics

Start free on Cariara · Coding problems · System design studio