An end-to-end full-stack recruitment intelligence platform built with FastAPI, Next.js, and AI-driven scoring engines. RecruitGenie automates resume parsing, scoring, shortlisting, interview question generation, and analytics.
• Extracts candidate information (name, email, phone, skills).
• Computes base score, skill score, penalty, and overall score.
• Identifies missing skills and found skills.
• Generates tailored interview questions automatically.
• Upload .pdf, .docx, or .txt resumes.
• Auto-processed and stored.
• Results instantly displayed.
• View all processed candidates.
• Filter by job ID or status.
• Update status (shortlisted, review, reject) directly.
• Add notes per candidate.
• Open raw JSON detail.
• Total candidates
• Average score
• Distribution by status
• Top missing skills
• Data visualizations (frontend)
• All candidate data stored in backend/assets/candidate_data.csv
• Auto-created if missing
• Backend endpoint to download original uploaded resume files
Frontend — Next.js 16 (App Router) • React + TypeScript • Client-side fetching • Reusable pages: /upload, /candidates, /analytics • Environment-based API routing
Backend — FastAPI • Async endpoints • Multipart resume upload • CSV-based data layer • Resume parsing agent • Scoring engine • Interview question generator • CORS enabled for Next.js
AI / Agents • ResumeAgent • ScoringAgent • InterviewAgent • DataAgent (CSV writer)
RecruitGenie/
│
├── backend/
│ ├── agents/
│ │ ├── resume_agent.py
│ │ ├── scoring_agent.py
│ │ ├── interview_agent.py
│ │ ├── data_agent.py
│ ├── assets/
│ │ ├── resumes/
│ │ ├── candidate_data.csv
│ │ └── job_description.txt
│ ├── main.py
│ ├── recruitgenie_app.py
│ ├── requirements.txt
│
├── recruitgenie-frontend/
│ ├── app/
│ │ ├── upload/page.tsx
│ │ ├── candidates/page.tsx
│ │ ├── analytics/page.tsx
│ │ ├── layout.tsx
│ ├── public/
│ ├── package.json
│ ├── next.config.js
│ └── .env
│
└── README.md1️⃣ Create & activate virtual environment
python3 -m venv backend/venv
source backend/venv/bin/activate2️⃣ Install dependencies
pip install -r backend/requirements.txt3️⃣ Run FastAPI server
uvicorn backend.main:app --reload --port 80011️⃣ Navigate to frontend
cd recruitgenie-frontend2️⃣ Install dependencies
npm install3️⃣ Create .env file
NEXT_PUBLIC_API_BASE=http://localhost:80014️⃣ Run development server
npm run dev▶ Upload Resume
POST /upload_resume/?job_id=JOB_01▶ Get All Candidates
GET /candidates/▶ Update Status
PATCH /candidates/{id}/status▶ Update Notes
PATCH /candidates/{id}/notes▶ Analytics Summary
GET /analytics/summary▶ Download Uploaded Resume
GET /resumes/file/{filename}Each resume goes through: 1. ResumeAgent → Extract text + contact details 2. ScoringAgent → • base_score • skill_score • penalty • missing_skills • found_skills • total_score 3. InterviewAgent → Generates questions based on missing vs found skills 4. DataAgent → Writes a new row to CSV and assigns: shortlisted, review, or reject
• OAuth2 login for recruiters
• Multi-job descriptions
• MongoDB/PostgreSQL persistence
• AI-powered skill extraction
• Resume similarity ranking
• PDF previewer in frontend
Pull requests are welcome! For major changes, please open an issue first to discuss.
Licensed under the MIT License, allowing full flexibility to reuse, modify, distribute, and integrate this project into personal or commercial applications. Attribution is required.
If you have questions, suggestions, or collaboration ideas, feel free to reach out at: 📩 akashgpatil23.05@gmail.com