← All projects

06 · AI / NLP · Full-stack

MatchMyResume

NLP résumé analyser against job descriptions

  • React
  • TypeScript
  • Tailwind CSS
  • Python
  • FastAPI
  • spaCy
  • NLTK
  • scikit-learn
  • Supabase

Overview

An NLP-based web app that analyses a résumé against a job description and gives actionable insights: a match score, the skills you have, the skills you're missing, and suggestions to improve.

The problem

Applicants rarely know how well their résumé fits a specific job, and many get filtered out for missing keywords and skills before a person ever reads them.

The solution

Upload a PDF résumé and paste the job description. MatchMyResume extracts the text, finds skills with NLP, compares the two documents, and returns a 0–100% match score with matched skills, missing skills, and concrete suggestions.

Key features

01

PDF upload

Drag and drop a PDF résumé; its text is extracted with pdfplumber.

02

Match score

TF-IDF vectors and cosine similarity produce a 0–100% match score, shown as a donut chart.

03

Skill extraction

spaCy named-entity recognition plus a custom skills database find the skills in both documents.

04

Matched vs missing

Green badges for skills you have, red badges for the ones the job asks for that you don't.

05

Improvement suggestions

Actionable tips for closing the gap between your résumé and the role.

06

Analysis history

Past analyses are saved to Supabase so you can compare versions over time.

How it's built

  1. FrontendReact 18 + TypeScript with Tailwind CSS, Recharts, and Axios, built with Vite.
  2. APIFastAPI backend exposing the analysis endpoint, with CORS configured for the frontend.
  3. NLP pipelinepdfplumber for extraction, NLTK for preprocessing, spaCy for NER, scikit-learn for TF-IDF similarity.
  4. Skills dataA custom skills database for broad, reliable coverage.
  5. HistoryOptional Supabase (PostgreSQL) table storing scores, skills, and suggestions.

Challenges

Finding skills in free text

Résumés phrase skills in many ways, so NER is combined with a curated skills list to catch what each method misses alone.

A score people can trust

Text is cleaned (tokens, stop words, punctuation) before TF-IDF comparison, so the score reflects real overlap rather than noise.

Outcome

A practical tool that shows job seekers exactly where their résumé falls short for a role — and what to do about it.