Skip to content

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+

Sourcegithub.com/linxule/openinterviewer ↗

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

  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 — Review saved transcripts and their background analysis; retry unfinished analysis from the dashboard
  5. Explore this study — Select a saved dataset or interview scope and ask evidence-linked questions without silently sampling
  6. Generate follow-ups — Create new studies based on synthesis findings to dig deeper

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
  5. 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

ModeBest ForAI Behavior
StructuredConfirmatory researchFollows predefined questions closely
StandardBalanced explorationFollows guide with adaptive follow-ups
ExploratoryDiscovery researchFree-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.

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: which research environments this tool works in
HostSupportNotes
Hosted researcher accountFull supportThe platform operator runs the app; researchers add their own provider and Upstash credentials in the UI.
Self-hosted CloudflareFull supportRecommended v5 target: OpenNext, a SQLite Durable Object workspace, and a Queue for background analysis.
Self-hosted Node.jsFull supportStandard Next.js app; deploy to any Node-capable host and configure an Upstash Redis store plus secrets.
Local developmentFull supportNode.js ≥24.19; npm ci && npm run dev
Claude Code / Codex CLI / DesktopNo supportA 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 dev

Upgrade 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

VariableUseDescription
DEPLOYMENT_MODEHosted or standaloneSelects the deployment contract.
AI_TRANSPORTHosted or standalonedirect for researcher BYOS; gateway is also available for standalone Vercel deployments.
APP_BASE_URLHosted or standaloneStable HTTPS origin for OAuth callbacks and participant links.
PLATFORM_KV_REST_API_URL / PLATFORM_KV_REST_API_TOKENHostedPlatform-owned Upstash store for accounts and encrypted credentials.
KV_REST_API_URL / KV_REST_API_TOKENStandaloneYour Upstash REST URL and write-capable token.
GEMINI_API_KEY, ANTHROPIC_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEYDirect transportProvider keys; configure the provider(s) you intend to use.
AI_PROVIDERStandalone defaultgemini, claude, openai, or openrouter.
GEMINI_MODEL / CLAUDE_MODEL / OPENAI_MODEL / OPENROUTER_MODELOptionalProvider-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 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

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.

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