ProjectAI 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.
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
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.