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.
TappedIn — Alejandro Newport