Spaces:
Sleeping
Sleeping
| 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`](https://huggingface.co/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 | |
| 1. **Select a demo** from the sidebar (or paste your own text) | |
| 2. **Paste your resume** in the left box | |
| 3. **Paste the job description** in the right box | |
| 4. **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:** | |
| ```bash | |
| 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 | |
| --- | |
| <p align="center"> | |
| <b>Made with โค๏ธ and Transformers ๐ค</b><br> | |
| <i>Land your dream job, one keyword at a time! ๐โจ</i> | |
| </p> |