Skip to content

Repository files navigation

HireGenie logo

HireGenie — AI-Powered Intelligent Recruitment Platform

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.

Live Demo LinkedIn


🧞 What is HireGenie?

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


🌐 Live Demo

Link Description
🚀 saniaushaa-hiregenie.hf.space Live production deployment on HuggingFace Spaces
💼 HireGenie on LinkedIn Official LinkedIn profile

✨ Features

🤖 AI-Powered Job Description Generation

  • 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

📋 Resume Screening & Ranking

  • 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-v2 stored in Pinecone

💬 Candidate Chatbot (RAG + LangGraph)

  • 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

📅 Interview Scheduling & Onboarding

  • 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

📊 Job Monitoring with GPT Suggestions

  • 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

🔔 Notifications & Analytics

  • 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

🏢 Multi-Tenant Architecture

  • Company-scoped Pinecone namespaces — complete data isolation between tenants
  • Superadmin panel for platform-wide company management
  • Secure sessions, hashed passwords, environment-variable secrets

🏗️ Architecture

┌──────────────┐    ┌─────────────────────────────────────┐    ┌────────────────────┐
│   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)  │
                                                                   └────────────────────┘

🛠️ Technology Stack

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)
Email 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

🚀 Getting Started

Prerequisites

  • 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

Installation

# 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.py

Database setup: All database tables and schema changes are managed directly via the Neon console. No local migration files are needed.

Environment Variables

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=development

HuggingFace Spaces deployment: Add all the above as Repository Secrets in your Space settings. Never push .env to version control.


📁 Project Structure

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

🗺️ Roadmap

  • 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

👩‍💻 Team

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


🔗 Links


Made with ❤️ at FAST-NUCES Karachi · Spring 2026

⭐ If you found this useful, please give it a star!

About

AI-powered recruitment platform — JD generation, resume screening, interview scheduling & onboarding using GPT, Gemini, LangGraph and RAG.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages