Spaces:
Sleeping
A newer version of the Streamlit SDK is available: 1.61.1
title: ATS Resume Optimizer
emoji: ๐
colorFrom: red
colorTo: indigo
sdk: streamlit
sdk_version: 1.58.0
app_file: src/streamlit_app.py
pinned: false
๐ ATS Resume Optimizer
An AI-powered tool that analyzes your resume against any job description and tells you how well it matches โ plus what keywords you're missing. Built with Streamlit, MiniLM embeddings, and spaCy NLP.
๐ Try It Now
Paste your resume and a job description. Get an instant ATS match score and keyword suggestions.
No signup required. Runs entirely in your browser.
โจ What It Does
| Feature | How It Helps |
|---|---|
| ๐ง Semantic Matching | Understands meaning, not just keyword counting. "Led team" and "managed group" score the same. |
| ๐ Keyword Gap Analysis | Extracts skills, tools, and responsibilities from the job description and shows what's missing from your resume. |
| ๐ ATS Score (0-100%) | Clear match percentage with color-coded feedback: ๐ข High (>75%), ๐ก Medium (50-75%), ๐ด Low (<50%). |
| ๐ 5 Demo Profiles | Test instantly with pre-loaded resumes for Data Scientist, Frontend Dev, PM, Marketing, and ML Engineer. |
๐ ๏ธ How It Works
Resume + Job Description
โ
[MiniLM Transformer]
โ
Embedding Vectors
โ
Cosine Similarity โ ATS Score
โ
[spaCy NLP] โ Missing Keywords
โ
Feedback + Suggestions
Model: sentence-transformers/all-MiniLM-L6-v2 โ 22MB, fast on CPU, trained on 1B+ sentence pairs.
๐ Example Output
Input: Senior Data Scientist resume vs. matching job description
Result:
- ๐ข ATS Match Score: 87% โ HIGH MATCH. Ready to submit!
- ๐ Missing Keywords:
stakeholder,a/b testing,kubernetes(consider adding these)
๐ฎ Quick Start
- Select a demo from the sidebar (or paste your own text)
- Paste your resume in the left box
- Paste the job description in the right box
- Click "Analyze" and get instant feedback
๐๏ธ Tech Stack
| Component | Technology |
|---|---|
| UI | Streamlit |
| Embeddings | MiniLM-L6-v2 (Hugging Face) |
| NLP | spaCy en_core_web_sm |
| Backend | PyTorch |
๐ Repo Structure
โโโ src/
โ โโโ streamlit_app.py # Main app
โโโ Dockerfile # Container config
โโโ requirements.txt # Dependencies
โโโ README.md # This file
๐ Deployment
This Space runs on Hugging Face's free tier. MiniLM auto-downloads on first launch (~22MB). No GPU needed.
To run locally:
git clone https://huggingface.co/spaces/yourusername/ats-resume-optimizer
cd ats-resume-optimizer
pip install -r requirements.txt
python -m spacy download en_core_web_sm
streamlit run src/streamlit_app.py
๐ Notes
- Privacy: All text processing happens locally in the Space. No data is stored or sent to external APIs.
- First Load: May take 10-20 seconds on first visit while MiniLM downloads.
- spaCy Model: Downloaded at build time via Dockerfile.
๐ฎ Roadmap
- PDF resume upload
- Section-by-section comparison (Skills vs Skills, Experience vs Requirements)
- AI-powered rewrite suggestions (GPT integration)
- Chrome extension for LinkedIn/Indeed job descriptions
๐ค Author
Muhammad Ibtihaj โ ML Engineer & Full-Stack Developer
Made with โค๏ธ and Transformers ๐ค
Land your dream job, one keyword at a time! ๐โจ