Research Platforms
OpenInterviewer: Qualitative Interviews
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 an opaque participant link. Participants then engage with an AI interviewer that adapts based on their responses, while you review transcripts and synthesis in a dashboard.
PLATFORMXule LinNext.js / Node.js 24.19+
Current release: 3.0.0
AI providers: Gemini, Claude, OpenAI, or OpenRouter, with per-study model selection. A keyless scripted demo is available separately from hosted researcher accounts and self-hosted standalone deployments.
Deployment: choose a hosted researcher account with bring-your-own provider and Upstash credentials, or self-host the standalone app. The public /demo needs neither.
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.
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
For researchers
- Create a study — Define research questions, participant profiles, and interview mode
- Configure the interviewer — Choose structured, standard, or exploratory mode; select your AI model
- Share the link — Participants access via a simple URL (with optional expiration)
- Monitor and analyze — Review saved transcripts and their background analysis; retry unfinished analysis from the dashboard
- Generate follow-ups — Create new studies based on synthesis findings to dig deeper
For participants
- Open the link — No account or app required
- Consent — Standard consent flow
- Conversation — Natural dialogue with an AI interviewer that adapts to responses
- Demographics — Collected conversationally, not as a separate form
- Save — Choose Continue to save interview and wait for confirmation before closing the tab
The transcript is saved before analysis begins. If saving fails, keep the tab open and choose Retry save. Once the save is confirmed, analysis can remain pending or fail without losing the saved transcript. Researchers can customize the thank-you text in study setup.
Tools
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 |
Interviewer manner
Interviewer Manner offers Neutral, Warm, Formal, Plain language, and Concrete incidents presets plus editable instructions. These shape the greeting and interview questions separately from Interview Structure's coverage/depth modes. Save the study before using Preview. Manner edits advance the study revision and invalidate existing participant links, so tune them before collection or on a scratch study. Saved interviews retain the manner instructions used at collection.
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.
Gemini Models
- gemini-3.8-flash — Newer Flash option
- gemini-3.7-flash — Balanced capability and speed (default)
- gemini-2.5-pro — Higher quality responses
- gemini-2.5-flash — Fast, cost-effective
- gemini-3.1-pro-preview — Higher-capability option (preview)
Claude Models
- claude-haiku-4-5 — Optimized for speed
- claude-sonnet-5 — Balanced capability and speed (default)
- claude-opus-5 — Highest capability
- claude-fable-5 — Creative and expressive
- claude-sonnet-4-5 / claude-opus-4-5 — Existing saved-study IDs remain accepted
The direct-provider IDs above are distinct from client/gateway aliases. OpenAI's native IDs are gpt-5.6-luna, gpt-5.6-terra, and gpt-5.6-sol; OpenRouter uses bounded slugs such as openai/gpt-5.6-terra, anthropic/claude-sonnet-5, and google/gemini-3.7-flash. 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, Gemini API pricing, OpenAI's model docs, and OpenRouter's model catalogue.
Model priority: per-study UI selection takes precedence over environment variable defaults.
AI reasoning mode
The study's selected provider and model drive interview turns, per-interview synthesis, aggregate analysis, and follow-up generation. There is no separate fixed synthesis model. Background analysis uses the study's current configuration, which may differ from the configuration used when an earlier interview was collected.
| Operation | Model Used |
|---|---|
| Interview responses and greeting | The study's selected model |
| Per-interview synthesis | The study's current selected model |
| Aggregate synthesis | The study's current selected model |
| Follow-up study generation | The parent study's current selected model |
For direct-provider adapters, Automatic requests reasoning for synthesis-family operations unless the study overrides it. The exact control is provider-specific: Gemini maps an explicit off setting to low thinking, while other adapters request disabled thinking or no reasoning effort where supported. It is not a universal off switch, and the Gateway adapter currently leaves reasoning controls at provider defaults. None of these settings selects a different model.
Built-in analysis
- Per-interview synthesis — Background extraction of stated vs revealed preferences, themes, and contradictions after the transcript is saved
- 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
Use Run analysis on an interview, or the study's pending-analysis batch action, to recover unfinished analysis. Saved transcripts and JSON remain available while analysis is pending or failed. Aggregate analyses can also be saved and reopened; a newly generated result is not necessarily a saved result.
Synthesis citations carry a quote and a 1-based transcript-turn index; aggregate citations also identify the interview. The interface checks these claims against participant turns and distinguishes matched excerpts from unverified citations. A text match helps locate evidence; it does not validate the interpretation.
New interviews separately record the provider and model configured for the conversation and the execution provenance of later analysis. Older records may lack those fields; the current study configuration must not stand in for missing historical provenance.
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
- API keys stay server-side, never exposed to participants
- Researcher dashboard is password-protected
- Participant links use opaque codes exchanged for short-lived, HttpOnly session cookies
- Hosted mode encrypts researcher credentials in the platform database and stores each researcher's studies in their Upstash database; standalone mode uses the Upstash database you configure
Host support
OpenInterviewer is a Next.js web platform, not a plugin or MCP server. It runs anywhere you can run a Node app.
| Host | Support | Notes |
|---|---|---|
| Hosted researcher account | Full support | The platform operator runs the app; researchers add their own provider and Upstash credentials in the UI. |
| Self-hosted Node.js | Full support | Standard Next.js app; deploy to any Node-capable host and configure an Upstash Redis store plus secrets. |
| Local development | Full support | Node.js ≥24.19; npm ci && npm run dev |
| Claude Code / Codex CLI / Desktop | No support | 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 paths: hosted mode removes deployment administration for researchers; self-host if you need infrastructure and data-residency control.
Install
Choose the hosted researcher flow when you want the operator to manage the platform, or follow the standalone deployment runbook when you need your own infrastructure.
For local development:
git clone https://github.com/linxule/openinterviewer.git
cd openinterviewer
npm ci
cp .env.example .env.local
# Edit .env.local with your API keys
npm run setup:check -- --mode standalone
npm run devUpgrading from 2.x
Version 3.0 separates transcript completion from analysis completion. Custom participant clients must save through /api/interviews/save; /api/synthesis now accepts researcher previews only and returns 403 to participant callers. A completed interview can have synthesis: null while analysis is pending or failed, so export consumers must handle those states separately. Researchers can request analysis through POST /api/interviews/[id]/analyze?studyId=....
Follow-up generation uses the aggregate saved on the server. Regenerate an older browser-only aggregate before creating a follow-up study. Existing interviews with synthesis remain readable without a backfill. Coordinate deployment around active collection because older participant tabs use the previous completion protocol; do not reload a tab with unsaved responses. The 3.0 release notes describe the full upgrade contract.
Environment variables
| Variable | Use | Description |
|---|---|---|
DEPLOYMENT_MODE | Hosted or standalone | Selects the deployment contract. |
AI_TRANSPORT | Hosted or standalone | direct for researcher BYOS; gateway is also available for standalone Vercel deployments. |
APP_BASE_URL | Hosted or standalone | Stable HTTPS origin for OAuth callbacks and participant links. |
PLATFORM_KV_REST_API_URL / PLATFORM_KV_REST_API_TOKEN | Hosted | Platform-owned Upstash store for accounts and encrypted credentials. |
KV_REST_API_URL / KV_REST_API_TOKEN | Standalone | Your Upstash REST URL and write-capable token. |
GEMINI_API_KEY, ANTHROPIC_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY | Direct transport | Provider keys; configure the provider(s) you intend to use. |
AI_PROVIDER | Standalone default | gemini, claude, openai, or openrouter. |
GEMINI_MODEL / CLAUDE_MODEL / OPENAI_MODEL / OPENROUTER_MODEL | Optional | Provider-specific interview-turn overrides. |
Hosted researchers add their own provider keys and Upstash credentials in the authenticated setup UI. Standalone deployments must also configure independent session, participant-token, rate-limit, and (where applicable) credential-encryption secrets; see the upstream variable tables.
Architecture
Built on Next.js with a clean separation between researcher and participant flows:
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
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
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 — the staged human-AI workflow for analyzing the transcripts this platform collects
- Memex Plugin — session memory that holds the analytic thread as a study accumulates interviews
- AI Model Reference Guide — background for the per-study model selection above
Carrel status: OpenInterviewer is outside Carrel's install scope. It is a standalone web platform, deployed on Vercel or self-hosted, not a tool added to a coding agent.
cite this page
Lin, X. (2026). OpenInterviewer: Qualitative Interviews. Research Memex. https://research-memex.org/docs/toolkit/openinterviewer
@misc{docs-toolkit-openinterviewer-2026,
author = {Xule Lin},
title = {OpenInterviewer: Qualitative Interviews},
year = {2026},
howpublished = {\url{https://research-memex.org/docs/toolkit/openinterviewer}},
note = {ORCID: 0000-0001-7885-4194}
}one renderingthe source remains