CV AI Tailor is a web application designed to automatically optimize and tailor CVs to specific job descriptions using LLMs. The application analyzes an uploaded CV against a job offer, calculates a compatibility match score, generates targeted recommendations, and provides a tailored CV in PDF format.
- HTML5
- CSS3
- JavaScript (Vanilla ES6+)
- Python 3.10+
- FastAPI
- Uvicorn
- LangChain / Google GenAI (
gemini-2.5-flash-lite/gemini-2.5-flash)
- Docker & Docker Compose
- Pytest & Pytest-Cov
- Ruff
- GitHub Actions, Python Coverage Comment Action, GitHub Step Summary
- Drag-and-drop PDF CV upload interface
- Automated job description analysis
- Match score visualization
- Actionable improvement recommendations
- Direct PDF preview in a new tab
- Python 3.10 or higher
- Google Gemini API Key
- Docker & Docker Compose installed
-
Clone the Repository
git clone https://github.com/MrWlobo/AI_CV_Tailor.git cd AI_CV_Tailor -
Environment Configuration
Create a.envfile in the root directory:GEMINI_API_KEY=your_gemini_api_key
-
Run with Docker Compose
Start both backend and frontend containers:docker compose up --build
Once the containers are running:
- Frontend: Access at
http://localhost:8080 - Backend API: Access at
http://localhost:8000
- Frontend: Access at
- Drag and drop your CV (PDF format) into the designated upload area or click to select the file.
- Paste the target job description into the text area.
- Click the submit button to begin analysis.
- Review your match score and recommendations once generated.
- Click the button to view and download your tailored CV.
.
├── src/
│ ├── backend/
│ │ ├── __init__.py
│ │ ├── api.py
│ │ ├── Dockerfile
│ │ ├── llm_integration.py
│ │ └── prompt.py
│ ├── frontend/
│ │ ├── Dockerfile
│ │ ├── index.html
│ │ ├── script.js
│ │ └── style.css
│ └── __init__.py
├── tests/
│ ├── backend_tests/
│ └── conftest.py
├── .dockerignore
├── .env
├── .gitignore
├── .python-version
├── docker-compose.yml
├── pyproject.toml
├── README.md
└── uv.lock

