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: 5.4.2 (opens in a new tab)
Choose Gemini, Claude, OpenAI, or OpenRouter for each study.
Version 5 adds study exploration and durable Cloudflare analysis. Cloudflare is the recommended self-hosting option. Node or Vercel installations use Upstash. The project's own instance offers a keyless /demo, not hosted researcher accounts.
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
Use it for:
- pilot studies — test protocols before human interviews
- larger samples — collect data without scheduling constraints
- exploratory research — gather perspectives on emerging topics
- cross-timezone studies — let participants choose when to join
- complementary data — compare findings with human interviews
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
- Explore this study — Select a saved dataset or interview scope and ask evidence-linked questions without silently sampling
- 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.
Languages and voice input
Studies can offer English, Simplified Chinese, French, Japanese, Korean, and Spanish. Participants choose a language during consent. Screens and questions use that language. Review consent text in every offered language.
ANALYSIS_LANGUAGE sets the installation's analysis language, defaulting to English. It affects new analysis across studies. Saved analysis changes only when rerun. Quotations stay in the participant's language.
Version 5.4.2 improves voice readiness and preserves unfinished speech. Voice input is off by default. When enabled, participants check and edit transcribed text before sending. Standalone transcription uses Cloudflare Workers AI. Browser dictation may use the browser vendor’s service. Device mode uses supported desktop Chrome language packs locally, without cloud fallback. Unsupported devices retain typed input. Choose a method covered by your consent terms. See the voice input guide (opens in a new tab).
Model selection
Gemini Models
- gemini-3.8-flash — Current default
- gemini-3.7-flash — Still offered by the application; deprecated by Google and routed to 3.8
- gemini-3.1-pro-preview — Higher-capability option (preview)
Claude Models
- claude-haiku-4-5 — Optimized for speed
- claude-sonnet-5-5 — Current default
- claude-opus-5 / claude-fable-5 — Existing saved-study IDs remain accepted
- claude-sonnet-4-5 / claude-opus-4-5 — Existing saved-study IDs remain accepted by the application; this does not guarantee provider availability
Google's Gemini 3.7 lifecycle notice (opens in a new tab) applies to direct Gemini requests. The upstream menu still names 3.7; use 3.8 for new studies. Gateway availability and routing require their own check.
Anthropic has deprecated Sonnet 4.5, with retirement scheduled for November 30, 2026. Migrate saved studies before that date; see the provider lifecycle notice (opens in a new tab).
The direct-provider IDs above are distinct from client/gateway aliases. OpenAI's
current native default is gpt-6.1-sol, with GPT-6 Luna available as a lower-cost
choice. The OpenRouter default is openai/gpt-5.6-terra; separately, the native Claude Sonnet
5.5 ID maps to anthropic/claude-sonnet-5.5 on Vercel AI Gateway. 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 (opens in a new tab),
Gemini API pricing (opens in a new tab),
OpenAI's model docs (opens in a new tab), and
OpenRouter's model catalogue (opens in a new tab).
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.
Automatic requests reasoning for direct-provider synthesis unless you override it. Gemini maps off to low thinking. Other adapters disable reasoning where supported. Gateway uses provider defaults. These settings do not guarantee that reasoning is off or select another 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.
Explore and workflow controls
Version 5's Explore view asks questions against a selected study dataset and saves the question, source manifest, scope counts, timestamps, and requested and served model provenance. A request is bounded before inference: it can include at most 100 interviews and 256 KiB of exact interview records, with a separate 320 KiB prompt bound. The system does not silently sample a larger selection. Exploration has no cross-study chat, vector index, or web search.
Study lifecycle controls now include pause/resume, link revocation, duplicate-for- testing, explicit deletion confirmations, and resumable large-store deletion. A study's saved revision governs participant links and analysis provenance; editing the study can invalidate previously issued links.
Projects and exports
Standalone installations group studies into projects. Hosted accounts keep a flat list. Deleting a project moves its studies to Ungrouped without deleting interviews.
Study and workspace ZIPs include interview JSONL, CSVs for interviews and turns, and historical profile labels in analysis/. Use JSONL for verbatim quotations. CSVs escape text that spreadsheets could read as formulas. Study and project exports also offer Markdown transcripts. Check consent and provider disclosures before sharing with another AI service. The research guide (opens in a new tab) defines the files.
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. It stores studies in each researcher's Upstash database.
- Standalone mode stores studies in your Upstash database or Cloudflare workspace.
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 Cloudflare | Full support | Recommended v5 target: OpenNext, a SQLite Durable Object workspace, and a Queue for background analysis. |
| 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
For self-hosting, follow the Cloudflare installation guide (opens in a new tab). Use the Node or Vercel guide (opens in a new tab) if you prefer Upstash. Follow the hosted researcher guide (opens in a new tab) if an operator provides that service.
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 devUpgrade notes from 3.x and 4.x
Version 3 separates transcript saving from analysis. Custom participant clients must use /api/interviews/save. /api/synthesis accepts researcher previews only. Exports can contain synthesis: null while analysis is pending or failed. Researchers can retry through POST /api/interviews/[id]/analyze?studyId=....
Save the aggregate on the server before generating follow-ups. Regenerate older results saved only in the browser. Existing synthesis remains readable. Coordinate upgrades around collection, and never reload a participant tab with unsaved responses. See the 3.0 release notes (opens in a new tab) for the full contract.
Version 4 introduced Cloudflare standalone and gateway transport. Version 5 (opens in a new tab) added saved exploration and workflow controls. Use the guided Cloudflare installer and its release checks to upgrade.
Back up before upgrading to 5.3. Cloudflare schema 3 cannot be downgraded. Node cannot safely return to 5.2 with upgraded Redis. Version 5.3 also refuses 5.4 device-voice studies. Read the upgrade runbook (opens in a new tab) before changing an active installation.
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 also need separate secrets for sessions, participant tokens, rate limits, and credential encryption where applicable. See the upstream variable tables (opens in a new tab).
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
Disclose the AI interviewer and check institutional ethics requirements. Expect shorter, more structured conversations than human interviews. Treat these as complementary data and retain responsibility for interpretation.
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