Skip to content

vishnuvarshansaravanakarthikeyan/Resume-Automation-and-Ranking-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Resume Ranking Automation - Flask App 📄🚀

📌 Overview

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.txt template.

🛠 Features

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.


⚠️ Disclaimer

This project contains bugs, and the uploader's name is extracted from the filename. Use with caution.


📂 Folder Structure

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

⚙️ Installation & Setup

1️⃣ Install Dependencies

Ensure you have Python 3 installed, then run:

pip install -r requirements.txt

2️⃣ Set Up MySQL Database

Create a MySQL database and execute database.sql:

3️⃣ Configure app.py

Update the database credentials in app.py:

DB_HOST = "localhost"
DB_USER = "your_username"
DB_PASSWORD = "your_password"
DB_NAME = "resume_ranking"

4️⃣ Set Up Email (Flask-Mail)

  • 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'

🚀 Running the Application

Start the Flask server:

python app.py

Access the Admin Panel at: 🔗 http://localhost:5000/admin


🖥️ Admin Panel (admin.html)

The Admin Panel displays all resumes in ranked order:

Rank Name Email 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.


📨 Customizing Email Template

Modify the email.txt file to change the email content:


📌 API Endpoints

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

💡 Troubleshooting

❓ Flask-Mail email not sending?

✔ 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.

❓ MySQL connection error?

✔ Ensure MySQL is running.
✔ Verify the database name, username, and password.
✔ Run database.sql again if tables are missing.


About

A Flask-based web application that allows admins to upload, process, filter, and rank resumes based on company requirements. The system extracts text from PDFs, evaluates resumes against predefined criteria, and provides an option to send emails to candidates

Topics

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors