AI-powered resume ATS scorer — matches your resume against a job description using NLP and LLM feedback. Built with FastAPI, Streamlit, spaCy & Sentence Transformers.
- Upload a resume (PDF / DOC / DOCX) and paste a job description.
- The backend parses the resume, extracts skills and experience, and compares them to the JD using semantic similarity.
- You get an ATS score, a category breakdown (formatting, keywords, content, skill validation, ATS compatibility), and LLM-written suggestions for what to improve.
- Past analyses are saved to your account so you can revisit them anytime.
- ATS Score — an overall compatibility score out of 100
- Category Breakdown — see exactly where you're losing points: formatting, keyword match, content quality, skill validation, and ATS compatibility
- Keyword & Skills Gap Analysis — matched keywords, missing keywords, and skills mentioned in the JD but absent from your resume
- Semantic Similarity Matching — goes beyond exact keyword matching using Sentence Transformer embeddings to catch conceptually similar phrasing
- LLM-Generated Suggestions — actionable, specific feedback powered by the Groq API
- PDF Reports — downloadable, professionally formatted score reports
- Analysis History — save and revisit past resume scans, tied to your account
| Layer | Technology |
|---|---|
| Backend | FastAPI |
| Frontend | Streamlit |
| NLP | spaCy, Sentence Transformers |
| LLM Suggestions | Groq API |
| Database / Auth | Supabase |
| PDF Generation | WeasyPrint |
- Python 3.10+
- A Groq API key
- A Supabase project (URL + API key)
git clone https://github.com/sumitstat07/resumate.git
cd resumate
pip install -r requirements.txtCreate a .env file in the backend/ directory with:
GROQ_API_KEY=your_groq_api_key
SUPABASE_URL=your_supabase_project_url
SUPABASE_KEY=your_supabase_service_role_key
SUPABASE_ANON_KEY=your_supabase_anon_key
AUTH_REDIRECT_URL=http://localhost:8501
SENTENCE_TRANSFORMER_MODEL_NAME=all-MiniLM-L6-v
Start the FastAPI backend:
cd backend
uvicorn main:app --reloadStart the Streamlit frontend (in a separate terminal):
cd frontend
streamlit run app.pyresumate/ ├── backend/ │ ├── api/ # API route handlers │ ├── core/ # Core config and app setup │ ├── database/ # Supabase client and queries │ ├── models/ # Pydantic / data models │ ├── services/ # Resume parsing, scoring, matching, PDF export │ ├── templates/ # Jinja2 HTML templates for PDF reports │ ├── utils/ # Helper utilities │ └── main.py # FastAPI entry point ├── frontend/ # Streamlit app ├── .gitignore └── requirements.txt
- Multi-resume comparison against a single JD
- Resume version history / diff view
- Browser extension for quick scoring while job-browsing
- Support for additional file formats
MIT