Skip to content

Mario5T/filtering

Repository files navigation

HireRank - AI-Powered Hiring Platform

AI-powered resume ranking and shortlisting platform for early-stage startups.

Overview

HireRank helps startup founders and small teams efficiently process large volumes of resumes using AI-powered scoring and ranking. Instead of keyword matching, it uses semantic understanding to provide consistent, explainable candidate evaluations.

Key Features

  • AI Scoring Engine: Weighted combination of semantic match, skill relevance, and experience alignment
  • Structured Explanations: Clear strengths, gaps, and recommendations for each candidate
  • Consistent Ranking: Same evaluation logic applied to all candidates
  • Bulk Upload: Process up to 50 resumes per job posting
  • CSV Export: Export shortlists for further processing

Tech Stack

Backend

  • Python 3.11+
  • FastAPI
  • PostgreSQL
  • SQLAlchemy + Alembic
  • OpenAI (embeddings + completions)
  • AWS S3 / MinIO (file storage)

Frontend

  • React 18 + Vite
  • TypeScript
  • Tailwind CSS
  • React Router

Project Structure

├── backend/                 # FastAPI backend
│   ├── app/
│   │   ├── api/            # REST endpoints
│   │   ├── core/           # Security, exceptions
│   │   ├── models/         # SQLAlchemy models
│   │   ├── schemas/        # Pydantic schemas
│   │   └── services/       # Business logic + AI
│   └── requirements.txt
│
├── frontend/               # React frontend
│   ├── src/
│   │   ├── api/           # API client
│   │   ├── components/    # UI components
│   │   ├── context/       # React context
│   │   └── pages/         # Page views
│   └── package.json
│
└── README.md

Quick Start

Prerequisites

  • Python 3.11+
  • Node.js 18+
  • PostgreSQL 14+
  • MinIO (for local development) or AWS S3

Backend Setup

cd backend

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Copy environment file
cp .env.example .env
# Edit .env with your configuration

# Run database (assuming PostgreSQL is running)
# Create database: createdb hirerank

# Start server
uvicorn app.main:app --reload

Frontend Setup

cd frontend

# Install dependencies
npm install

# Copy environment file
cp .env.example .env

# Start development server
npm run dev

MinIO Setup (Local S3)

# Using Docker
docker run -d \
  -p 9000:9000 \
  -p 9001:9001 \
  -e MINIO_ROOT_USER=minioadmin \
  -e MINIO_ROOT_PASSWORD=minioadmin \
  minio/minio server /data --console-address ":9001"

# Create bucket: hirerank-resumes via MinIO console at http://localhost:9001

Environment Variables

Backend (.env)

DATABASE_URL=postgresql://postgres:postgres@localhost:5432/hirerank
SECRET_KEY=your-secret-key
OPENAI_API_KEY=sk-...
AWS_ACCESS_KEY_ID=minioadmin
AWS_SECRET_ACCESS_KEY=minioadmin
AWS_S3_BUCKET=hirerank-resumes
AWS_S3_ENDPOINT_URL=http://localhost:9000

Frontend (.env)

VITE_API_URL=  # Leave empty for development proxy

API Endpoints

Method Endpoint Description
POST /api/v1/auth/signup Create account
POST /api/v1/auth/login Login
GET /api/v1/auth/me Get current user
GET /api/v1/jobs List jobs
POST /api/v1/jobs Create job
GET /api/v1/jobs/{id} Get job details
POST /api/v1/jobs/{id}/candidates/upload Upload resumes
GET /api/v1/jobs/{id}/candidates List ranked candidates
GET /api/v1/jobs/{id}/candidates/{cid} Get candidate details
GET /api/v1/jobs/{id}/export Export CSV

AI Scoring Algorithm

Overall Score = 40% × Semantic + 35% × Skills + 25% × Experience
  • Semantic (40%): Cosine similarity between JD and resume embeddings
  • Skills (35%): LLM-evaluated match of required vs. present skills
  • Experience (25%): Years and domain relevance alignment

MVP Limitations

  • Synchronous processing (30-50 resumes per upload max)
  • Single user per company account
  • No real-time notifications
  • No resume parsing for structured data (text extraction only)

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published