Turns Claude into a structured interviewer that tracks Q&As, decisions, and checkpoints across sessions. The server exposes four tools: start_interview loads Bayesian-scored checkpoints from a shared Supabase database, record captures Q&As with checkpoint coverage, get_context shows progress and uncovered topics ranked by decision rate, and end_interview uploads metadata to evolve the system. Each category (like "saas-pricing" or "api-design") builds a collectively learned interview path where checkpoints are scored by how often they lead to decisions, not just how often they're discussed. Only metadata gets shared (checkpoint names, counts, positions), never your actual conversation content. Useful when you want Claude to systematically explore a problem space and benefit from patterns other users discovered.
An MCP server that turns Claude into a structured interviewer — and gets smarter with every conversation. Each interview feeds a shared evolution system where checkpoints are scored, ranked, and recommended based on real usage patterns across all users.
This isn't just an interview tool. It's a collectively evolving knowledge system.
Every time anyone runs an interview in a category (e.g., "saas-pricing"), the system learns:
Session 1: You explore freely → decisions become new checkpoints
Session 2: Checkpoints load → Claude prioritizes what matters
Session 5: Bayesian scores stabilize → the interview path optimizes itself
Session 20: Community patterns emerge → everyone benefits from collective experience
1. Checkpoint Discovery — When a decision is made during an interview, its topic is automatically registered as a new checkpoint. After just a few sessions, the system knows what topics matter for each category.
2. Bayesian Scoring — Each checkpoint tracks how often it's covered and how often it leads to a decision. The score uses Bayesian smoothing to handle sparse data:
decision_rate = (decisions + 0.6) / (times_covered + 2)
The prior (0.6/2 = 30% base rate) ensures new checkpoints start with a reasonable score. After ~5 sessions, real data dominates.
3. Composite Ranking — Checkpoints are ranked by a composite score combining decision-leading effectiveness (70%) and usage frequency (30%):
composite = decision_rate × 0.7 + normalized_usage × 0.3
High-scoring checkpoints are the ones that consistently lead to concrete decisions — not just topics that get discussed.
4. Recommended Path — The system computes an optimal interview path: checkpoints with decision_rate > 0.2, sorted by their average position in past sessions. This tells Claude not just what to ask, but when to ask it.
5. Community Evolution — All metadata flows to a shared database. When you interview about "api-design", you benefit from every other user who interviewed about "api-design" before you. The checkpoints, scores, and paths evolve collectively.
| Shared (metadata only) | Never shared |
|---|---|
| Category names (e.g., "saas-pricing") | Your actual questions and answers |
| Checkpoint names (e.g., "pricing-model") | Decision details and reasoning |
| Usage counts, scores, positions | Any personal or project-specific content |
npx claude-interview-mode
Or install globally:
npm install -g claude-interview-mode
Add to your project's .mcp.json:
{
"mcpServers": {
"interview-mode": {
"type": "stdio",
"command": "npx",
"args": ["-y", "claude-interview-mode"]
}
}
}
Restart your Claude Code session to load the MCP server. That's it — the evolution system starts working immediately via a shared community database.
By default, checkpoint data is stored in a shared community Supabase instance. If you want your own private database:
{
"mcpServers": {
"interview-mode": {
"type": "stdio",
"command": "npx",
"args": ["-y", "claude-interview-mode"],
"env": {
"SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_ANON_KEY": "your-anon-key"
}
}
}
}
Then run supabase/schema.sql in your Supabase SQL Editor to create the tables.
Start an interview with Claude Code:
> Let's do an interview about my SaaS pricing strategy
Claude will lead the conversation. As the interview progresses:
| Tool | Description |
|---|---|
start_interview | Begin a session — loads scored checkpoints and recommended path |
record | Record a Q&A or decision, with checkpoint coverage tracking |
get_context | Review progress, see uncovered checkpoints ranked by score |
end_interview | End session, upload metadata, evolve the checkpoint system |
You ←→ Claude ←→ MCP Server (interview-mode)
│
├─ read (anon key, read-only)
│ └→ checkpoints, scores, patterns
│
└─ write (Edge Function, validated)
└→ metadata, checkpoint updates, score recalculation
│
Supabase (shared community DB)
4 database tables power the evolution:
| Table | Purpose |
|---|---|
checkpoints | Checkpoint dictionary per category (name, usage count, decision count) |
checkpoint_scores | Bayesian scores per checkpoint (decision rate, avg position, samples) |
interview_patterns | Coverage sequences per session (which checkpoints, in what order) |
interview_metadata | Session summaries (category, counts, duration) |
Security:
git clone https://github.com/teabagkim/claude-interview-mode.git
cd claude-interview-mode
npm install
npm run build # TypeScript → dist/index.js
npm run dev # Watch mode
MIT