--- 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 ---

Made with ❤️ and Transformers 🤖
Land your dream job, one keyword at a time! 📄✨