Skip to content

Yusufcommit/ai-resume-screening-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 AI Resume Screening System

Automatically analyze, score, and rank candidates against any job description using semantic NLP — built with Python, Sentence Transformers, and Streamlit.

Python Sentence Transformers Streamlit Status


🚧 v2 In Progress

This project is currently being rebuilt as a full-stack SaaS application with a Next.js frontend and FastAPI backend. The new version will include a polished dashboard UI, multi-resume batch processing, and a live public demo.

Current version: Streamlit prototype (fully functional)
v2 stack: Next.js · FastAPI · PostgreSQL · Docker · Deployed on Vercel + Render


What It Does

Recruiters spend hours manually reviewing resumes. This system automates that process — upload multiple resumes, paste a job description, and get an objective ranked list of candidates with detailed scoring explanations in seconds.


Features

  • Batch resume upload — PDF and DOCX support, multiple files at once
  • Semantic similarity matching — uses all-MiniLM-L6-v2 to understand meaning, not just keywords
  • Multi-factor scoring — skill match, experience relevance, education level, and semantic fit
  • Missing skills detection — shows exactly what each candidate lacks for the role
  • Score explainability — human-readable breakdown of why each candidate ranked where they did
  • Visual ranking — charts and score cards for quick comparison

How It Works

Resume (PDF/DOCX) ──┐
                    ├──► Parser ──► Feature Extractor ──► Scorer ──► Ranked Output
Job Description ────┘

The scorer uses cosine similarity between sentence embeddings to measure semantic relevance between resume content and job requirements — going beyond simple keyword matching to understand context and meaning.


Tech Stack

Layer Technology
NLP Model sentence-transformers/all-MiniLM-L6-v2
Similarity Cosine similarity via scikit-learn
Resume Parsing pdfplumber + python-docx
Data Processing pandas
UI (v1) Streamlit
UI (v2 — in progress) Next.js + Tailwind CSS
API (v2 — in progress) FastAPI

Run Locally

# 1. Clone the repo
git clone https://github.com/Yusufcommit/ai-resume-screening-system.git
cd ai-resume-screening-system

# 2. Install dependencies
pip install -r requirements.txt

# 3. Run the app
streamlit run app.py

Open http://localhost:8501 in your browser.


Project Structure

ai-resume-screening-system/
├── app.py              # Streamlit UI and app entry point
├── parser.py           # PDF/DOCX resume text extraction
├── ranking.py          # Scoring and candidate ranking logic
├── explainer.py        # Human-readable score explanations
├── utils.py            # Shared helpers
├── requirements.txt
└── screenshots/        # UI screenshots

Screenshots

Full dashboard screenshots coming with v2. Current Streamlit UI:

Main Interface Candidate Ranking Score Visualization
UI Results Chart

Roadmap

  • Resume parsing (PDF + DOCX)
  • Semantic similarity scoring
  • Multi-factor ranking
  • Missing skills detection
  • Score explainability
  • Rebuild frontend in Next.js with polished dashboard UI
  • FastAPI backend with REST endpoints
  • PostgreSQL integration for storing screening sessions
  • Docker + CI/CD pipeline
  • Live public demo deployment
  • Bias detection in candidate evaluation

Built by Yusuf

Yusuf Abdirashid — AI Full Stack Developer
Building polished AI-powered tools for hiring and job applications.

GitHub LinkedIn Email

About

Original MVP that evolved into HireLens AI, featuring semantic resume ranking and candidate scoring.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages