An AI-powered résumé analysis tool that helps job seekers optimize their résumés for Applicant Tracking Systems (ATS) and improve their job application success rate.
- 📄 Multi-format Support: Upload PDF, DOCX, or image files
- 🤖 AI-Powered Analysis: Uses OpenAI GPT-4 for intelligent résumé evaluation
- 📊 Comprehensive Scoring: Get detailed scores for coverage, experience, and education fit
⚠️ ATS Compatibility: Identifies formatting issues that might cause ATS rejections- 💡 Actionable Suggestions: Receive specific recommendations to improve your résumé
- 🎨 Modern UI: Clean, responsive interface built with Next.js and Tailwind CSS
- Next.js 14 (App Router) with TypeScript
- Tailwind CSS for styling
- React Hook Form with Zod validation
- PDF.js for PDF rendering and preview
- FastAPI (Python 3.11) with Pydantic v2
- OpenAI GPT-4 for intelligent analysis
- spaCy and sentence-transformers for NLP
- PyMuPDF and python-docx for document parsing
- SQLAlchemy with SQLite/PostgreSQL support
- Node.js 18+ and npm
- Python 3.11+
- OpenAI API key
-
Clone the repository
git clone https://github.com/yourusername/ats-analyzer.git cd ats-analyzer -
Set up the backend
cd backend python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt
-
Set up the frontend
cd ../frontend npm install -
Configure environment variables
# In the project root, copy the example file cp env.example .env # Edit .env and add your OpenAI API key
-
Start the development servers
Backend (Terminal 1):
cd backend export OPENAI_API_KEY="your-api-key-here" source venv/bin/activate export PYTHONPATH=/path/to/your/project/backend uvicorn ats_analyzer.main:app --host 127.0.0.1 --port 8000 --reload
Frontend (Terminal 2):
cd frontend npm run dev -
Open your browser
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000/docs
- Upload your résumé - Support for PDF, DOCX, and image formats
- Paste the job description - Copy the job posting you're applying for
- Click "Analyze" - Get comprehensive analysis in seconds
- Review results - See your scores, missing skills, and improvement suggestions
- Optimize and repeat - Make changes and re-analyze until you're satisfied
ats-analyzer/
├── frontend/ # Next.js frontend
│ ├── app/ # App router pages
│ ├── components/ # React components
│ ├── lib/ # Utilities and API client
│ └── public/ # Static assets
├── backend/ # FastAPI backend
│ ├── ats_analyzer/ # Main application
│ │ ├── api/ # API routes and DTOs
│ │ ├── core/ # Configuration and utilities
│ │ ├── services/ # Business logic
│ │ └── main.py # FastAPI app
│ └── requirements.txt # Python dependencies
├── vercel.json # Vercel deployment config
└── DEPLOYMENT.md # Deployment guide
This application is ready for deployment on Vercel with both frontend and backend.
- Push your code to GitHub
- Connect your GitHub repo to Vercel
- Add environment variables in Vercel dashboard:
OPENAI_API_KEY: Your OpenAI API keyENVIRONMENT:production
- Deploy!
See DEPLOYMENT.md for detailed deployment instructions.
| Variable | Description | Default |
|---|---|---|
OPENAI_API_KEY |
OpenAI API key (required) | - |
DATABASE_URL |
Database connection string | SQLite |
ENVIRONMENT |
Environment (development/production) | development |
ALLOWED_ORIGINS |
CORS allowed origins | localhost |
MAX_FILE_SIZE |
Maximum upload file size | 10MB |
# Backend tests
cd backend
pytest
# Frontend tests (if added)
cd frontend
npm test- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI for GPT-4 API
- spaCy for NLP capabilities
- Next.js and FastAPI teams for excellent frameworks
- The open-source community for various libraries used
If you encounter any issues or have questions:
- Check the DEPLOYMENT.md guide
- Look through existing GitHub Issues
- Create a new issue if needed
Made with ❤️ for job seekers everywhere