File size: 1,931 Bytes
ab13a8a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | # Full-Stack AI Recruitment Engine
A production-ready candidate ranking platform built with Next.js, FastAPI, and Groq LLMs.
## Features
- **Multi-Agent Evaluation**: Sequential and parallel agent pipeline (Signal Extraction, Founder Eval, Tech Eval, HR Agent, etc.).
- **Groq Key Rotation**: Automatic round-robin cycling of multiple API keys to prevent rate limits.
- **CSV Data Ingestion**: Parse resumes and candidate data directly from CSV files.
- **Glassmorphic UI**: Modern, high-performance dashboard with animations and progress tracking.
---
## Backend Setup (FastAPI)
1. **Navigate to backend**:
```bash
cd backend
```
2. **Create and Activate Virtual Environment**:
```bash
python -m venv venv
# Windows:
venv\Scripts\activate
```
3. **Install Dependencies**:
```bash
pip install -r requirements.txt
```
4. **Environment Variables**:
Create a `.env` file in the `backend/` folder based on `.env.example`:
```env
GROQ_API_KEYS=key1,key2,key3
GROQ_MODEL=llama3-70b-8192
PORT=8000
```
5. **Run Backend**:
```bash
uvicorn app.main:app --reload
```
---
## Frontend Setup (Next.js)
1. **Navigate to frontend**:
```bash
cd frontend
```
2. **Install Dependencies**:
```bash
npm install
```
3. **Environment Variables**:
Create a `.env.local` file in the `frontend/` folder:
```env
NEXT_PUBLIC_API_URL=http://localhost:8000
```
4. **Run Frontend**:
```bash
npm run dev
```
---
## Usage Guide
1. **Paste Job Description**: Enter the target role details in the textarea.
2. **Upload CSV**: Upload a CSV containing candidate data (columns: `name`, `email`, `skills`, `experience`, `projects`, `education`, `resume_text`).
3. **Evaluate**: Click "Run Evaluation" and watch the AI agents process each candidate.
4. **Deep Dive**: Click on any candidate row to see the full multi-agent breakdown and final synthesis.
|