Synthesize customer feedback into actionable product themes. CLI + MCP server.
Point buildnext at your interview transcripts, Canny board, Slack channels, or Airtable tables. It uses an LLM to find cross-cutting themes, cite exact quotes as evidence, and suggest what to build next.
npm install -g buildnext# Create a config file
buildnext init
# Set your API key
export ANTHROPIC_API_KEY=sk-ant-...
# Put interview transcripts in ./feedback/
# Run synthesis
buildnext run- Ingests customer data from multiple sources (files, Canny, Slack, Airtable, Gong)
- Synthesizes themes across all feedback using an LLM
- Prioritizes themes into ranked feature candidates with effort/impact estimates
- Generates specs with user stories, acceptance criteria, and data model suggestions
- Breaks down tasks into implementation-ready work items for developers or coding agents
The full pipeline: customer feedback → themes → features → specs → dev tasks. Each step is independently useful. The output is markdown. Pipe it, save it, or read it in your terminal.
| Source | What it pulls | Auth |
|---|---|---|
| Files | .md, .txt, .docx from a directory | None |
| Canny | Feature requests, votes, comments | API key |
| Slack | Messages from specific channels | Bot token |
| Airtable | Records from any table | Personal access token |
| Gong | Call transcripts | Access key + secret |
Create .buildnextrc.json in your project root:
{
"llm": {
"provider": "anthropic",
"model": "claude-sonnet-4-20250514"
},
"sources": {
"files": {
"directory": "./feedback",
"extensions": [".md", ".txt", ".docx"]
},
"canny": {
"apiKey": "your-key",
"boardIds": ["board-id"],
"since": "2025-01-01"
},
"slack": {
"botToken": "xoxb-your-token",
"channels": ["C0123FEEDBACK"],
"since": "2025-01-01"
},
"airtable": {
"apiKey": "pat...",
"baseId": "appXXX",
"tableId": "tblXXX",
"contentFieldId": "fldXXX",
"titleFieldId": "fldXXX",
"dateFieldId": "fldXXX"
}
},
"output": {
"maxThemes": 10,
"minEvidence": 2
}
}API keys can also be set via environment variables: ANTHROPIC_API_KEY, OPENAI_API_KEY, CANNY_API_KEY, SLACK_BOT_TOKEN, AIRTABLE_API_KEY.
# Synthesis (step 1)
buildnext run # Ingest feedback and synthesize themes
buildnext run --sources files,canny # Only specific sources
buildnext run --format json # JSON output
buildnext run --output report.md # Write to file
buildnext run --dry-run --verbose # Count items without calling LLM
buildnext run --no-cache # Skip cache
# Prioritization (step 2)
buildnext prioritize # Rank themes into feature candidates
buildnext prioritize --max 5 # Top 5 features only
buildnext prioritize --context "B2B SaaS, usage-based billing"
# Spec generation (step 3)
buildnext spec # Spec for the top-ranked feature
buildnext spec --feature 2 # Spec for feature at index 2
buildnext spec --output spec.md # Write to file
# Task breakdown (step 4)
buildnext tasks # Break down top feature into dev tasks
buildnext tasks --feature 1 # Tasks for feature at index 1
buildnext tasks --context "Next.js + NestJS monorepo"
# Utilities
buildnext init # Create config file
buildnext sources # List configured sources
buildnext cache clear # Clear cached results
buildnext serve # Start MCP serverbuildnext can run as an MCP server for Claude Code, Cursor, or any MCP client.
buildnext servesynthesize_feedback— Ingest feedback and synthesize themeslist_sources— Show configured sourcesget_themes— Return themes from the last synthesisprioritize_features— Rank themes into feature candidates with scoresgenerate_spec— Generate a product spec for a featuregenerate_tasks— Break down a spec into implementation tasks
buildnext://report/latest— The most recent synthesis report
Add to your Claude Code MCP settings:
{
"mcpServers": {
"buildnext": {
"command": "npx",
"args": ["buildnext", "serve"]
}
}
}Then ask: "What should we build next?" or "Prioritize our top features" or "Write a spec for the #1 feature and break it into tasks."
- Anthropic (Claude) — default, best for structured analysis
- OpenAI (GPT-4o) — set
"provider": "openai"in config
# Product Feedback Synthesis
Generated: 2026-03-31 | Model: claude-sonnet-4-20250514 | 70 items from files, canny
## Themes
### 1. Cost Visibility is the Top Pain Point (high urgency)
Customers consistently struggle to understand per-customer and per-feature
costs. They can see total spend but can't attribute it.
Mentioned in 12 items.
**Evidence:**
- "I have no idea which customer is actually profitable" — interview-sarah.md
- "The bill just says $4,000. I need to know WHY it's $4,000" — canny
**Suggested Actions:**
- Add per-customer cost breakdown to the dashboard
- Build a cost attribution report that maps usage to revenue# Step 1: Synthesize themes from customer feedback
buildnext run --output themes.md
# Step 2: Prioritize into feature candidates
buildnext prioritize --context "B2B SaaS, usage-based billing" --output features.md
# Step 3: Generate spec for the top feature
buildnext spec --output spec.md
# Step 4: Break into dev tasks
buildnext tasks --context "Next.js frontend, NestJS backend" --output tasks.mdOr via MCP in Claude Code / Cursor — just ask naturally:
"Synthesize our customer feedback, prioritize features, write a spec for the top one, and break it into tasks."
The MCP server maintains pipeline state across tool calls, so each step feeds into the next automatically.
Apache 2.0