~/projects/strativ-greenroom

Strativ Greenroom

Strativ AB · internal product, in active use for candidate screening

AI interviewer in active use for candidate screening. Candidates answer spoken questions, the system transcribes them live, adapts its follow-ups and produces an assessment for recruiters.

Overview

Greenroom runs a structured, spoken screening interview. Each answer is transcribed in real time, summarised by an LLM and fed into a phase machine that decides between a follow-up and the next question. Recordings upload in the background throughout the session, and after the interview a job pipeline produces a full transcript and an assessment for the recruiter.

Engineering highlights

+Live transcription straight from the browser

Candidate audio streams as 16 kHz mono PCM directly from the browser to AssemblyAI. Django only mints a short-lived token per question, so the vendor key never leaves the server and audio never passes through the app servers.

+Adaptive interview flow

After every answer an LLM summarises it and a phase machine (warm-up, technical, wrap-up) decides whether to ask one follow-up or move on. Question quotas per phase come from defaults or from questions prepared for that role.

+Real-time question delivery

Answers are accepted immediately (202) and processed off the request path. The next question is pushed to the candidate over WebSocket through the Redis channel layer.

+Recording that survives bad networks

MediaRecorder uploads 30-second chunks in parallel with the interview. Failed uploads are buffered in IndexedDB and retried every 15 seconds, with a grace window after the session ends.

+Post-session assessment pipeline

Background jobs finalise the recording, produce a full-session Whisper transcript and generate the assessment, with retries and a manual-review fallback when generation keeps failing.

Architecture

fig.1Components

Two application processes share PostgreSQL and Redis. Audio goes from the browser to the speech-to-text provider directly.

fig.2Question-and-answer loop

One cycle per question, repeated until the phase machine finishes the interview.

fig.3Interview phases

Each phase has a question quota and allows at most one follow-up per question.

fig.4Recording and post-session pipeline