NLP + web application2025King's College London
TappedIn
Django job board that parses CVs with spaCy and scores candidate–role fit.
A job board where the matching is the product. Uploaded CVs are parsed with spaCy and PDF extraction into structured skills; a weighted matcher scores each candidate against each role out of 100, separating required from preferred skills and reporting exactly which required skills are missing. Built by a team of six, with a test suite to match.
ContributionTeam of six. Contributed across the matching engine, CV parsing and application.
333Test methods
70 / 30Skill weighting
0–100Match score range
6Team size
How it works
- Match score is 0–100 and returns both matched skills and the list of missing required skills.
- Required and preferred skills are weighted 70/30, with a contract-type match bonus.
- CV parsing uses pdfplumber for text, PyMuPDF for validation and spaCy en_core_web_sm for entity extraction.
- The matcher carries a hand-built skill-synonym table (js/javascript, k8s/kubernetes, ml/ai, ux/ui …).
- 333 test methods across 30 test files.
- Seeded with 100 users, 200 jobs and 500 applications.