momalmir/smart-resume-optimizer
<!-- HF README START -->
๐ง Smart Resume Optimizer
Smart Resume Optimizer helps job seekers generate tailored, optimized resumes and cover letters based on job descriptions using LLMs via OpenRouter. It supports models like Claude 3, GPT-4, Mistral, DeepSeek, and more.

๐ Table of Contents
- ๐ง Smart Resume Optimizer
- โจ How It Works
- ๐ Privacy Notice
- ๐งพ Requirements
- โ๏ธ Developer Setup
- ๐ Run Locally with Docker
- ๐งช Manual Setup (No Docker)
- ๐ Environment Variables
- ๐งช Testing (Optional)
- ๐ Deployment
- ๐โโ๏ธ Author
โจ How It Works
- Upload your PDF file or LaTeX file of resume
- Paste the job description you're targeting
- Enter an optional custom prompt with instructions for tailoring (there are two default prompts for PDF and LaTeX input the app will use if you do not provide any)
- Choose an LLM model
- Click Optimize Resume
- View and download your tailored resume as a PDF
- Extract comma-separated skills from the tailored resume
- Generate a personalized cover letter tailored to the same job
You can change the font and layout of the resume and cover letter by editing their respective LaTeX template files in backend/custom_resume_template.tex and backend/custom_cover_template.tex.
The system supports any model on OpenRouter, including:
anthropic/claude-3.7-sonnetgpt-4-turbodeepseek/deepseek-chat- ...and more
For skill extraction, it is recommended to use a lightweight model such as moonshotai/kimi-k2 for faster performance and lower cost. The same model selected for resume generation is used for the cover letter.
๐ Privacy Notice
This application runs entirely in your browser and does not store or send your resume or job description to any third party except to the selected LLM model via the OpenRouter API (under your API key). We do not log or collect:
- Your OpenRouter API key
- Your uploaded resume
- The job description or tailored output
๐งพ Requirements
To use the hosted app, youโll need:
- ๐ A resume in PDF or LaTeX format
- ๐ A job description you're applying to
- โ๏ธ A custom prompt describing how to tailor the resume
- ๐ An OpenRouter API key (sign up at openrouter.ai)
<!-- HF README END -->
<!-- GITHUB DEV DOCS START -->
โ๏ธ Developer Setup
You can clone and run the app locally or build your own Docker container.
๐ Run Locally with Docker
docker build -t smart-resume .
docker run -p 7860:7860 smart-resumeVisit http://localhost:7860 after the container starts.
๐งช Manual Setup (No Docker)
git clone https://github.com/msmalmir/Smart-Resume-Optimizer.git
cd Smart-Resume-Optimizer
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
streamlit run app.py๐ Environment Variables
Create a .env file in the root or export directly in your terminal:
OPENROUTER_API_KEY=your-api-key-here๐ Deployment
This app is deployed automatically to Hugging Face Spaces via GitHub Actions.
To deploy:
- Push to
main, or - Trigger the
Deployaction manually from the GitHub Actions tab
๐โโ๏ธ Author
๐ง Email: ms.malmir@gmail.com ๐ GitHub: github.com/momalmir ๐ LinkedIn: https://www.linkedin.com/in/mostafa-malmir/
<!-- GITHUB DEV DOCS END -->
