Project Details

interviu
Project Breakdowninterviu

Interviu — AI Technical Screening Platform

An AI technical screening platform that helps hiring teams automate first-round candidate screens with interactive voice assessments, instant scorecards, and intelligent replay.

Project Links
Live demo available to test.
Interviu — AI Technical Screening Platform screenshot

Technologies Used

TypeScript
React
Vite
Node.js
Express
WebSockets
Zustand
TanStack Query
Tailwind CSS
PostgreSQL
Prisma
Redis
BullMQ
Razorpay
Docker
AWS
GitHub Actions
Overview

Interviu helps hiring teams automate first-round candidate screens using AI. Instead of generic quiz questions, it tailors the screening around a team's hiring needs and JD requirements — then breaks down the interview into key moments with an evidence-backed evaluation report so teams save hours of screening time.

Core Challenges Addressed

  • Multi-Tenant Isolation: Ensuring organization data, candidate reports, and credit balances stay strictly private to each workspace.
  • Real-Time Audio Reliability: Handling low-latency voice streaming and candidate reconnects without losing interview progress.
  • Background Job Handling: Offloading scorecard generation, video processing, and email notifications to background queues without slowing down API responses.
  • Accurate Credit Tracking: Ensuring balance deductions and payment webhook credits remain accurate under concurrent usage.

Key Features & Technical Implementation

1. Multi-Tenant B2B Architecture

  • Database-Level Constraints: Workspaces (Organisation), Memberships (OrgMember), Roles (OWNER, ADMIN, VIEWER), and OrgInvites bound by relational database constraints.
  • RBAC Middleware: Middleware enforcement ensuring data, credit balances, and candidate reports are scoped strictly to authenticated organization boundaries.

2. Real-Time Adaptive Voice & Video Screening Engine

  • WebSocket Connection Stream: Bi-directional audio and transcript chunking for low-latency candidate interaction.
  • Session Lifecycle State Machine: Robust state transitions (INVITED ➔ VERIFIED ➔ STARTED ➔ COMPLETED ➔ PROCESSING ➔ REPORT_READY).
  • Resilience & Fair Use: Automatic state recovery for candidate network drops with zero loss of interview context.

3. Intelligent Replay & Transcript Synchronization

  • Timestamped Moment Highlights: Jump straight to key candidate moments with AI-generated timelines and synchronized transcripts in seconds.
  • Audio-Video Sync: Instantly play back any critical interview response while keeping audio, video, transcript, and evaluation scorecards seamlessly in sync.

4. Distributed Async Processing (BullMQ + Redis)

  • EMAIL_DISPATCH: Asynchronous transactional emails and candidate invite dispatches via Resend API.
  • REPORT_GENERATION: Async processing of raw transcripts through LLM prompts to extract scorecards, technical strengths/weaknesses, integrity flags, and hiring recommendations.
  • RECORDING_PROCESS: Asynchronous video/audio chunk stitching into unified session archives.

5. Atomic Ledger & Razorpay Payment Integration

  • Pay-As-You-Go Billing: Credit consumption ledger logged via PostgreSQL transactions (OrgCreditTransaction) ensuring zero credit drift.
  • Cryptographic Webhook Handlers: HMAC signature verification for Razorpay payment webhooks to grant credits automatically upon payment confirmation.

6. DevOps & Production Infrastructure

  • Containerized Stack: Orchestrated via Docker Compose (Express Service, BullMQ Worker, Redis, PostgreSQL).
  • Automated CI/CD Pipeline: GitHub Actions workflow executing type checking, Prisma DB migrations, EC2 container restarts, and health verification.

Problems & Engineering Solutions

Architecture Deep Dive
#01

Challenge 1: Multi-Tenant Data Isolation & Scoped Security

The Bottleneck & FrictionPROBLEM

Preventing cross-tenant data leaks or unauthorized credit consumption across organization members in an enterprise SaaS setup.

Engineered ResolutionSOLUTION

Implemented schema-level relational constraints alongside custom RBAC middleware. Every database query, credit ledger transaction, and candidate report fetch is strictly scoped by organization ID validated directly from the JWT context.

#02

Challenge 2: Low-Latency Streaming & Candidate Disconnect Recovery

The Bottleneck & FrictionPROBLEM

Candidate network instability during real-time voice screening can break WebSockets and lose active interview state.

Engineered ResolutionSOLUTION

Built an adaptive session state machine (`INVITED` ➔ `VERIFIED` ➔ `STARTED` ➔ `COMPLETED` ➔ `PROCESSING` ➔ `REPORT_READY`) backed by Redis. Disconnected sockets enter a grace period where audio/transcript buffers persist in Redis until the candidate reconnects.

#03

Challenge 3: High-Latency LLM & Media Processing

The Bottleneck & FrictionPROBLEM

Generating comprehensive multi-dimensional candidate scorecards and stitching video/audio streams during HTTP request handlers caused timeouts.

Engineered ResolutionSOLUTION

Decoupled async workloads into dedicated BullMQ queue workers (`EMAIL_DISPATCH`, `REPORT_GENERATION`, `RECORDING_PROCESS`). The HTTP service returns immediate status updates while workers handle heavy LLM analysis and media operations asynchronously.

#04

Challenge 4: Transactional Billing Safety & Webhook Idempotency

The Bottleneck & FrictionPROBLEM

Payment webhooks and concurrent credit usage could lead to race conditions, double credit grants, or balance drift.

Engineered ResolutionSOLUTION

Designed an atomic PostgreSQL ledger (`OrgCreditTransaction`) wrapping all credit grants and deductions in ACID database transactions. Razorpay webhooks validate HMAC signatures and check unique payment event IDs to ensure idempotent credit top-ups.