RecruitAI is a next-generation Applicant Tracking System (ATS) designed to streamline the hiring process. By combining the MERN Stack with a dedicated Python Machine Learning microservice and Google Gemini, it automatically parses resumes, scores candidates based on job descriptions, and provides visual analytics to help HR make data-driven decisions.
- Smart Resume Parsing: Automatically extracts text and skills from PDF resumes using OCR and NLP.
- Hybrid AI Scoring:
- ML Model: Uses a custom Python-trained model (
recruit_model.pkl) to score candidates based on historical dataset averages. - GenAI Integration: Utilizes Google Gemini API for semantic understanding and qualitative "culture fit" analysis.
- ML Model: Uses a custom Python-trained model (
- Interactive Dashboard: Visual analytics using Recharts to display candidate leaderboards and skill gap analysis.
- Job Role Configuration: Dynamic job setup allows recruiters to define specific weighting for skills and experience.
- Secure Authentication: JWT-based authentication with encrypted user data.
Secure login portal for HR administrators.

A comprehensive view of active job postings and recent applicants.

Dynamic setup to define required skills and weightage for specific roles.

Detailed breakdown of candidate scores, resume parsing results, and AI-generated insights.

Visualization of the underlying ML scoring metrics and dataset averages.

- Framework: React (Vite)
- Styling: Tailwind CSS
- State Management: React Context API
- Visualizations: Recharts
- HTTP Client: Axios
- Runtime: Node.js & Express.js
- Database: MongoDB (Mongoose)
- Authentication: JWT (JSON Web Tokens)
- Resume Parsing: PDF-parse / Multer
- Language: Python 3.13
- Framework: Flask (Microservice)
- Models: Scikit-learn (Pickle), Google Gemini API
- Data Processing: NumPy, Pandas
.
├── client/ # React Frontend application
├── server/ # Node.js/Express Backend API
├── ml_service/ # Python Machine Learning Microservice
├── demo_resume/ # Sample resumes for testing
└── screenshots/ # Application preview images
Follow these instructions to set up the project locally.
- Node.js (v18+)
- Python (v3.10+)
- MongoDB (Local or Atlas URL)
cd server
npm install
# Create a .env file based on the example below
npm startcd client
npm install
npm run devcd ml_service
python -m venv venv
# Windows
.\venv\Scripts\activate
# Mac/Linux
source venv/bin/activate
pip install -r requirements.txt
python app.pyCreate a .env file in the server directory:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
GEMINI_API_KEY=your_google_gemini_key
ML_SERVICE_URL=http://localhost:8000-
Job Setup: The recruiter creates a job profile (e.g., "Senior React Dev") and defines required skills.
-
Upload: Resumes (PDF) are uploaded via the frontend.
-
Processing:
- The Node Backend saves the file and extracts raw text.
- Text is sent to the Python Microservice.
- The ML Model vectorizes the resume text and calculates a similarity score against the job description.
- Google Gemini provides a secondary qualitative summary.
-
Results: The frontend displays a ranked leaderboard of candidates with detailed score breakdowns.
Contributions are welcome! Please fork the repository and submit a pull request.
This project is licensed under the MIT License.