A Flask web application that analyzes resumes using AI and provides feedback to help job seekers improve their applications.
You can check out the live demo of the Resume Analyzer application at Resume Analyzer Demo.
- AI-Powered Resume Analysis: Get detailed feedback on your resume using advanced AI models
- Job Role Matching: Check your resume compatibility with specific job positions
- ATS Compatibility: Verify if your resume can pass Applicant Tracking Systems
- Resume Management: Upload, view, and manage multiple resumes
- Formatted Resume: Get professionally formatted versions of your resume
- User Authentication: Secure login and registration system
- Subscription Plans: Different plans with varied features (Free, Basic, Premium)
- User Dashboard: View and manage your resumes, feedback, and subscription status
- Responsive Design: Mobile-friendly interface for easy access on any device
- Backend: Flask (Python)
- Database: PostgreSQL
- Authentication: JWT authentication with Flask-JWT-Extended
- AI Integration: DeepSeek models via OpenRouter API
- Frontend: Bootstrap 5, HTML/CSS, JavaScript
-
Clone the repository
-
Install dependencies:
pip install -r requirements.txt
-
Set environment variables: Create a
.envfile with the following variables:API_KEY=your_openrouter_api_key SECRET_KEY=your_flask_secret_key DATABASE_URL=postgresql://username:password@localhost:5432/dbname
-
Initialize the database:
flask db init flask db migrate flask db upgrade
-
Run the application:
flask run
- Vercel account
- PostgreSQL database service (e.g., render.com, Supabase)
-
Set up a cloud PostgreSQL database: Create an account with a PostgreSQL provider and get your connection string.
-
Configure environment variables in Vercel:
API_KEY: Your OpenRouter API keySECRET_KEY: Flask secret keyDATABASE_URL: Your cloud database connection string
-
Deploy to Vercel:
vercel
The project includes a configured
vercel.jsonfile for seamless deployment.
├── api/
│ ├── app/
│ │ ├── auth.py # Authentication routes
│ │ ├── models.py # Database models
│ │ ├── routes.py # Main application routes
│ │ ├── config.py # Configuration settings
│ │ ├── services/
│ │ │ └── resume_analyzer.py # Resume analysis logic
│ │ ├── static/ # Static assets
│ │ └── templates/ # HTML templates
│ ├── index.py # Vercel entry point
│ └── requirements.txt # Project dependencies
├── vercel.json # Vercel deployment configuration
└── README.md # Project documentation
The application uses Flask's session-based authentication:
- User registration with name, email, and password
- Password encryption using bcrypt
- Protected routes requiring login
- Session management for authentication state
- Resume scoring (0–100)
- Content feedback
- Grammar and style suggestions
- Job matching recommendations
- ATS compatibility analysis
- Skills gap identification
- Formatting suggestions
The application integrates with OpenRouter API to access DeepSeek AI models for resume analysis. This enables advanced natural language processing capabilities for providing accurate and helpful feedback on resumes.
- Fork the repository
- Create a feature branch: git checkout -b feature-name
- Commit your changes: git commit -am 'Add new feature'
- Push to the branch: git push origin feature-name
- Submit a pull request
