@@ -10,13 +10,13 @@ study curriculum that tracks your progress across sessions.
1010
1111** Why this exists.** Real technical interviews are scarce and unforgiving. An average corporate
1212opening draws roughly 250 applicants; only about four to six are interviewed and one is hired
13- (Glassdoor) — so months of preparation and dozens-to-hundreds of applications buy only a handful
14- of live interviews, and when you finally interview you almost never learn why you fell short
15- (surveys put the share of candidates who want post-interview feedback near 94%, while only a
16- small fraction ever receive any). This is the rehearsal room that otherwise doesn't exist:
13+ (Glassdoor). So months of preparation and dozens-to-hundreds of applications buy only a handful
14+ of live interviews, and when you finally interview you almost never learn why you fell short.
15+ (Surveys put the share of candidates who want post-interview feedback near 94%, while only a
16+ small fraction ever receive any.) This is the rehearsal room that otherwise doesn't exist:
1717unlimited, role- and seniority-specific mock interviews that give you the rubric scoring,
18- readiness report, and study plan a real interview never will — built to train myself and other
19- candidates for the real thing.
18+ readiness report, and study plan a real interview never will. I built it to train myself and
19+ other candidates for the real thing.
2020
2121Built to a written specification (` technical_interviewer_software_specification.pdf ` ) with a
2222binding architecture contract in [ ` DESIGN.md ` ] ( DESIGN.md ) . (The spec predates this
@@ -121,18 +121,18 @@ Timeouts bound every hop (no LLM call may block > 20s; planning must finish < 30
121121
122122## Testing
123123
124- 221 tests run with no API key and no live network calls from the app under test: the provider
124+ 230+ tests run with no API key and no live network calls from the app under test: the provider
125125chain is pinned to the deterministic offline engine, HTTP is mocked, and RAG tests build a real
126126FAISS index from an in-repo fixture wiki (the ` slow ` -marked tier loads the MiniLM embedding
127127model, cached locally after a one-time download):
128128
129- - ** Backend (pytest, 160 tests)** — 147 test functions, 160 collected cases once
129+ - ** Backend (pytest, 160+ tests)** — collected once
130130 parametrization is expanded: unit (API, scoring, hints, transcripts, parsing, RAG),
131131 AI-logic (scorer ** monotonicity** — more expected points covered can never lower a metric;
132132 ** determinism** — same answer, same score; role-specific rubric weights; hint penalties;
133133 prompt-injection scenarios end-to-end), and integration (full WebSocket interview →
134134 report flow).
135- - ** Frontend (Vitest + Testing Library, 61 tests, verified passing)** — setup validation, interview room states,
135+ - ** Frontend (Vitest + Testing Library, 70+ tests, verified passing)** — setup validation, interview room states,
136136 camera/mic-denied fallbacks, pause/resume/end, report rendering, TTS chunking pipeline.
137137
138138``` bash
@@ -232,21 +232,24 @@ All settings are environment variables with working defaults (`backend/app/confi
232232
233233## What an interview looks like
234234
235- 1 . ** Setup** — role, mode (Quick Practice 10–20 min / Standard 45–60 / Deep Research 60–90),
236- difficulty (Junior → Staff/Lead), interviewer style, hint policy; optionally attach a
237- resume + job description, enable wiki grounding, internet research, or fully-local AI.
238- 2 . ** Planning** — research agent (if allowed) + planning agent + RAG produce a sectioned plan.
239- 3 . ** Live interview** — video-call UI: talking avatar, your camera preview, live transcript,
240- timer, section indicator. Answer by voice (partial transcripts in real time) or by typing.
241- Follow-ups, style-consistent phrasing, silence check-ins, hints on request or adaptively
242- (hints cost score), pause/resume/skip/end. Voice is ** bilingual** (English via the browser,
243- Hebrew via Google Cloud TTS) and supports ** barge-in** — talk over the interviewer and it
244- stops to listen. (A simulated interviewee can stand in for the human to exercise a full
245- session end to end — an internal test harness in ` backend/app/sim/ ` , not part of a real run.)
246- 4 . ** Report** — overall score and role-readiness (0–100), per-topic scores, best/weakest
247- answers, missing concepts, communication + technical feedback, a study plan, and a
235+ 1 . ** Setup.** Pick role, mode (Quick Practice 10–20 min / Standard 45–60 / Deep Research
236+ 60–90), difficulty (Junior → Staff/Lead), interviewer style, and hint policy. Optionally
237+ attach a resume and job description, and turn on wiki grounding, internet research, or
238+ fully-local AI.
239+ 2 . ** Planning.** The research agent (if allowed), the planning agent, and RAG produce a
240+ sectioned plan.
241+ 3 . ** Live interview.** A video-call UI: talking avatar, your camera preview, live transcript,
242+ timer, section indicator. You answer by voice (partial transcripts in real time) or by
243+ typing. It does follow-ups, style-consistent phrasing, silence check-ins, hints on request
244+ or adaptively (hints cost score), and pause/resume/skip/end. Voice is ** bilingual** (English
245+ via the browser, Hebrew via Google Cloud TTS) and supports ** barge-in** : talk over the
246+ interviewer and it stops to listen. (A simulated interviewee can stand in for the human to
247+ exercise a full session end to end, an internal test harness in ` backend/app/sim/ ` , not part
248+ of a real run.)
249+ 4 . ** Report.** Overall score and role-readiness (0–100), per-topic scores, best and weakest
250+ answers, missing concepts, communication and technical feedback, a study plan, and a
248251 recommended next interview.
249- 5 . ** Progress** — cross -session readiness trend, per-topic trajectories, and a recency-weighted
252+ 5 . ** Progress. ** Cross -session readiness trend, per-topic trajectories, and a recency-weighted
250253 Now/Next/Later study curriculum cross-referenced to your wiki pages.
251254
252255## Honest limitations
0 commit comments