Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages