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: 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

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

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.

OperationModel Used
Interview responses and greetingThe study's selected model
Per-interview synthesisThe study's current selected model
Aggregate synthesisThe study's current selected model
Follow-up study generationThe 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.

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: 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 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

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 dev

Upgrading 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

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

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.

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