Explainable candidate ranking with semantic skill matching, drag-drop uploads, and recruiter-ready shortlist workflows.
Quick Start • Features • Demo • API • Project Structure
Manual resume screening is slow, inconsistent, and hard to explain to hiring stakeholders.
TalentRank Studio solves this with a practical workflow:
- Upload a job description and candidate resumes.
- Extract candidate profile signals automatically.
- Score with transparent logic (required, must-have, nice-to-have, experience).
- Recover near-miss talent with semantic matching.
- Compare candidates side-by-side before final shortlist.
| Capability | Description |
|---|---|
| Explainable Ranking | Returns matched skills, missing skills, strengths, concerns, and semantic evidence. |
| Role-Aware Scoring | Supports backend, frontend, data_ai, devops, and fullstack profiles. |
| Resume Parsing | Ingests PDF, DOCX, and TXT files. |
| Auto Profile Extraction | Infers candidate name and years of experience from resume text. |
| Drag-and-Drop Upload | Recruiter dashboard supports direct file drop and parse preview. |
| Comparison View | Compare two candidates with score components and evidence. |
Replace this placeholder image path with your final screenshot:
Set-Location "c:\Users\pytorch\Desktop\AI Resume Screening & Analysis System"
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
$env:PYTHONPATH = "src"
uvicorn app.main:app --host 127.0.0.1 --port 8001 --reloadOpen:
- Dashboard:
http://127.0.0.1:8001/ - API Docs:
http://127.0.0.1:8001/docs
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
PYTHONPATH=src uvicorn app.main:app --host 127.0.0.1 --port 8001 --reloadBase URL:
http://127.0.0.1:8001
GET /v1/health
POST /v1/analyze- Input: JSON payload with job context and candidate resume text blocks.
POST /v1/analyze-files- Input: multipart form with
resumes.
POST /v1/preview-files- Input: multipart form with
resumes. - Output: per-file parse status, candidate name, years, and detected skills.
{
"job_title": "Backend Python Engineer",
"job_description": "Looking for Python, FastAPI, Docker, PostgreSQL, and AWS experience.",
"role_family": "backend",
"must_have_skills": ["python", "fastapi"],
"nice_to_have_skills": ["aws"],
"candidates": [
{
"name": "Alex",
"resume_text": "Built Python APIs with FastAPI and Docker, deployed on AWS with PostgreSQL.",
"years_experience": 4
}
]
}- Job description:
demo_assets/job_descriptions/backend_python_senior_jd.txt - Realistic varied-size PDF resumes:
demo_assets/resumes_pdf/ - Demo guide:
demo_assets/DEMO_RUN_GUIDE.md
src/app/
api/routes.py # FastAPI endpoints
services/scoring.py # Ranking and weighted scoring logic
services/skill_taxonomy.py # Skill extraction + semantic adjacency
services/resume_parser.py # Resume parsing + profile extraction
web/static/ # Dashboard frontend
schemas.py # Request/response models
main.py # App entrypoint
demo_assets/
job_descriptions/
resumes/
resumes_pdf/
portfolio_assets/ # Upwork case-study/demo/proposal assets
scripts/ # Setup and demo utility scripts
tests/ # Unit and endpoint tests
Set-Location "c:\Users\pytorch\Desktop\AI Resume Screening & Analysis System"
.\.venv\Scripts\Activate.ps1
$env:PYTHONPATH = "src"
pytest -q- Ensure backend is running.
- Open dashboard from the same origin (
http://127.0.0.1:8001/). - If using another frontend origin, set API base in browser console:
localStorage.setItem("talentrank_api_base", "http://127.0.0.1:8001");- Export shortlist reports (CSV/PDF)
- Authentication and recruiter workspaces
- Project-level history and audit trail
- Configurable scoring templates per company
- ATS integration hooks
For collaboration or freelance implementation:
- LinkedIn:
https://www.linkedin.com/in/prashantsingh-ai/ - Email:
prashantsingha96@gmail.com
If this repository helps you, consider starring it.