An AI-powered Resume Screening & Analysis API built using FastAPI, ChromaDB, Groq LLM, and RAG (Retrieval-Augmented Generation).
This program allows you to:
- Upload multiple resumes (PDF)
- Analyze resumes against a Job Description
- Rank candidates automatically
- Chat with a resume using AI
- Perform structured AI evaluation with strict recruiter logic
- Accepts multiple PDF resumes
- Extracts text using pypdf
- Splits text using RecursiveCharacterTextSplitter
- Stores embeddings in ChromaDB
- Session-based resume tracking
Analyzes resume against Job Description with:
- Matching keywords
- Missing keywords
- Experience validation
- Role mismatch detection
Structured recommendation:
- Strong Match
- Potential Match
- Reject
Results are automatically ranked by:
- Recommendation priority
- Number of matching keywords
- Years of experience
Ask questions like:
- “Does this candidate have cloud experience?”
- “List backend skills”
- “Is this person fit for a data engineering role?”
The system:
- Retrieves top 3 relevant chunks
- Grounds answers strictly in resume content
- Returns concise bullet-point responses
- Backend: FastAPI (Python)
- Frontend: Streamlit
- LLM Orchestration: Instructor + Groq (openai/gpt-oss-120b)
- Vector Database: ChromaDB
- Embeddings: FastEmbed (sentence-transformers/all-MiniLM-L6-v2)
- PDF Parsing: PyPDF
GET /Response:
{
"status": "OK",
"message": "API is active"
}POST /upload
Form Data:
files→ list of PDF files
Response:
{
"message": "Success",
"batch_id": "uuid-session-id",
"count": 3
}POST /analyzeRequest:
{
"job_description": "Looking for a Backend Python developer with 3+ years experience in FastAPI and AWS",
"session_id": "uuid-session-id"
}Response:
{
"results": [
{
"filename": "eg_resume.pdf",
"analysis": {
"matching_keywords": ["Python", "FastAPI", "AWS"],
"missing_keywords": [],
"profile_summary": "Strong backend alignment...",
"recommendation": "Strong Match",
"years_experience_actual": 4,
"years_experience_required": 3
}
}
]
}POST /chatRequest:
{
"resume_id": "session||filename.pdf",
"question": "Does this candidate have Docker experience?",
"job_description": "Backend Python Developer role"
}Response:
{
"answer": "no"
}- Docker Desktop installed.
- A valid Groq API Key.
git clone https://github.com/Aman00240/RESUME_SCANNER
cd RESUME_SCANNERCreate a .env file in the root directory:
GROQ_API_KEY=your_groq_key_here
model=model_name_here(eg.,llama-3.3-70b-versatile)docker-compose up --build- Frontend (UI): Open http://localhost:8501 in your browser.
- Backend (API Docs): Open http://localhost:8000/docs to test endpoints directly.
