Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 RecruitAI Open Source

Next-Generation AI Recruitment & Interactive Interview Practice Platform
Conduct autonomous voice interviews, evaluate hiring candidates with AI scorecards, and provide job seekers with real-time AI mock interview practice.


🌟 Overview

RecruitAI is a full-stack, open-source AI platform built with Laravel 12, Inertia.js, React, TypeScript, and Retell AI. It serves a powerful dual purpose:

  1. 🏢 For Companies & Recruiters: Automated end-to-end hiring pipeline — resume parsing, candidate screening, autonomous AI voice interviews, and detailed PDF scorecards.
  2. 🎯 For Job Seekers & Students (Interview Practice): An interactive practice sandbox where candidates can simulate real-world technical and behavioral voice interviews, get instant AI feedback, and review performance analytics before their real interview.

✨ Key Features

🎯 1. Interactive AI Interview Practice (For Candidates)

  • Real-Time Mock Interviews: Practice behavioral, situational, and role-specific technical questions with adaptive AI voice interviewers.
  • Equipment & Voice Test: Pre-flight audio check ensuring microphone clarity and network latency readiness.
  • Detailed Practice Reports: Generates automated post-interview feedback highlighting answer quality, communication tone, strengths, and areas for improvement.
  • Repeat Attempts & History: Track progress over multiple attempts across different job roles and difficulty levels.

🏢 2. Autonomous Candidate Screening (For Recruiters & ATS)

  • AI Voice Interviews: Automated, conversational voice interviews powered by Retell AI voice agents.
  • Job Role & Criteria Customization: Define custom interview guidelines, mandatory topics, and evaluation criteria per position.
  • Candidate Pipeline Management: Track applicant lifecycle from invitation to final hiring decision.
  • Automated Scorecards & PDF Export: Instant generation of comprehensive evaluation reports with score breakdowns and downloadable PDFs (via DomPDF).
  • Resume Parsing: Automatic PDF resume text extraction and candidate profile population (via Smalot PDF Parser).

👥 3. Multi-Tenant Workspace & Security

  • Team Collaboration: Invite team members, assign role-based permissions, and manage multiple company workspaces.
  • Webhook Processing: Real-time webhook listeners for Retell AI call events, recording URLs, and transcripts.
  • Cloud Storage Ready: Built-in AWS S3 support for storing candidate resumes and interview recordings.
  • Authentication & Security: Secure authentication via Laravel Fortify with audit logging.

🛠️ Tech Stack

Layer Technology
Backend Framework Laravel 12 (PHP 8.2+)
Frontend Framework React 19 + Inertia.js 2.0
Language & Tooling TypeScript, Vite, Tailwind CSS
UI Components Radix UI, Headless UI, Lucide Icons
Voice / AI Engine Retell AI Voice Agents & Webhooks
Document Processing smalot/pdfparser (Resume parsing), barryvdh/laravel-dompdf (PDF Reports)
Database & Cache SQLite / MySQL / PostgreSQL, Redis
Testing Pest PHP & PHPUnit

🚀 Getting Started & How to Run

📋 Prerequisites

Ensure you have the following installed on your machine:

  • PHP >= 8.2 with extensions: pdo, sqlite3 (or mysql), mbstring, curl, gd
  • Composer (PHP Package Manager)
  • Node.js >= 18.x (or Bun)
  • SQLite (default) or MySQL / PostgreSQL

📥 1. Clone & Navigate to Project

git clone <YOUR_REPO_URL> recruitAIOpenSource
cd recruitAIOpenSource

📦 2. Install Dependencies

Install PHP backend packages and JavaScript frontend dependencies:

# Install PHP dependencies
composer install

# Install Frontend dependencies (using npm or bun)
npm install
# or: bun install

⚙️ 3. Environment Configuration

Copy the example environment file and generate the application key:

cp .env.example .env
php artisan key:generate

Open .env and verify/adjust your settings:

APP_NAME="RecruitAI"
APP_URL=http://localhost:8000

# Database (Default is SQLite)
DB_CONNECTION=sqlite

# Queue (Use database for background job processing)
QUEUE_CONNECTION=database

# Retell AI Voice Configuration (Optional: Add for live voice calls)
RETELL_API_KEY=your_retell_api_key_here

# AWS S3 Storage (Optional: For cloud uploads)
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=

🗄️ 4. Run Migrations & Seeders

Create the database tables and seed default roles and settings:

# Create SQLite file if using SQLite
touch database/database.sqlite

# Run migrations and seed data
php artisan migrate --seed

🏃 5. Start the Application

You need to run both the Laravel backend server and Vite frontend asset compiler:

Terminal 1: Backend Server

php artisan serve

The backend will be running at http://127.0.0.1:8000.

Terminal 2: Frontend Asset Server (Vite)

npm run dev
# or: bun run dev

Terminal 3: Queue Worker (Required for async report generation and webhook tasks)

php artisan queue:work

🌐 6. Access the Application

Open your browser and visit: 👉 http://localhost:8000

  • Practice Interviews: Navigate to Practice Interviews to start a mock session, test audio, and get AI feedback.
  • Recruiter Dashboard: Register or log in to create job roles, invite candidates, and view interview results.

🧪 Running Tests

Run the test suite using Pest PHP / PHPUnit:

php artisan test

To run type checks and code formatting:

# TypeScript type check
npm run types

# Code formatting
npm run format

📁 Project Structure

recruitAIOpenSource/
├── app/
│   ├── Http/Controllers/
│   │   ├── CandidateController.php          # Candidate management & invitations
│   │   ├── InterviewController.php          # Recruiter voice interviews & evaluation
│   │   ├── PracticeInterviewController.php  # Candidate practice & mock sessions
│   │   ├── JobRoleController.php            # Job roles & criteria
│   │   └── WebhookController.php            # Retell AI event handlers
│   └── Models/                              # Eloquent Models (Candidate, Interview, JobRole, etc.)
├── config/                                  # Application configuration files
├── database/
│   ├── migrations/                          # Database schema migrations
│   └── seeders/                             # Database seeders
├── resources/
│   ├── js/
│   │   ├── components/                      # Reusable UI components
│   │   ├── layouts/                         # Inertia layout templates
│   │   ├── pages/                           # React pages (Dashboard, Practice, Interviews)
│   │   └── types/                           # TypeScript interfaces
│   └── css/                                 # Tailwind CSS styles
├── routes/
│   ├── web.php                              # Web & Inertia routes
│   └── console.php                          # Artisan CLI commands
└── tests/                                   # Pest / PHPUnit test cases

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is open-source and licensed under the MIT License.

recruitAI

About

An open-source, AI-powered automated recruitment and voice interview platform. Features candidate screening, automated voice interviews via Retell AI, resume parsing, multi-tenant organizations, and scoring reports.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages