Hirecrest is a Flask-based web application designed to streamline job recruitment processes. It allows recruiters to post job listings, students to apply with resumes, and facilitates interview scheduling with email notifications. The app features role-based access (recruiters and students), resume compatibility scoring, and MongoDB Atlas for data persistence.
https://hirecrest.onrender.com
- User Authentication: Register and log in as a student or recruiter with secure password hashing.
- Job Management:
- Recruiters can post, view, and delete job listings.
- Students can browse and apply to jobs with resume uploads.
- Application Management:
- Students can view and withdraw their applications.
- Recruiters can view applicants, download resumes, and reject candidates.
- Interview Scheduling:
- Recruiters can schedule interviews and notify candidates via email.
- Options to reject or select candidates post-interview with automated notifications.
- Resume Compatibility: Automatically scores resumes against job requirements.
- Search Functionality: Filter jobs, applications, and interviews by keywords.
- Email Notifications: Integrated with Flask-Mail for interview and selection updates.
- Backend: Flask (Python)
- Database: MongoDB Atlas (via PyMongo)
- Security: Werkzeug for password hashing
- File Uploads: Supports PDF, DOC, DOCX resumes (16MB max)
- Email: Flask-Mail with SMTP (Gmail configured)
- Environment: Managed via
.envfile with python-dotenv
- Python 3.8+
- MongoDB Atlas account
- Gmail account for email notifications (or another SMTP server)
- Git (optional, for cloning)
- Clone the Repository:
git clone https://github.com/sahilmurhekar/HireCrest cd hirecrest - Set Up a Virtual Environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate - Install Dependencies:
pip install -r requirements.txt - Configure Environment Variables:
Create a .env file in the root directory with the following:
SECRET_KEY=your-secret-key MONGO_URI=your-mongodb-atlas-uri [email protected] EMAIL_PASSWORD=your-email-app-password GEMINI_API_KEY=gemini-api - Set Up Upload Folder: The app automatically creates static/uploads/resumes for resume storage.
- Run the Application:
python app.py
The app runs on http://127.0.0.1:5000 in debug mode.
hirecrest/
├── static/
│ ├── uploads/
│ │ └── resumes/ # Resume storage
│ └── ... # CSS, JS, etc.
├── templates/ # HTML templates
│ ├── index.html
│ ├── login.html
│ ├── register.html
│ ├── jobs-client.html
│ ├── jobs-admin.html
│ ├── list-client.html
│ ├── list-admin.html
│ ├── schedule-admin.html
│ ├── interview-notification.html
│ └── selection-notification.html
├── .env # Environment variables (not tracked)
├── app.py # Main Flask application
├── compatibility.py # Resume extraction and scoring logic
├── requirements.txt # Python dependencies
└── README.md # This file
Used Railway for the deployment of the project. Changes made: add a Procfile
web: gunicorn app:app
- Fork the repository.
- Create a feature branch (git checkout -b feature-name).
- Commit changes (git commit -m "Add feature").
- Push to the branch (git push origin feature-name).
- Open a Pull Request.