An intelligent resume screening tool that powers Knackmore.com's ATS evaluator. It parses PDF resumes, compares them against target job roles, and returns structured, actionable feedback using AI. Designed for job seekers, recruiters, and developers building smarter hiring workflows.
- Upload PDF resumes and specify target job roles
- AI-generated ATS score breakdown across 8 categories
- Resume improvement recommendations with examples
- Clean frontend interface built with HTML/CSS/JS
- Flask backend powered by Groq's LLM API
- Markdown-based result formatting
- Support for standalone testing via
test.ipynb
- User uploads a resume and specifies a job title
- The PDF is parsed and cleaned using PyMuPDF
- A prompt is crafted and sent to Groq's
llama-3.3-70b-versatile
model - The AI responds with ATS scores and feedback in JSON/Markdown
- Results are displayed beautifully in the frontend
git clone https://github.com/your-username/knackmore-ats-evaluator
cd knackmore-ats-evaluator
Create and activate a virtual environment:
conda env create -f environment.yaml
conda activate knackmore
OR using pip:
pip install -r requirements.txt
Create a .env
file with:
API_KEY=your-api-key
API_URL=https://api.groq.com/openai/v1/chat/completions
SECRET_KEY=your-flask-secret
python run.py
Go to: http://localhost:5000
File | Purpose |
---|---|
run.py |
App entry point |
config.py |
Loads API keys and env vars |
test.ipynb |
Notebook for standalone score breakdown testing |
app/__init__.py |
Initializes Flask app and routes |
app/routes.py |
Handles file upload and result routing |
app/resume_evaluator.py |
Handles LLM prompt creation and API calls |
app/utils.py |
PDF parsing and markdown-to-HTML conversion |
templates/index.html |
Main UI template |
static/ |
Frontend assets (CSS/JS) |
- Flask
- Groq API + LLaMA 3.3 70B
- PyMuPDF (PDF text extraction)
- Markdown + HTML formatting
This tool sends resume data to third-party APIs. Make sure to handle PII responsibly in production environments.
MIT License