Platform Overview
Data Flow
How data moves through the system from interview to scorecard.
Interview Data Flow
Employer creates posting
→ Title, JD, competencies (from framework), question spine, depth, mode, style
→ JD embedding generated for talent pool matching
Candidate invited
→ Email sent with single-use, 7-day token
→ Candidate clicks link → privacy → resume (optional) → ready
Interview starts (POST /api/interview/start)
→ Load interviewer rubric from DB (structured or adaptive, based on posting style)
→ Fetch current interviewer version from rubric_versions
→ Build dynamic system prompt:
Structured: rubric fields + JD + question spine + resume
Adaptive: rubric fields + JD + competency anchors + weights + resume
→ Create Retell session (voice: web call, text: chat)
→ Pass prompt via retell_llm_dynamic_variables (per-call, no race condition)
→ Stamp interviewer_version on transcript row
→ Mark token as used
Interview runs
→ Retell AI manages conversation using GPT-4.1
→ IntegrityMonitor tracks browser/camera flags in-browser
→ No data stored during interview (transcript is on Retell's side)
Interview ends (POST /api/interview/end)
→ Fetch transcript text from Retell
→ Scrub candidate name → [CANDIDATE]
→ Load scorer rubric from DB
→ Fetch current scorer version from rubric_versions
→ Load competency anchors from competency_framework (by competency_id)
→ Call Claude scorer with: transcript + rubric + anchors + integrity flags
→ Parse JSON scorecard
→ Recalculate weighted_score from competency weights
→ Save scorecard with scorer_version + interviewer_version
→ Update interview_status = 'complete'What the Scorer Receives
| Data | Source | Can See Identity? |
|---|---|---|
| Transcript | Retell, name-scrubbed | No — [CANDIDATE] |
| Competency names + weights | Posting config | N/A |
| Competency anchors (1-5) | competency_framework table | N/A |
| Scoring methodology fields | Scorer rubric (DB) | N/A |
| Integrity flags (optional) | Browser events | No identity |
| Output format | Hardcoded JSON schema | N/A |
What the Scorer Does NOT Receive
- Candidate name, email, or demographics
- Resume text
- Job description
- Interview mode or style
- Which questions were asked (only the transcript)