MERITUS
An adaptive AI interview platform that tailors interview sessions based on candidate resumes, target roles, and real-time responses, built with resilient distributed session recovery.
Rigid Screening Pipelines & Fragile Interview States
Standard automated hiring screens rely on rigid, static multiple-choice questions or canned problem sets that ignore candidate specializations. Meanwhile, live simulated interview platforms frequently crash or lose candidate progress when browser connections fluctuate, invalidating entire interview evaluations.
Adaptive Monorepo Architecture & Resilient Session Management
Designed a modular NestJS monorepo pairing resume-aware dynamic prompt engines with real-time WebSocket gateways. Interview state and turn histories are backed by Redis, enabling transparent disconnection recovery while delivering structured recruiter-style rubrics across technical and behavioral dimensions.
Modular Component Boundaries
Separated into dedicated internal libraries and application layers to guarantee isolation and independent scaling:
Extracts technical proficiencies, project depth, and years of experience from uploaded candidate resumes, mapping them to target job qualification matrices.
Dynamically constructs follow-up questions in response to candidate answers, probing edge cases, architectural trade-offs, and behavioral nuances.
Guards interview fairness and prevents prompt injections, topic deviations, or inappropriate content during interactive voice and text exchanges.
High-throughput WebSocket gateway handling bidirectional audio/text transmission, heartbeats, and Redis-backed session recovery.
Concurrent Interview State & Recovery Workflow
How the system preserves interview progress during unexpected network disconnections:
Resume and target role are compiled into an interview profile stored in Redis with session TTL.
Real-time audio/text messages stream over WebSockets. Each exchange appends to the active context graph.
If the client drops, the room state persists in Redis. On reconnection, state and unanswered prompts replay seamlessly.
Post-session analysis computes recruiter-style feedback across technical depth, clarity, and behavioral metrics.
Structured Recruiter-Style Rubric
Evaluations provide actionable, granular breakdowns rather than arbitrary percentage scores:
- • Architecture & Systems Trade-off Reasoning
- • Code Correctness, Complexity, and Optimization
- • Domain-Specific Knowledge Depth (e.g., DB, Concurrency, APIs)
- • Edge-Case Handling & Defensive Coding Strategies
- • Problem Decomposition and Communication Structure
- • Response Clarity under Technical Interrogation
- • Scenario-Based Conflict and Prioritization Handling
- • Articulation of Engineering Trade-offs
Architectural Stack & Decisions
| LAYER | TECHNOLOGY | TECHNICAL RATIONALE |
|---|---|---|
| Backend Framework | NestJS (TypeScript) | Enterprise modular architecture, dependency injection, and gateway lifecycle. |
| Frontend Interface | React.js + Tailwind CSS | Low-latency interactive voice and text interview dashboard. |
| Session Cache & State | Redis | In-memory distributed session management and disconnection recovery. |
| Real-Time Gateway | WebSockets (Socket.IO / WS) | Bidirectional streaming for candidate audio/text and interviewer responses. |
| Database & Auth | Supabase (PostgreSQL & Guards) | User session verification, candidate reports persistence, and access control. |