The ATS Resume Tracker is a full-stack web application that provides a comprehensive, AI-powered analysis of resumes against specific job descriptions (JDs). It utilizes Google Gemini API for contextual understanding, LangChain for orchestration, and MongoDB with vector search to implement Retrieval-Augmented Generation (RAG). This ensures deep semantic matching between resumes and job descriptions.
The system offers a professional evaluation of uploaded PDF resumes, computes a percentage match, generates a strengths and weaknesses analysis, and enhances accessibility with audio playback and YouTube video generation. The results can be viewed on the site, emailed to the user, or downloaded as a PDF report.
Recording.2025-06-21.205535.mp4
Upload and Analyze Resume:
Evaluation Result Page:
Emailed Report Screenshot:
- Resume Upload and Parsing: Accepts resumes in PDF format and extracts structured content such as skills, education, experience, etc.
- Contextual JD Matching: Uses LangChain + Gemini API + MongoDB vector index to retrieve and compare relevant information from the resume and job description.
- Strengths and Weaknesses Evaluation: AI-generated summary that highlights what a candidate excels in and areas needing improvement.
- Percentage Match Score: Reflects how closely the resume aligns with the job description based on AI-driven semantic similarity.
- Audio Playback: The result section includes a "Play Audio" button that reads the summary aloud using text-to-speech.
- PDF Download: The complete evaluation can be downloaded by the user as a professionally formatted PDF.
- YouTube Integration: Based on the evaluation, the app uses the YouTube API to recommend personalized videos (e.g., resume tips, upskilling tutorials) directly within the UI.
- Email Notification: The final result is emailed to the user for easy reference.
- Modern Web Interface: Built using Flask, HTML, CSS, and JavaScript to ensure responsive and user-friendly design.
| Layer | Technology |
|---|---|
| Backend | Python, Flask |
| Frontend | HTML, CSS, JavaScript |
| Gen AI model | Gemini 2.5 Flash (Google Generative AI) for reasoning & generation; LangChain for orchestration |
| Embeddings | text-embedding-004 (Google Generative AI) for vector representation |
| Database | MongoDB Atlas with vector search |
| Audio | Client-side audio playback using the Web Speech API (SpeechSynthesisUtterance) |
| Video Suggestion | YouTube Data API |
| Email Delivery | SMTP (Gmail) |
| PDF Generation | Built-in browser print dialog via JavaScript’s window.print() |
- Python 3.x
- MongoDB Atlas account with vector indexing enabled
- Gemini API access (Google Generative AI)
- Gmail account with app password (for SMTP)
- YouTube API key
git clone https://github.com/sahilchalke0001/resume
cd resumepython -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activatepip install -r requirements.txtCreate a .env file in the root directory and add the following keys:
FLASK_SECRET_KEY=4ddcdd430dc9d6f3848cc171d0c54358f2aa9e3f2a8fcc27167353105a4b610d
# Google Generative AI / Gemini API
GEMINI_API_KEY=your_api_key_here
GOOGLE_API_KEY=your_google_api_key_here
# Gmail for SMTP
SENDER_EMAIL=your_email@gmail.com
EMAIL_PASSWORD=your_gmail_app_password
# YouTube API (for video suggestions)
YOUTUBE_API_KEY=your_youtube_api_key
# MongoDB RAG Setup
MONGO_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/db?retryWrites=true&w=majority&appName=Cluster0
MONGO_DB_NAME=db
MONGO_KB_COLLECTION=knowledge_chunks
MONGO_VECTOR_INDEX=defaultpython app.pyThen visit:
http://127.0.0.1:5000/
-
Open the web interface and upload your resume in PDF format.
-
Paste or write your target job description.
-
Click the Analyze button.
-
The application will:
- Parse the resume
- Contextually match it with the job description using RAG
- Generate a percentage match
- Summarize key strengths and weaknesses
- Provide video suggestions
- Offer audio narration of the result
- Allow download of the PDF
- Email the complete report
This project is licensed under the MIT License.
For queries, feedback, or collaboration opportunities, please contact: kalepranav2608@gmail.com




