Obble screens and interviews candidates over a live call. That means audio in, transcription, a model deciding what to ask next, and speech back out, inside the pause a person will tolerate before it feels broken.
This role owns that pipeline: the realtime worker, the prompts, the vendor seams behind them, and the evaluation harness that tells us whether a change made the interviewer better or only different.
What you will do
- Own the realtime interview worker: audio handling, speech-to-text, model calls, and turn-taking under a latency budget.
- Design prompts as engineering artifacts, versioned and measured against a frozen corpus rather than adjusted by vibes.
- Run the evaluation loop: build the scenarios, read the transcripts, and defend a change with numbers before it goes live.
- Keep the vendor layer swappable. Models and speech providers change; the product should not have to.
What we are looking for
- Strong Python, and experience shipping something that called a language model in production rather than in a notebook.
- Comfort with asynchronous and streaming code, and the debugging that comes with it.
- A measurement instinct: when a model output is wrong, your first move is to build the case that proves it.
- Care about the person on the other end of the call. A candidate is being interviewed by this system, and that deserves real thought.
Nice to have
- WebRTC, LiveKit, or any realtime audio stack.
- You have run evaluations or A/B comparisons on model output before.