The blank document was not empty because I had nothing to say.
It was empty because I was asking it the wrong kind of question. “Write about AI-native products” is too shapeless. “What did the support menu get wrong?” gives the mind something to push against. One is a topic. The other is a door.
Interviewer grew out of that premise: not another tool that promises to write for you, but a native Swift app that asks until the thought has an edge, then turns the transcript into something structured enough to publish.
Its line on the tin is still the right one: “You don’t know what you know, until you are asked.”
Interview does the thinking
Good interviews do a specific kind of work. They catch the vague sentence, ask for the example underneath it, notice the contradiction, and return five minutes later to the thought the speaker abandoned too early.
Most writing tools start after the hard part has already been skipped. They ask for a prompt, receive a thin premise, and then dutifully inflate it into prose. Organized, perhaps. Rarely interrogated.
Interviewer moves the work earlier. It conducts a podcast-style interview on a topic you choose, tracks what you say, researches threads in real time, and produces a draft from the conversation rather than from a lonely instruction box. Fourteen minutes of talking becomes a piece of writing with receipts from your own thinking.
From topic to interview plan
At the surface, the experience is simple. You tell the app what you want to talk about, perhaps “AI-first applications” or “why most code review is theater”, and it generates an interview plan. Not a rigid script. A research-driven rubric with backbone questions, required beats, and follow-up paths.
Then you talk. The app listens, responds with voice, and steers the conversation without treating the outline as sacred. A timer keeps the session honest, but the plan can bend when a sharper thread appears.
During the interview, the product is trying not to become a form disguised as conversation. It remembers what has been said, notices what has not been proved, and chooses whether the next question deepens, challenges, or moves on.
Seven agents, one conversation
Voice is the visible part. Orchestration is harder: seven specialized agents, each with a reason to step forward and a reason to fade back.
Planner drafts the interview before you begin, encoding hypotheses to probe and angles to explore. Note-Taker runs continuously during the conversation, tracking key ideas, stories, claims, gaps, even contradictions in your thinking. Researcher conducts web searches when you mention something unfamiliar, arming the interviewer with context.
Orchestrator is the pressure point. Every few seconds, it surveys the notes, research findings, elapsed time, and original plan, then decides what to ask next. Go deeper on the tangent, challenge the claim, or pull back to cover a missing beat. That decision is where the app either becomes an interviewer or collapses into a talking checklist.
After the interview, Analysis extracts themes, tensions, and quotable lines. Writer produces the essay itself: first-person, in your voice, not a sanitized summary but something that sounds like you wrote it after an editor asked the annoying questions.
If you have more to say, a Follow-Up Agent analyzes the previous session and suggests topics for a six-minute continuation. The second pass often matters more than the first, because the first answer has exposed the sharper question.
Preserving voice
Most AI writing tools fail in a recognizable way: they polish away the evidence that a person was present.
Interviewer takes a narrower approach. The Writer agent is a ghostwriter, not a journalist. It extracts patterns and cadence from the transcript. If you said “gnarly problem,” laundering that into “complex challenge” breaks the evidence. If you circle a point before snapping it into focus, the essay preserves enough of that motion to remain yours.
The draft comes out cleaner than the transcript and less generic than a summary. That line is the product.
Runs locally
Everything runs natively on a Mac or iPhone. No server to deploy, no backend to maintain. Session data stays on device in SwiftData, with the API key secured in Keychain. The only external communication is with OpenAI’s APIs.
Local storage matters because interview material is often half-formed by design. Competitive strategy, draft opinions, professional uncertainty, the sentence you say before you know whether you believe it: these are not ideal candidates for a casual SaaS backend.
Swift, voice, and tests
Technically, this is Swift 6 and SwiftUI with Apple’s Liquid Glass design language. The voice pipeline uses AVAudioEngine for capture and playback, with multi-layer echo cancellation so the AI does not interview itself. The agents are Swift actors calling OpenAI’s Chat Completions API with structured outputs, which means the app can reason about returned JSON instead of scraping prose for intent.
OpenAI’s Realtime API handles voice-to-voice conversation with sub-500ms latency. Server-side voice activity detection means the AI knows when you’ve finished a thought without awkward pauses or interruptions.
158 tests verify the agent orchestration works correctly. The demo version of this idea is easy. The product version has to know when to deepen, when to challenge, when to research, and when to stop talking.
Implicit knowledge needs a question
Most knowledge workers say they do not have time to write. Often the missing piece is more specific: they do not have a reliable way to turn implicit knowledge into an argument.
Interviewer does not write for you. It helps you think out loud, captures that thinking, and shapes it into something others can read. The essay that emerges is not AI-generated content. It remains your content, with AI doing the editorial work the blank page never knew how to ask for.
Fourteen minutes of talking is not a shortcut around thought. It makes thought answerable.
Interviewer is a native Swift app for macOS 26 Tahoe and iOS 26. It requires an OpenAI API key and a willingness to be asked the next question.