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.
Technologies Used
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
Challenge 1: Multi-Tenant Data Isolation & Scoped Security
Preventing cross-tenant data leaks or unauthorized credit consumption across organization members in an enterprise SaaS setup.
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.
Challenge 2: Low-Latency Streaming & Candidate Disconnect Recovery
Candidate network instability during real-time voice screening can break WebSockets and lose active interview state.
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.
Challenge 3: High-Latency LLM & Media Processing
Generating comprehensive multi-dimensional candidate scorecards and stitching video/audio streams during HTTP request handlers caused timeouts.
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.
Challenge 4: Transactional Billing Safety & Webhook Idempotency
Payment webhooks and concurrent credit usage could lead to race conditions, double credit grants, or balance drift.
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.
