There exists, in every expert's mind, a treasury of hard-won wisdom—stories of failure and triumph, opinions forged in the fires of experience, insights so deeply embedded they have become invisible to their keeper. The tragedy of expertise is that its possessor often cannot see it clearly enough to share it.
This application proposes a remedy.
Interviewer is a voice-first companion that conducts podcast-style conversations with subject-matter experts, drawing forth their knowledge through the ancient art of the well-timed question. But beneath its conversational veneer operates a symphony of specialized agents—a Note-Taker cataloging every story and claim, a Researcher pursuing promising threads in real-time, an Orchestrator conducting the flow of inquiry like a maestro before an orchestra.
The result? A conversation that feels remarkably like speaking with an old friend who happens to be deeply curious about precisely the right things.
- Download Interviewer.dmg
- Open the DMG and drag Interviewer to Applications
- Launch and enter your OpenAI API key in Settings
- Choose a topic and start speaking
Consider the peculiar difficulty of writing about one's own expertise. The blank page stares back, demanding structure from chaos, narrative from the jumbled collection of experiences that constitute "knowing something well." Most experts freeze, overwhelmed not by what they don't know, but by everything they do.
An interview changes everything.
When someone asks "What was the moment you realized this approach wouldn't work?"—suddenly the story pours forth, vivid and immediate. The questioner provides what the blank page cannot: direction, curiosity, and the gentle pressure of another mind wanting to understand.
Interviewer amplifies this dynamic through multi-agent orchestration. While you converse naturally with a single voice, seven specialized intelligences collaborate invisibly:
- The Planner designs the interview's arc before a word is spoken
- The Note-Taker tracks every insight, gap, and contradiction
- The Researcher pursues new concepts as they arise, enriching the conversation
- The Orchestrator selects each question with strategic precision
- The Analyst distills the conversation into themes and claims
- The Writer transforms the whole into a publishable narrative
- The Follow-Up Agent identifies unexplored threads for deeper conversations
You speak for fourteen minutes. You receive an essay that captures what you actually believe—in your voice, not some generic polished style.
A single intelligence, however capable, cannot simultaneously listen, remember, research, strategize, and write. Humans manage this through specialization—the interviewer asks, the producer researches, the editor shapes.
This application follows the same principle. Each agent focuses on one task, performs it excellently, and passes its insights to colleagues. The Orchestrator receives the Note-Taker's observations about uncovered topics, the Researcher's discoveries about unfamiliar terms, and decides: "Now is the moment to ask about that failure they mentioned in passing."
The effect is uncanny. The conversation feels guided by someone who was paying attention, someone who caught the throw-away comment and recognized its significance. Because, in a sense, someone was.
Speak for fourteen minutes about something you know deeply. Receive prose that sounds like you at your most articulate—the essay you would have written if you had infinite patience and perfect recall.
This is not transcription. This is translation: from the meandering river of spoken thought to the structured clarity of the written word.
And when you realize there's more to say? Resume the conversation. The app analyzes what you've already discussed, identifies the threads left unexplored, and proposes a focused six-minute follow-up. The resulting essay weaves both conversations into a single, richer narrative.
┌─────────────────────────────────────────────────────────────────┐
│ Native Swift App │
│ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ SwiftUI Views │ │
│ │ Home │ Plan Editor │ Interview │ Analysis │ Draft │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ Agent Coordinator │ │
│ │ │ │
│ │ ┌─────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ │ │
│ │ │ Planner │ │Note-Taker│ │Researcher│ │Orchestrator│ │ │
│ │ └─────────┘ └──────────┘ └──────────┘ └────────────┘ │ │
│ │ ┌─────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ Analyst │ │ Writer │ │ Follow-Up│ │ │
│ │ └─────────┘ └──────────┘ └──────────┘ │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌────────────┐ ┌───────────────┐ ┌──────────────────────┐ │
│ │ Audio │ │ OpenAI │ │ Keychain │ │
│ │ Engine │ │ Client │ │ Manager │ │
│ └────────────┘ └───────────────┘ └──────────────────────┘ │
│ │ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ SwiftData │ │
│ │ Sessions │ Plans │ Transcripts │ Drafts │ │
│ └────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ OpenAI │
│ ┌─────────────────────┐ ┌────────────────────────────────┐ │
│ │ Realtime API │ │ Chat Completions API │ │
│ │ (Voice + STT/TTS) │ │ (Structured Outputs) │ │
│ └─────────────────────┘ └────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
- macOS 26 (Tahoe) or iOS 26
- OpenAI API key with Realtime API access
- A microphone and a quarter hour to spare
- Clone this repository
- Open in Xcode 26+
- Build and run
- Enter your OpenAI API key in Settings
- Choose a topic you know well
- Speak
The rest happens automatically.
MIT License. See LICENSE for details.
Built with Swift, SwiftUI, and a profound respect for the difficulty of knowing what you know.


