Home / Projects / CV Matcher

CV Matcher

Upload your CV. CV Matcher scrapes LinkedIn for relevant openings, scores each one against your actual experience with Claude, and tells you in plain English why each match scored the way it did.

Category  AI · Careers Stack  Python · Flask LLM  Anthropic Claude Status  Live

The problem

Job boards are optimised for the employer, not the candidate. The result is hundreds of vaguely-relevant postings, no real ranking, and an application process that punishes anyone who isn’t willing to apply to fifty roles a week. We wanted a system that did the reading and ranking, so the human only handled the writing and applying.

What we built

CV Matcher takes a CV (PDF or paste-in), extracts a structured profile, and then scrapes LinkedIn for matching openings. Each posting is parsed for explicit and implicit requirements (years, stack, seniority, location, work-rights), scored against the profile, and ranked. The output isn’t just a number — each match comes with a paragraph from Claude explaining the fit and the gap.

The AI angle

Two prompts do the heavy lifting. The extractor turns prose CVs and prose job postings into a normalised JSON schema that both sides agree on. The matcher reads the two schemas and produces a score plus a reasoning trace. Keeping these prompts independent means we can iterate on each one in isolation and run a backtest of every change against the user’s past matches.

How it’s used

  • Active job seekers who want a daily curated list instead of doom-scrolling LinkedIn.
  • Career switchers who use the gap-analysis to decide which skill to add next.
  • Recruiters and agencies who use it as a sourcing assistant.

What it taught us

Explainability changes behaviour. Numerical match scores got users to ignore everything but the top five. The moment we shipped the “why” paragraph, users started exploring matches with mid-range scores — because they could see what was missing and decide whether it actually mattered. That’s the difference between a tool that ranks and a tool that helps you decide.