π MATCH.AI β AI Resume Screener & Feedback System
Project 1 β AI & Generative AI Fellowship Program @ Zeppelin Lab
An enterprise-grade, deterministic AI Resume Screener & Structured Feedback System built for high-accuracy recruitment screening. Powered by Google Gemini Flash, strictly typed with Pydantic, served via FastAPI, and styled with a 3D Glassmorphism Executive Studio Dashboard.
π Project Overview
MATCH.AI is an AI-powered resume screening system that:
- Accepts candidate resumes (PDF, DOCX, TXT) and job descriptions
- Uses Google Gemini Flash AI to perform structured, deterministic evaluations
- Returns validated JSON assessments with match scores, matched/missing requirements, and actionable suggestions
- Includes an Evidence Grounding Verifier to prevent AI hallucinations
- Features a premium 3D interactive web dashboard with dark/light themes
π οΈ Tech Stack
| Layer | Technology |
|---|---|
| Language | Python 3.10+ |
| Backend Framework | FastAPI + Uvicorn |
| AI/LLM Engine | Google Gemini Flash (REST API) |
| Schema Validation | Pydantic AI (Structured JSON Output) |
| Frontend | HTML5, CSS3, Vanilla JavaScript (3D Glassmorphism UI) |
| Gradio Interface | Gradio 5.12.0 (Hugging Face Spaces deployment) |
| PDF Extraction | PyPDF2 |
| DOCX Extraction | python-docx |
| Testing | Pytest (5/5 automated tests) |
| CI/CD | GitHub Actions |
| Deployment | Hugging Face Spaces, Docker |
| Version Control | Git + GitHub (branching: main, dev, feature/*) |
β¨ Features & Architecture
graph LR
A[Candidate Resume PDF / DOCX / TXT] --> C[FastAPI Scanner /api/scan]
B[Job Description Spec] --> C
C --> D[PDF / DOCX / TXT Extractor Engine]
D --> E[Gemini Flash temperature=0.0]
E --> F[Pydantic Schema Validation]
F --> G[Evidence Grounding Verifier]
G --> H[3D Interactive Studio Dashboard]
- Deterministic AI Scoring Engine (
temperature = 0.0): Evaluates candidates against job descriptions without LLM hallucinations or variance. - Strict Pydantic Output Validation: Enforces valid JSON structure (
Assessmentschema) with scores (0β100), rationale, matched requirements, skill gaps, and suggestions. - Evidence Grounding Verifier: Token-based semantic overlap analysis to verify every AI claim against actual resume text.
- 3D Glassmorphism Executive Dashboard: Dual Aurora Light & Obsidian Dark Themes, 3D particle canvas, perspective mouse tilt effects.
- Multi-Format Document Support: Supports
.pdf,.docx,.doc, and.txtfiles.
π Setup Steps
Prerequisites
- Python 3.10 or higher
- Git
- A Google Gemini API Key (Get one free)
1. Clone the Repository
git clone https://github.com/majidali1256/ai-resume-screener.git
cd ai-resume-screener
2. Create Virtual Environment & Install Dependencies
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
3. Configure Environment Variables
cp .env.example .env
# Edit .env and add your Gemini API Key:
# GEMINI_API_KEY=your_api_key_here
# AI_MODEL=gemini-2.0-flash
β οΈ Security Note:
.envis excluded from version control via.gitignore. Never commit API keys.
4. Run the Server
uvicorn main:app --host 0.0.0.0 --port 8000
Open http://localhost:8000 to launch the 3D Executive Studio Dashboard!
5. Run Tests
pytest tests/
π API Reference
POST /api/scan
Upload a candidate resume and job description to get a complete JSON assessment.
Request (Multipart Form Data):
resume_file:.pdf,.docx,.doc, or.txtfilejd_file(optional): Job Description filejd_text(optional): Raw job description text
Response Schema:
{
"match_score": 85,
"score_rationale": "Strong alignment across Python, FastAPI, and React...",
"matched_requirements": ["5+ years Python experience", "FastAPI expertise"],
"missing_requirements": ["GraphQL experience"],
"suggestions": ["Quantify accomplishments with specific metrics"],
"limitations": []
}
GET /api/health
Returns service health status.
GET /api/demo
Runs a sample scan using built-in benchmark data.
π Project Structure
ai-resume-screener/
βββ main.py # FastAPI server entry point
βββ app.py # Gradio interface (Hugging Face Spaces)
βββ resume_scanner/
β βββ assessor.py # Gemini Flash AI assessment engine
β βββ extractor.py # PDF/DOCX/TXT text extraction
β βββ grounding.py # Evidence grounding verifier
β βββ models.py # Pydantic Assessment schema
βββ static/
β βββ index.html # 3D Glassmorphism Executive Dashboard
βββ data/
β βββ benchmark/ # Golden evaluation benchmark library
β βββ uploads/ # Temporary upload storage (gitignored)
βββ tests/
β βββ test_screener.py # Automated pytest suite
βββ .github/
β βββ workflows/ci.yml # GitHub Actions CI pipeline
βββ requirements.txt # Python dependencies
βββ Dockerfile # Docker deployment config
βββ .env.example # Environment variable template
βββ .gitignore # Security: excludes .env, uploads, caches
βββ README.md # This file
π Security & Privacy
- API keys are stored in
.env(never committed β excluded by.gitignore) - Uploaded resumes are processed in-memory and cleaned up immediately after scanning
- No PII storage: The system does not persist any candidate personal data
π Live Deployment
| Platform | Link |
|---|---|
| Live Demo (Hugging Face Space) | AI-Resume-Screener-Studio |
| GitHub Repository | ai-resume-screener |
| Hugging Face Model Card | AI_Resume_Scanner |
π¨βπ» Team & Roles
| Role | Name | GitHub |
|---|---|---|
| Project Lead & Full-Stack Developer | Majid Ali | @majidali1256 |
Responsibilities:
- AI/LLM Engine Development (Gemini Flash integration, structured prompting)
- Backend Architecture (FastAPI REST API, Pydantic validation)
- Frontend Development (3D Glassmorphism Dashboard, Gradio interface)
- Evidence Grounding Verifier module
- Testing & CI/CD (Pytest suite, GitHub Actions)
- Deployment (Hugging Face Spaces, Docker)
π License
This project is licensed under the MIT License.