End-to-end AI recruitment automation for modern HR teams. Generate job descriptions, screen resumes, schedule interviews, and onboard candidates — all in one platform powered by GPT, Gemini, RAG, and LangGraph.
HireGenie is a full-stack, multi-tenant AI recruitment SaaS platform built as a Final Year Project at FAST-NUCES Karachi. It automates the three most painful parts of hiring:
- ✍️ Writing job descriptions — from a one-line prompt to a complete, enriched JD in seconds
- 📄 Screening resumes — ranked shortlists with per-dimension scores, not just keyword matching
- 🤝 Candidate communication — automated emails, interview scheduling, onboarding docs, and a live chatbot
Rather than replacing HR professionals, HireGenie augments them — handling the repetitive work so recruiters can focus on the humans.
Built by Sania Ushaa, Shermeen Ziauddin, and Eesha Fatima · FAST-NUCES Karachi · Spring 2026
| Link | Description |
|---|---|
| 🚀 saniaushaa-hiregenie.hf.space | Live production deployment on HuggingFace Spaces |
| 💼 HireGenie on LinkedIn | Official LinkedIn profile |
- Natural language prompt → fully structured JD in one click
- Two-stage LangGraph pipeline: extract intent → enrich with company-specific RAG context
- Powered by Google Gemini 2.5 Flash in structured JSON output mode
- Understands salary in human units ("3 lac", "2.5 lakh") and converts automatically
- One-click Post to LinkedIn integration
- Hybrid scoring: semantic cosine similarity (40%) + GPT-evaluated sub-scores
- Skills match 20% · Experience 15% · Keywords 15% · Education 10%
- Parallel processing with ThreadPoolExecutor — 10 resumes scored simultaneously
- MongoDB caching — parsed resumes never hit the LLM twice
- 384-dimensional embeddings via
all-MiniLM-L6-v2stored in Pinecone
- Conditional LangGraph StateGraph: routes to greeting / RAG answer / HR escalation
- MMR retrieval (k=50, λ=0.5) from company knowledge base in Pinecone
- Streaming token-by-token responses via Server-Sent Events
- Persistent conversation memory with SQLite checkpointing per thread
- Google Calendar + Meet link generation via OAuth2 (token stored in PostgreSQL — no files needed)
- Automated candidate email notifications via SendGrid
- AI-generated onboarding documents (offer letters, welcome packs) with PDF delivery
- Template priority: modal upload → settings KB template → built-in GPT default
- Daily 09:00 AM scheduler collects views, clicks, applications per job
- Single GPT-4o call analyses all active jobs and returns
{insight, action, urgency} - Urgency-coded suggestions (🔴 high / 🟡 medium / 🟢 low) displayed in portal
- Automated HTML email digest sent to recruiter every morning
- "Run Now" button for instant on-demand analysis
- Real-time in-app notifications (new applications, shortlisting, interview reminders)
- Monitor page: conversion rates, engagement charts, top-performing postings
- Weekly recruiter report email every Monday at 08:00
- Company-scoped Pinecone namespaces — complete data isolation between tenants
- Superadmin panel for platform-wide company management
- Secure sessions, hashed passwords, environment-variable secrets
┌──────────────┐ ┌─────────────────────────────────────┐ ┌────────────────────┐
│ Users │ │ Flask Application │ │ External APIs │
│ │ │ ┌─────────────────────────────────┐ │ │ │
│ Recruiter │───▶│ │ auth · jd · candidates · views │ │───▶│ OpenAI GPT-5 Nano │
│ Candidate │───▶│ │ chat · interviews · notifs │ │───▶│ Gemini 2.5 Flash │
│ Superadmin │───▶│ │ superadmin │ │───▶│ Pinecone │
│ │ │ └─────────────────────────────────┘ │───▶│ SendGrid │
└──────────────┘ │ │───▶│ Google Calendar │
│ ┌──────────────────────────────────┐ │───▶│ LinkedIn API │
│ │ AI Orchestration Layer │ │───▶│ HuggingFace │
│ │ LangGraph JD pipeline │ │ └────────────────────┘
│ │ Resume screening (parallel) │ │
│ │ Chatbot StateGraph │ │ ┌────────────────────┐
│ │ Daily AI monitor (GPT-4o) │ │ │ Data Layer │
│ └──────────────────────────────────┘ │ │ │
│ │───▶│ PostgreSQL │
│ Schedulers: Mon 08:00 · Daily 09:00 │───▶│ MongoDB │
└────────────────────────────────────────┘───▶│ Pinecone (3 idx) │
│ SQLite (chatbot) │
└────────────────────┘
| Layer | Technology |
|---|---|
| Web Framework | Flask 3.1 + Blueprint architecture |
| AI Orchestration | LangChain + LangGraph |
| LLM — Scoring & Parsing | OpenAI GPT-5 Nano |
| LLM — JD Generation | Google Gemini 2.5 Flash |
| LLM — Job Monitor | OpenAI GPT-4o |
| Embeddings | HuggingFace all-MiniLM-L6-v2 (384-dim) |
| Vector Database | Pinecone Serverless (3 indexes) |
| Relational DB | PostgreSQL |
| Document Store | MongoDB (resume cache) |
| Conversation Memory | SQLite (LangGraph checkpointing) |
| SendGrid | |
| PDF Processing | PyPDF2 · PyMuPDF · pdfminer |
| NLP | spaCy · NLTK |
| Frontend | Jinja2 · Tailwind CSS · Chart.js · Lucide Icons |
| Auth | Flask-Login · PyJWT |
| Concurrency | ThreadPoolExecutor |
| Deployment | HuggingFace Spaces |
- Python 3.11+
- Neon serverless PostgreSQL database (or any PostgreSQL instance)
- MongoDB instance
- Pinecone account (serverless)
- OpenAI API key
- Google Gemini API key
- SendGrid account
# 1. Clone the repository
git clone https://github.com/YOUR_USERNAME/hiregenie.git
cd hiregenie
# 2. Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. Install dependencies
pip install -r requirements.txt
# 4. Set up environment variables
cp .env.example .env
# Edit .env with your credentials (see below)
# 5. Start the application
python app.pyDatabase setup: All database tables and schema changes are managed directly via the Neon console. No local migration files are needed.
Create a .env file in the root directory:
# Database (Neon serverless PostgreSQL)
DATABASE_URL=postgresql://user:password@ep-xxx.neon.tech/hiregenie?sslmode=require
MONGODB_URI=mongodb+srv://...
# AI Services
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
PINECONE_API_KEY=...
PINECONE_INDEX_NAME=resumes
# Email
SENDGRID_API_KEY=SG...
MAIL_FROM_EMAIL=noreply@yourdomain.com
MAIL_FROM_NAME=HireGenie
# Google OAuth (for Google Meet integration)
GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...
# App
SECRET_KEY=your-secret-key-here
FLASK_ENV=developmentHuggingFace Spaces deployment: Add all the above as Repository Secrets in your Space settings. Never push
.envto version control.
hiregenie/
├── app/
│ ├── __init__.py # App factory, blueprint registration, schedulers
│ ├── routes/
│ │ ├── auth.py # Login, register, password reset
│ │ ├── jd.py # JD CRUD, AI generation, analytics, AI suggestions
│ │ ├── candidates.py # Resume upload, scoring, duplicate check
│ │ ├── interviews.py # Scheduling, onboarding doc generation
│ │ ├── views.py # Dashboard, settings, Google OAuth
│ │ ├── chat.py # Streaming chatbot (SSE)
│ │ ├── notifications.py # In-app notification management
│ │ └── superadmin.py # Platform admin panel
│ └── services/
│ ├── ai_monitor.py # Daily GPT-4o job monitoring pipeline
│ ├── db_service.py # PostgreSQL helpers
│ ├── email_service.py # SendGrid email templates
│ ├── interview_service.py # Google Meet + interview logic
│ ├── knowledge_service.py # KB upload, Pinecone chunking
│ ├── pinecone_service.py # Embedding + vector search
│ └── report_scheduler.py # Background schedulers (weekly + daily)
├── ai/
│ ├── jd_backend.py # LangGraph JD generation pipeline
│ ├── chatbot.py # LangGraph chatbot StateGraph
│ ├── llm_scorer.py # GPT resume scoring
│ ├── parser.py # Parallel resume parser
│ └── preprocess.py # Embedding model + Pinecone connection
├── templates/ # Jinja2 HTML templates
├── static/
│ ├── js/ # Per-page JavaScript modules
│ └── css/
├── config/
│ └── settings.py # Config class
├── app.py # Entry point
└── requirements.txt
- OCR support for scanned PDF resumes (Pytesseract integration)
- Bias audit module with diversity metrics
- Asynchronous video interview recording
- React Native mobile app for recruiters
- Fine-tuned domain-specific LLM (Mistral-7B / Llama-3.1-8B)
- Third-party ATS connectors (Workday, Greenhouse)
- Multi-region Pinecone deployment for lower latency
| Name | Roll Number |
|---|---|
| Sania Ushaa | 22K-4382 |
| Shermeen Ziauddin | 22K-4206 |
| Eesha Fatima | 22K-4226 |
Supervisor: Ms. Bakhtawer Abbasi Institution: FAST-NUCES Karachi — BS Computer Science, Spring 2026
- 🌐 Live Demo: saniaushaa-hiregenie.hf.space
- 💼 LinkedIn: HireGenie Recruiter
- 🎓 Institution: FAST-NUCES Karachi
Made with ❤️ at FAST-NUCES Karachi · Spring 2026
⭐ If you found this useful, please give it a star!