Put a Ceiling on Every AI Feature Before You Launch
A free AI feature is a meter running on your card. How we cap speech, tokens and voice per session and per day, and what the product does when it reaches a cap.
Cap Every Meter You Pay For
List every unit a vendor bills you for, and give each one a daily ceiling. For a voice interview those are seconds of speech-to-text, LLM tokens, and characters of text-to-speech. Then add the limits users control: session length, idle time, and sessions per person per day.
Check the ceilings before every turn, not in a nightly report. In our case that is a single pure function: given today's usage and the limits, it returns proceed, proceed with a cheaper voice, or stop with a reason. Because it is pure, it takes a few lines of tests to prove every branch.
Count Usage Before You Make the Call
Read the billing page, not just the API reference. Our speech-to-text provider bills a 10-second minimum per request, including requests we cancel halfway through. If you record usage only after a successful response, cancelled and failed calls never show up in your counter, and your ceiling quietly stops matching your bill.
So we record usage before the request, at the billed amount rather than the actual audio length. The counter can only overstate cost, never understate it.
Degrade First, Then Stop
Not every ceiling should end the session. When the daily voice budget runs out, InterviewRoom keeps going and reads replies with the browser's built-in speech synthesis. It sounds more robotic, but the candidate finishes their interview. When transcription or LLM capacity runs out, nothing cheaper can stand in, so the session stops with a plain message: today's free capacity is used up and resets tomorrow.
Decide this order before launch. A user who gets a worse voice is mildly annoyed. A user who gets a vague error halfway through an interview does not come back.
Make the Ceiling a Product Decision
Limits are pricing, whether or not you call them that. Our free practice session is 10 minutes. Interviews a hiring team sends by invite link keep the length the team chose. Writing the limits down early forced us to decide who the free tier is for, which shaped the product more than any prompt change did.
If you cannot say what happens when a hundred people try your AI feature at once, you have not launched a feature. You have launched an invoice.