A FastAPI-based application that accepts a resume PDF, extracts its text, and returns an ATS-focused analysis with feedback and rewritten bullet points.
- Upload a PDF resume through a FastAPI endpoint
- Extract text from the PDF using PyMuPDF
- Analyze the content with Gemini (when configured)
- Store analysis results in a local SQLite database
- Return structured ATS feedback and rewritten bullet suggestions
config/ # Settings and environment configuration
src/
api/ # API routes
services/ # PDF parsing and LLM analysis
schemas/ # Pydantic response models
models.py # SQLAlchemy models
database.py # Database setup
main.py # FastAPI app entry point
requirements.txt
.env
- Create and activate a virtual environment
cd /Users/pratimabhat/Documents/Projects/resume-ats-score-booster
python3 -m venv venv
source venv/bin/activate- Install dependencies
pip install -r requirements.txt- Configure environment variables
Edit the .env file and set your Gemini API key:
GEMINI_API_KEY=your_gemini_api_key_here- Run the app
uvicorn src.main:app --reloadThe API will be available at:
Upload a PDF using curl:
curl -X POST "http://127.0.0.1:8000/pipeline/upload" \
-F "file=@path/to/resume.pdf"- The app uses SQLite and creates the database file automatically on startup.
- If the Gemini API key is not configured, the app uses a safe fallback analysis instead of failing.