The problem
A single job ad can pull in hundreds of CVs, and a recruiter still has to read each one to find the handful worth a phone call. Keyword filters miss good candidates who describe the same skill differently, and a bare score doesn’t tell you what’s actually missing. We wanted a tool that did the first-pass reading and ranking, so the recruiter only spent time on the shortlist.
What we built
Recruiters post a job description and upload CVs in bulk. CV Matcher scores every candidate against the role and ranks them, and each result comes with the skills that matched, the skills that are missing, and a one-line reason for the score. On top of screening, it can suggest interview questions for a shortlisted candidate and help source new candidates from LinkedIn and GitHub. Teams can share jobs and results across seats.
The AI angle
Scoring is one narrowly-scoped Claude Haiku call per CV and job pair. The model must return a fixed JSON shape — score, matched skills, missing skills, and a short reason — and the app strips stray formatting, clamps the score to 0–100, and caps the skill lists before anything is stored. If the model call fails or returns something unparseable, scoring falls back to a deterministic TF-IDF and keyword-overlap score, so a candidate never ends up with a half-parsed result.
Filtering, sorting, and exporting matches
Once a match runs, a filter bar lets you set a minimum match percentage, select must-have skills from a multi-select populated from that result set, and sort by match score, candidate name, or source file — entirely client-side, no reload. Premium accounts can export the ranked list as CSV (UTF-8 BOM so Excel reads the encoding correctly, skills semicolon-joined so commas never split a column) or XLSX (bold header row, frozen top row, match percentage stored as a real number so it sorts and filters properly in Excel, not as text).
How it’s used
- Recruitment agencies screening high-volume applications across several open roles.
- In-house recruiters and hiring managers who want a ranked shortlist with the gaps spelled out before the first call.
- Small teams sharing jobs and results across seats instead of passing CVs around by email.
What it taught us
A score on its own isn’t enough to act on. Showing the matched and missing skills next to every score lets a recruiter judge whether a gap actually matters for the role — which is the difference between a tool that ranks and a tool that helps you decide. And because the AI call has a deterministic fallback, screening keeps working even when the model doesn’t.