Core interview loop, end to end Shipped
Landing, Setup, Interview, Scorecard, Debrief, plus the challenge flow. Built and working end to end, verified in every mode.
Criterion works. The full loop runs in chat, voice, and video, every score links to the exact words you said, and the model output paths are hardened against their own failures. The plan from here is one straight line toward a product worth paying for.
The honest obstacle to revenue is not a shortage of features. It is that Criterion forgets you the moment you close the tab. There are no accounts, no saved history, and every anonymous interview runs on the API bill. A tool with no memory has nothing to charge for.
So the work moves along a single axis. Take someone from one great free interview to a record of their progress over weeks, and unlock money at the point where that accumulating value becomes undeniable. Fix the leaky bucket before pouring in traffic. Accounts, saved history, and a paywall edge come first, because sending visitors to a product that cannot remember them or charge them wastes both the visit and the spend.
A time boxed pass, unlimited for 30 days, plus optional interview credits. Interview prep is episodic. People need it hard for a few weeks around a job hunt, then leave. A flat monthly subscription bleeds churn against that rhythm, so the pass matches how the need actually arrives.
Landing, Setup, Interview, Scorecard, Debrief, plus the challenge flow. Built and working end to end, verified in every mode.
Every score traces to the exact words you said, highlighted in the transcript. The non-negotiable thesis, live.
Voice adds speech to text dictation into your editable answer, plus interviewer questions read aloud with a mute toggle. Video adds a local only self view with camera and mic toggles, strict stream cleanup, and a corner interviewer orb that glows as it speaks.
Defensive JSON parsing, a strict JSON only prompt, and a client backstop, so a malformed model reply degrades to a calm retry and never crashes the page or touches your score.
A done state at six of six with a count up final score and reduced motion aware confetti, hard stopped in code so it never fires on a stray model signal. A live scan sweep, a bottom bar spinner, and a centered overlay carry the multi second final wait.
A bounded auto growing composer keeps Submit reachable at any answer length, long questions and answers scroll inside their own panes, and starter chips drag into the field.
Every screen rebuilt to match the finalized design previews, pixel for pixel, previews treated as the source of truth.
A single IBM Plex Sans voice with tabular numbers, charcoal dark default with light supported, fully tokenized colors, a hydration safe theme toggle, and a WCAG AA contrast audit that gates every commit.
The contact form sends real email through Resend, wired server side with the sender set as reply to, and it shows a true success and error state instead of failing quietly. People can actually reach you, in local and production.
Interviewer questions pass through markup stripping, so raw markdown and code fences never reach the screen. The interrupted card reads a typed error reason instead of one generic hiccup line. Same defensive class as the challenge JSON fix.
Magic link sign in, a session that holds across the app through SSR middleware, and sign out, all on the Supabase profiles foundation. The auth control sits in every header, landing plus Setup, Interview, Scorecard, and Debrief, showing Sign in when signed out and Sign out when signed in, and nothing until the session resolves so the wrong control never flashes. Identity and session are live. Saving your interviews against the account comes next.
Your interviews are saved against your account instead of vanishing on close.
Why This is the substrate. History, insights, and billing all read from it.
A stranger can still try Criterion, within a fair limit.
Why Anonymous interviews run on your API bill. Gating them stops the cost leak and creates the paywall edge in one move.
Every interview in one place, with score trends per competency over time.
Why This is the accumulating value hook. Your evidence thesis compounds here, showing evidence quality climb session over session.
Patterns across all your interviews. Recurring weak spots, strengths that hold.
Why This is real coaching, not a single snapshot. It is the strongest reason to keep paying.
Checkout that unlocks the product, priced to the way interview prep actually happens.
Why A time boxed pass fits episodic prep far better than a subscription that churns the moment the job hunt ends.
A free tier that still reaches the aha, and a paid tier worth the price.
Why Free proves the evidence linked scorecard. Paid holds unlimited interviews, full history, insights, all four roles, and export.
A modal code editor that saves and collapses to a compact block, rendered in the transcript and cited in scorecard evidence.
Why Engineering roles answer with code. Without it the evidence thesis has a blind spot on exactly the roles Criterion is built to serve.
The paid version two of the abstract orb. A real face that asks the questions and reacts as you speak.
Why The headline upgrade, and it also settles the cross browser voice inconsistency in one move. It carries a real cost per interview, so it waits until billing exists to cover it.
Model answers, targeted drills on your weak competencies, rubric coaching.
Why This turns Criterion from assessment into improvement, which is what earns renewals and word of mouth.
A public link to an evidence linked scorecard.
Why Acquisition baked into the product. Every shared card is an ad for the thesis.
Genuinely useful interview prep writing, one strong piece per role.
Why Interview prep is a huge search category and your realistic acquisition channel with no ad budget. It sits Later because content takes months to rank, and you do not fill the funnel before it converts.
Criterion on the home screen, with the mic, camera, and playback working the way a real app can, plus practice reminders that pull you back.
Why This is where voice and video stop fighting the browser, settling the Web Speech inconsistency and the autoplay priming. Push notifications drive the retention the paid tier depends on, and the stores add a discovery channel. It sits last because it is a distribution bet, and you do not build a third surface before the web product proves people return and pay. A progressive web app is the cheap first step toward it.