This project is a Flask-based Resume Ranking System that:
- ✅ Accepts resume submissions and evaluates them based on predefined criteria.
- ✅ Stores resume details (name, email, score, and file) in a MySQL database.
- ✅ Provides an admin panel to view ranked resumes.
- ✅ Allows sending automated emails to applicants with their ranking details.
- ✅ Uses Flask-Mail to send emails and allows customization via an
email.txttemplate.
✔ Resume Submission & Ranking - Stores resumes and assigns scores.
✔ Admin Panel - Displays ranked resumes dynamically.
✔ Automated Email Notifications - Sends rank details to candidates.
✔ Email Template Customization - Modify email.txt to change email content.
✔ MySQL Database Integration - Stores candidate data securely.
✔ Flask & JavaScript - Ensures smooth frontend-backend interaction.
This project contains bugs, and the uploader's name is extracted from the filename. Use with caution.
Resume-Ranking/
│── static/ # Static files (CSS, JS, etc.)
│ ├── css/
│ │ ├── details.css # Styles for the admin panel
│ ├── js/
│ │ ├── script.js # JavaScript for fetching & displaying resumes
│── templates/ # HTML templates
│ ├── admin.html # Admin panel for viewing resumes
│── uploads/ # Folder where resumes are stored
│── app.py # Flask backend
│── email.txt # Email template for notifications
│── requirements.txt # Required dependencies
│── README.md # Documentation
│── database.sql # SQL schema for MySQL
Ensure you have Python 3 installed, then run:
pip install -r requirements.txtCreate a MySQL database and execute database.sql:
Update the database credentials in app.py:
DB_HOST = "localhost"
DB_USER = "your_username"
DB_PASSWORD = "your_password"
DB_NAME = "resume_ranking"- Enable Less Secure Apps or use App Passwords in Gmail.
- Update the email configuration in
app.py:
app.config['MAIL_USERNAME'] = 'your_email@gmail.com'
app.config['MAIL_PASSWORD'] = 'your_app_password'Start the Flask server:
python app.pyAccess the Admin Panel at: 🔗 http://localhost:5000/admin
The Admin Panel displays all resumes in ranked order:
| Rank | Name | Score | Resume | Action | |
|---|---|---|---|---|---|
| 1 | John Doe | john@example.com | 90 | View Resume | Send Email |
| 2 | Jane Doe | jane@example.com | 85 | View Resume | Send Email |
🔹 Click "Send Email" to notify the candidate about their ranking.
Modify the email.txt file to change the email content:
| Method | Endpoint | Description |
|---|---|---|
| POST | /upload |
Upload resumes (PDF) |
| POST | /process_resumes |
Process & rank resumes |
| POST | /details |
Fetch ranked resume data |
| POST | /send_email |
Send email to candidates |
✔ Check MAIL_USERNAME and MAIL_PASSWORD in app.py.
✔ Ensure Less Secure Apps or App Passwords are enabled in Gmail.
✔ Check your spam folder for the emails.
✔ Ensure MySQL is running.
✔ Verify the database name, username, and password.
✔ Run database.sql again if tables are missing.