AI Resume Screener
Project
← selected work

AI Resume Screener

Ranks a batch of resumes against a job description. Pulls skills, experience, education and contact details out of each PDF or text resume, then scores skill fit with BERT embeddings so a close skill still earns partial credit.

Nov 2024Full-Stack Developer & ML Engineer
PythonBERTFastAPIReact.js

Overview

Takes a job description and a batch of resumes, as PDF or plain text, and returns a ranked shortlist. From each resume it extracts the candidate's name, email, phone number, years of experience, education level and skills.

Skill fit is scored with BERT: every skill the job asks for is compared with the candidate's closest skill by cosine similarity of pretrained bert-base embeddings, and the results average into a 0–100 match score. A FastAPI service does the processing; the React and Tailwind dashboard ranks the candidates, filters them by a minimum score and charts each one's coverage of the required skills.

Key Features

  • Bulk upload of PDF and text resumes
  • Extraction of skills, experience, education and contact details
  • Skill matching by BERT-embedding similarity
  • Ranked shortlist with a minimum-score filter and a skill-coverage chart

Stack

frontend
React.jsTailwind CSSChart.jsVite
backend
PythonFastAPI
ml
BERTPyTorchHugging Face

Challenges & Solutions

  • Giving credit for related skills that are not worded identically.Scored each required skill against the candidate's closest skill by cosine similarity of pretrained BERT embeddings, then averaged the results into a 0–100 match score.
  • Finding the candidate's name in resumes that are formatted every which way.Tried a ranked chain of patterns (name headers, the line above the contact details, then the email address) and kept the first two-word match.
  • Keeping BERT inference cheap across a batch of resumes.Embedded only the extracted skill terms rather than whole documents, and cached each term's vector in memory so a skill repeated across the batch is encoded once.

Gallery