AI Resume Optimizer helps job seekers compare a resume with a target job description, inspect an ATS-style score, and add supported skills to the original resume's Skills section. Resume parsing, scoring, and editing run locally. If Groq or Gemini credentials are configured, optional JD-skill extraction and improvement tips send the job description and related skill text to that provider; resume contents are not sent.
- 📊 ATS Scoring: Calculates a weighted compatibility score based on Skill Matching (60%) and TF-IDF Similarity (40%).
- 🧠 Intelligent Role Detection: Automatically identifies the target job archetype and adjusts the required skills dynamically.
- 🏷️ Skill Classification: Categorizes skills into three buckets: Already Listed, Will Be Added (Optimizable), and Genuinely Missing.
- 🪄 In-Place Resume Editing: Upload your DOCX or PDF, and the engine will surgically inject missing skills into your existing "Skills" section without destroying the original formatting.
- 📝 Automated Cover Letters: Generates a custom cover letter document based on your resume and the target role.
- 📈 Detailed ATS Reports: Download a comprehensive DOCX report of your keyword matches and gaps.
- 🎨 Modern UI: A highly polished, dynamic Streamlit interface featuring 3D ambient animations, glassmorphism, and responsive metric cards.
- Frontend & UI: Streamlit (Enhanced with custom HTML/CSS for advanced styling)
- Language: Python 3.10+
- Core Processing:
pypdf&python-docxfor document parsing and modificationflashtextfor hyper-fast keyword extractionscikit-learnfor TF-IDF vectorization and cosine similarity
- Deployment: Fully compatible with Streamlit Community Cloud, Hugging Face Spaces, or any Dockerized PaaS.
Ensure you have Python 3 installed on your machine.
- Clone the repository
git clone https://github.com/vimal2645/ai-resume-optimizer.git cd ai-resume-optimizer
2. **Create a virtual environment**
```bash
python -m venv .venv
On Windows PowerShell, activate with .venv\Scripts\Activate.ps1. On macOS/Linux, use source .venv/bin/activate.
- Install dependencies and run the application
python -m pip install -r requirements.txt streamlit run app.py
The app will instantly open in your default browser at `http://localhost:8501`.
## 📂 Project Structure
- `app.py`: The main Streamlit frontend application.
- `core/`: Contains the core parsing logic (`parser.py`) and role detection algorithms (`role_detector.py`).
- `utils/`: Utility scripts for document generation (`document_generator.py`), in-place editing (`inplace_editor.py`), and skill matching (`ai_skill_matcher.py`).
- `data/`: Local JSON databases for skills, synonyms, and role archetypes.
- `.github/workflows/`: Contains GitHub Actions (e.g., `keep_alive.yml` to prevent cloud platforms from sleeping).
## 🔒 Privacy First
Resume files are parsed, scored, and edited locally and are not sent to an LLM. Without optional provider credentials, skill extraction and advice use local fallbacks. If Groq or Gemini credentials are configured, the job description may be sent to that provider for skill extraction, and job-related skills/title may be sent for improvement tips. Review your provider's privacy terms before enabling those integrations.
---
<div align="center">
<i>Built to help you land your dream job faster.</i>
</div>