Skip to content

Repository files navigation

IntervAI

AI Interview Intelligence Platform

Practice role-specific mock interviews, get scored feedback, analyze your resume, and track weak areas — built for candidates who want recruiter-grade preparation.


Live AppAPICILicense

Live Demo · API Health · Report Bug


Live deployment

ServicePlatformURL
FrontendVercelhttps://interv-ai-zeta.vercel.app
Backend APIRenderhttps://intervai-3ycg.onrender.com
Health checkhttps://intervai-3ycg.onrender.com/api/v1/health
Source codeGitHubgithub.com/Alwin-385/IntervAI

Note: The Render free tier may sleep when idle. The first request after a while can take 30–60 seconds while the API wakes up. Refresh the app if you see a connection error.


Screenshots

IntervAI landing page
Landing page — AI-native interview preparation

Dashboard overview
Dashboard — stats, activity, quick actions
Generated interview questions
Interview questions — role-tailored AI generation
Mock interview session with voice recording
Mock interview — voice answers & live captions
Resume analysis scores
Resume analysis — rubric scores & feedback
Personalized improvement roadmap
Roadmap — personalized prep plan
Analytics dashboard
Analytics — progress & weak areas

Add your images: Save screenshots as PNG files in docs/images/ using the filenames above. See docs/images/README.md for capture steps.

→ Try the live app


Features

FeatureDescription
Adaptive mock interviewsLangGraph-powered question generation tailored to role, difficulty, resume, and weak areas
Voice answersBrowser speech-to-text + audio upload; practice like a real video interview
Resume intelligencePDF upload, extraction, rubric-based scoring, and skill-gap insights
Structured evaluationTechnical, behavioral, and communication scores with session summaries
Weak-area trackingDetect recurring gaps from answers and speech; feed into future questions
Personalized roadmapsAI improvement plans from your interview history
Analytics dashboardProgress trends, readiness scores, and activity overview
Secure authClerk sign-in with JWT-verified API access

Tech stack

Frontend

  • Next.js 15 · React 19 · TypeScript
  • Tailwind CSS · shadcn/ui
  • TanStack Query · Zustand
  • Framer Motion · Recharts
  • Clerk authentication

Backend

  • FastAPI · Python 3.12
  • SQLAlchemy 2.0 · Alembic
  • PostgreSQL (Supabase)
  • LangGraph orchestration
  • S3-compatible storage (Supabase)
  • Heuristic AI mode (no OpenAI key required)

Infrastructure (production)

┌─────────────────┐ HTTPS ┌──────────────────┐
│ Vercel │ ──────────────▶│ Render │
│ Next.js app │ REST + JWT │ FastAPI API │
└─────────────────┘ └────────┬─────────┘
│
┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
┌────────────┐ ┌────────────┐ ┌────────────┐
│ Supabase │ │ Clerk │ │ Supabase │
│ Postgres │ │ Auth │ │ Storage │
└────────────┘ └────────────┘ └────────────┘

Local development

Prerequisites

  • Node.js 20+
  • Python 3.12+
  • PostgreSQL (or Docker Compose for infra)
  • Clerk dev keys

Quick start

# 1. Clone
git clone https://github.com/Alwin-385/IntervAI.git
cd IntervAI
# 2. Environment
copy backend\.env.example backend\.env
copy frontend\.env.example frontend\.env.local
# Fill in Clerk keys, DATABASE_URL, etc.# 3. Start infra (Postgres, Redis, Qdrant) — optional for full stack
.\scripts\start-dev.ps1# 4. Backend (terminal 1)
.\scripts\start-backend.ps1# 5. Frontend (terminal 2)
.\scripts\start-frontend.ps1
ServiceURL
Frontendhttp://localhost:3000
Backend APIhttp://localhost:8000
API docshttp://localhost:8000/docs
Healthhttp://localhost:8000/api/v1/health

See docs/TESTING.md for phase-by-phase testing checklists.


Project structure

IntervAI/
├── frontend/ # Next.js 15 application (Vercel)
├── backend/ # FastAPI API (Render)
├── docker/ # Dockerfiles for local dev
├── docs/ # Auth, resumes, testing guides
├── scripts/ # PowerShell dev helpers
└── .github/workflows/ # CI (lint + tests)

API overview

Base URL (production): https://intervai-3ycg.onrender.com

EndpointDescription
GET /api/v1/healthService health
GET /api/v1/meCurrent user (Clerk JWT)
POST /api/v1/resumes/uploadUpload resume PDF
POST /api/v1/interviews/createCreate interview session
POST /api/v1/interviews/{id}/generate-questionsGenerate questions
POST /api/v1/roadmap/generateGenerate improvement roadmap
GET /api/v1/dashboard/overviewDashboard stats

Full interactive docs: http://localhost:8000/docs (local) or deploy Swagger on your API host.


Testing & quality

# Backend
cd backend
.\.venv\Scripts\pytest -m unit -q
.\.venv\Scripts\ruff.exe check app
.\.venv\Scripts\ruff.exe format --check app
# Frontend
cd frontend
npm test
npm run lint
npm run format:check

GitHub Actions runs lint and tests on every push to main.


Deployment summary

This project uses a free-tier production stack:

LayerServiceNotes
FrontendVercel HobbyRoot dir: frontend
BackendRender Free Web ServiceRoot dir: backend, Gunicorn + Uvicorn
DatabaseSupabase PostgreSQLSession pooler URL
File storageSupabase StorageS3-compatible API
AuthClerkTest keys for development

Key backend env vars for production:

  • BACKGROUND_JOBS_MODE=thread (no separate Celery worker on free tier)
  • INTERVIEW_QUESTIONS_HEURISTIC_ONLY=true
  • CORS_ORIGINS=https://interv-ai-zeta.vercel.app

Templates: backend/.env.production.example, frontend/.env.production.example


Documentation

DocTopic
docs/TESTING.mdLocal testing by phase
docs/auth.mdClerk setup
docs/resumes.mdResume upload & extraction
docs/resume-analysis.mdAI resume analyzer

Author

AlwinGitHub @Alwin-385

Built as a full-stack AI interview preparation platform with production deployment on Vercel + Render + Supabase.


interv-ai-zeta.vercel.app · Practice smarter. Interview with confidence.

About

Full-stack AI interview prep platform — mock interviews, resume analysis, voice answers, scoring, roadmaps, and analytics. Next.js + FastAPI + Clerk.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages