# OpenInterviewer: Qualitative Interviews

URL: https://research-memex.org/docs/toolkit/openinterviewer
Description: OpenInterviewer helps researchers run adaptive interview studies while preserving study design and review control.



*Scale lets you hear voices that scheduling would have silenced.*

OpenInterviewer is an open-source platform for qualitative research interviews. You design the study and share a link. Participants then engage with an AI interviewer that adapts based on their responses.

<ToolMeta slug="openinterviewer" runtime="Next.js" />

AI providers: Gemini (default) or Claude, with per-study model selection

Deploy: [one-click Vercel deployment](https://vercel.com/new/clone?repository-url=https://github.com/linxule/openinterviewer\&env=GEMINI_API_KEY,ADMIN_PASSWORD\&envDescription=API%20key%20for%20Gemini%20and%20admin%20password%20for%20researcher%20access\&envLink=https://aistudio.google.com/apikey\&project-name=openinterviewer\&repository-name=openinterviewer\&stores=%5B%7B%22type%22:%22kv%22%7D%5D)

<Warning>
  This is not a replacement for human interviews. AI interviews generate different data than human-conducted interviews. They're a complementary method for exploratory research, pilot studies, larger samples, and participants across time zones. The platform extends your research reach; it does not substitute for your interpretive presence.
</Warning>

## Why it matters [#why-it-matters]

* pilot studies — test interview protocols before committing to full human-conducted studies
* larger samples — collect interview data from 50+ participants without scheduling constraints
* exploratory research — gather perspectives on emerging topics
* cross-timezone studies — engage participants on their own schedule
* complementary data — pair with human interviews for methodological triangulation

## How it works [#how-it-works]

<Aside label="New to the platform?">
  After deployment, select **Load Demo** on **My Studies** to inspect three sample interviews and their synthesis before creating your own study.
</Aside>

### For researchers [#for-researchers]

1. Create a study — Define research questions, participant profiles, and interview mode
2. Configure the interviewer — Choose structured, standard, or exploratory mode; select your AI model
3. Share the link — Participants access via a simple URL (with optional expiration)
4. Monitor and analyze — Real-time synthesis of themes, contradictions, and patterns
5. Generate follow-ups — Create new studies based on synthesis findings to dig deeper

### For participants [#for-participants]

1. Open the link — No account or app required
2. Consent — Standard consent flow
3. Conversation — Natural dialogue with an AI interviewer that adapts to responses
4. Demographics — Collected conversationally, not as a separate form

## Tools [#tools]

### Interview modes [#interview-modes]

| Mode        | Best For              | AI Behavior                                               |
| ----------- | --------------------- | --------------------------------------------------------- |
| Structured  | Confirmatory research | Follows predefined questions closely                      |
| Standard    | Balanced exploration  | Follows guide with adaptive follow-ups                    |
| Exploratory | Discovery research    | Free-flowing conversation guided by participant responses |

### Model selection [#model-selection]

Each study can use a different AI model. Select it from a dropdown in the study setup page. This lets you balance cost, speed, and quality per study.

<Columns cols="2">
  <Card title="Gemini Models" icon="bolt">
    * gemini-2.5-flash — Fast, cost-effective (default)
    * gemini-2.5-pro — Higher quality responses
    * gemini-3.1-pro-preview — Higher-capability option (preview)
  </Card>

  <Card title="Claude Models" icon="brain">
    * claude-haiku-4-5 — Fastest
    * claude-sonnet-4-5 — Balanced (default)
    * claude-opus-4-5 — Higher capability in the app's current catalogue
  </Card>
</Columns>

This is the list the tool actually offers, not a recommendation. Per-token prices move, so we do not restate them: see [Anthropic's pricing](https://platform.claude.com/docs/en/about-claude/pricing) and [Gemini API pricing](https://ai.google.dev/gemini-api/docs/pricing).

Model priority: per-study UI selection takes precedence over environment variable defaults.

### AI reasoning mode [#ai-reasoning-mode]

For analytical operations like synthesis, the platform switches to its configured higher-capability model with extended thinking enabled. This produces richer thematic analysis without slowing down the interview itself.

| Operation                  | Reasoning | Model Used                                                    |
| -------------------------- | --------- | ------------------------------------------------------------- |
| Interview responses        | OFF       | Your selected model                                           |
| Greeting generation        | OFF       | Your selected model                                           |
| Per-interview synthesis    | ON        | Configured synthesis model (Gemini 3.1 Pro / Claude Opus 4.5) |
| Aggregate synthesis        | ON        | Configured synthesis model                                    |
| Follow-up study generation | ON        | Configured synthesis model                                    |

Each study can override this behavior: Automatic (recommended default), Always enabled (slower interviews but deeper responses), or Always disabled (faster but less thorough synthesis). Disabling reasoning reduces thinking-token use; it does not change the configured synthesis model. Keep in mind that synthesis uses a higher-cost configured model. Monitor costs if you run many interviews.

### Built-in analysis [#built-in-analysis]

* Per-interview synthesis — Automatic extraction of stated vs revealed preferences, themes, and contradictions
* Cross-interview analysis — Pattern identification across all participants
* Aggregate reporting — Themes, outliers, and convergence points
* Follow-up studies — New research questions generated from synthesis findings to iteratively deepen your inquiry

### Link management [#link-management]

When generating participant links, you can set expiration windows (7 days, 30 days, 90 days, or never). You can also toggle link access on or off from the study detail page. Use this to close data collection on a schedule, pause a study, or revoke links if they've been shared beyond your intended sample.

### Security [#security]

* API keys stay server-side, never exposed to participants
* Researcher dashboard is password-protected
* Participant tokens are JWT-signed
* Data stored in encrypted Vercel KV (Redis)

## Host support [#host-support]

OpenInterviewer is a Next.js web platform, not a plugin or MCP server. It runs anywhere you can run a Node app.

<HostSupport
  rows="[
{ host: 'One-click Vercel deployment', status: 'full', note: 'The recommended path. The deploy button below sets env vars and provisions Vercel KV in one flow.' },
{ host: 'Self-hosted Node.js', status: 'full', note: 'Standard Next.js app; deploy to any Node-capable host. You\'ll need to wire your own Redis-compatible store for state.' },
{ host: 'Local development', status: 'full', note: 'bun install && bun run dev' },
{ host: 'Claude Code / Codex CLI / Desktop', status: 'none', note: 'A web platform, not an agent-callable tool. Develop or extend it from any coding agent; agents do not invoke it at runtime.' },
]"
/>

If you're choosing between platforms: Vercel takes about two minutes; self-host if you need data residency control.

## Install [#install]

The fastest path is the one-click Vercel deployment. Open the deployment link, set two environment variables, and the app is usually live in about two minutes.

[Deploy OpenInterviewer on Vercel](https://vercel.com/new/clone?repository-url=https://github.com/linxule/openinterviewer\&env=GEMINI_API_KEY,ADMIN_PASSWORD\&envDescription=API%20key%20for%20Gemini%20and%20admin%20password%20for%20researcher%20access\&envLink=https://aistudio.google.com/apikey\&project-name=openinterviewer\&repository-name=openinterviewer\&stores=%5B%7B%22type%22:%22kv%22%7D%5D)

For local development:

```bash
git clone https://github.com/linxule/openinterviewer.git
cd openinterviewer

bun install
cp .env.example .env.local
# Edit .env.local with your API keys
bun run dev
```

### Environment variables [#environment-variables]

<KeyTable>
  | Variable            | Required | Description                                                                |
  | ------------------- | -------- | -------------------------------------------------------------------------- |
  | `GEMINI_API_KEY`    | Yes      | Google Gemini API key ([get one free](https://aistudio.google.com/apikey)) |
  | `ADMIN_PASSWORD`    | Yes      | Password to protect the researcher dashboard                               |
  | `ANTHROPIC_API_KEY` | No       | Use Claude instead of/alongside Gemini                                     |
  | `AI_PROVIDER`       | No       | `gemini` (default) or `claude`                                             |
  | `GEMINI_MODEL`      | No       | Override default Gemini model (`gemini-2.5-flash`)                         |
  | `CLAUDE_MODEL`      | No       | Override default Claude model (`claude-sonnet-4-5`)                        |
</KeyTable>

Vercel configures KV credentials (`KV_REST_API_URL`, `KV_REST_API_TOKEN`, etc.) automatically when you connect an Upstash Redis store through the Vercel dashboard.

## Architecture [#architecture]

Built on Next.js with a clean separation between researcher and participant flows:

```text title="diagram:openinterviewer-architecture"
OPENINTERVIEWER
      |
      +-- Researcher dashboard
      |     +-- study management
      |     +-- live monitoring
      |     +-- cross-interview analysis
      |
      +-- Participant interface
      |     +-- consent flow
      |     +-- AI-conducted interview
      |     +-- demographic collection
      |
      +-- Backend
            +-- model abstraction
            +-- data persistence
            +-- participant authentication
```

## Methodological considerations [#methodological-considerations]

AI-conducted interviews are a young method. When designing a study, disclose the AI interviewer, check institutional ethics requirements, and expect shorter, more structured conversations. AI interviewers offer consistent coverage; human interviewers offer unexpected depth. The two are strongest together.

## Part of Research Memex [#part-of-research-memex]

OpenInterviewer sits at the data-collection end of the stack. Most of the Toolkit helps you interpret material you already hold; this platform produces the material: consented, structured interview data that arrives as text, ready for the same interpretive work the rest of the stack supports.

* [Interpretive Orchestration](/docs/toolkit/interpretive-orchestration-plugin) — the staged human-AI workflow for analyzing the transcripts this platform collects
* [Memex Plugin](/docs/toolkit/memex-plugin) — session memory that holds the analytic thread as a study accumulates interviews
* [AI Model Reference Guide](/docs/implementation/core-references/ai-model-reference-guide) — background for the per-study model selection above

Carrel status: OpenInterviewer is outside [Carrel](/docs/toolkit/carrel)'s install scope. It is a standalone web platform, deployed on Vercel or self-hosted, not a tool added to a coding agent.