First Version Plan

A launchable scope plan focused on what to prove, the core workflow, feature boundaries, and success signals.

MVP Summary

01 / 07

Signal To Roadmap ingests qualitative customer data (support tickets, call transcripts, internal docs) and uses LLM analysis to cluster recurring pain points and generate prioritized roadmap recommendations. The primary user is a Senior Product Manager at a mid-market B2B SaaS company (500–2K employees) who currently spends hours manually scanning tickets and call notes to find signal. Rather than building four OAuth integrations up front, the MVP accepts data via CSV upload or pasted text, runs it through an LLM clustering pipeline, and presents ranked pain-point themes with anonymized quotes and actionable roadmap recommendations. This MVP validates the single riskiest question: do PMs find LLM-generated synthesis from their real data genuinely useful, or does it feel generic and redundant?

The Bet

02 / 07

Goal

Validate whether product managers will use LLM-generated theme clusters from their uploaded data to support real roadmap prioritization decisions.

Definition of Done

A PM can upload a CSV or paste text from 200+ customer interactions, receive ranked pain-point clusters with anonymized quotes and recommendations, and indicate whether the output is useful (4.0+ / 5.0 average rating from 3+ pilot PMs).

Riskiest Product Assumption

PMs trust and use LLM-generated synthesis over their own manual reading — that the output feels grounded, specific, and credible, not generic.

Riskiest Technical Assumption

An LLM pipeline can produce non-obvious, non-redundant theme clusters from mixed-format customer data (support tickets vs. call transcripts vs. docs) without heavy domain-specific fine-tuning.

Target User & Problem

03 / 07

Primary User

Senior Product Manager at a mid-market B2B SaaS company (Maya persona) who owns roadmap prioritization and currently relies on anecdotal feedback from sales and support teams

Problem

Customer feedback is fragmented across support tools, sales call notes, and internal docs. There is no aggregated, evidence-backed view of what customers actually need, so roadmap decisions are driven by the loudest voice rather than data.

Current Workaround

Manually scanning Zendesk tickets, reading Gong call summaries, maintaining a shared spreadsheet of feature requests that goes stale within weeks, or relying on sporadic Slack messages from CS teams

Desired Outcome

"Show me the top 10 things customers are struggling with this month, backed by real quotes and counts, so I can walk into planning with proof."

Core User Flows

04 / 07

FlowUpload customer dataUser action: Upload CSV or paste text (any source) Value: Gets raw data into the system — the prerequisite for everything Include: CSV upload + freeform text paste; accept any file labeled by source type Exclude: OAuth integrations (Zendesk, Gong, etc.); automatic sync Validation: User successfully uploads 200+ records without errors
FlowLLM analysis pipelineUser action: System processes uploads run LLM clustering Value: Core value — transforms noise into ranked pain themes Include: GPT-4 class clustering with recency weighting; anonymization of quotes Exclude: Multi-model optimization; real-time streaming analysis Validation: Pipeline completes 1,000-record batch in < 10 min at < $2 cost
FlowSignals dashboardUser action: User views ranked pain-point clusters Value: The primary deliverable — a PM's "what should I build?" view Include: Top 10 themes with label, quote count, trend direction, source mix Exclude: Trend-shift detection; "emerging" badges; interactive filtering Validation: PM can identify top 3 pain points in under 30 seconds
FlowTheme detail viewUser action: User clicks cluster to see evidence package Value: Builds credibility — PM needs proof, not just labels Include: Summary paragraph, 5 anonymized quotes with source/date, recommendation Exclude: Charts/timelines; source attribution drill-down Validation: PM rates evidence quality ≥ 4.0/5.0
FlowExport recommendationUser action: User downloads or copies a recommendation Value: Connects insight to action — reduces friction to roadmap adoption Include: Copy-to-clipboard Markdown export of recommendation + evidence Exclude: Jira push; Slack notification; weekly digest email Validation: PM uses export in at least 1 planning meeting
FlowSample/demo modeUser action: User previews output with sample data Value: Convinces cautious PMs the product works before they upload real data Include: Pre-loaded sample dataset showing a realistic signals page Exclude: Interactive demo tour; video walkthrough Validation: ≥ 50% of signups engage with sample data before uploading
FlowAuth and workspaceUser action: User signs up and logs in Value: Basic access control and data isolation Include: Magic link auth via Supabase; single-workspace per signup Exclude: Team invitations, per-seat billing, role management Validation: User completes signup and sees dashboard in under 2 minutes

Key Risks & Assumptions

05 / 07

AssumptionLLM-generated themes are generic/useless to experienced PMsCritical High Test with real data from 3+ PMs; target 4.0/5.0 on "is this useful?" rating
AssumptionPMs unwilling to upload sensitive customer dataHigh Medium Offer pre-redacted sample mode + privacy narrative; measure upload drop-off
AssumptionCold-start: not enough data for meaningful analysisHigh Medium Set 200-record minimum; provide downloadable sample datasets for preview
AssumptionOAuth integration complexity delays everything by 4–6 weeksHigh Low Eliminate all OAuth from MVP — CSV upload and text paste only

Suggested Build Approach

06 / 07

Frontend
Next.js (App Router) + Tailwind + shadcn/ui
Backend
Next.js API routes + Supabase Edge Functions (if needed)
Database
Supabase (PostgreSQL) with RLS
Auth
Supabase Auth (magic link)
AI / API
OpenAI API (GPT-4o for clustering, GPT-4o-mini for filtering)
File Storage
Supabase Storage
Analytics
PostHog (free tier)
Deployment
Vercel (frontend) + Supabase hosted

Tactical shortcuts for speed to market

01

Manage pilot access manually

Approve signups via a Supabase admin table instead of building invite/team management.

02

Pre-redact sample data

Ship a downloadable sample CSV with synthetic customer names and emails to show what the tool can do before real upload.

03

Run LLM jobs synchronously on upload for MVP — no background queue yet. Show a "analyzing…" spinner. Background processing is a fast-follow once volume demands it.

04

Skip billing until 5+ paying pilots confirm value. Use a manual "trial extended" flag in the database.

05

Export as formatted Markdown text that PMs can paste directly into Notion, Linear, or a Jira ticket. Avoid building any integration API in v1.

Validation Plan

07 / 07

First test audience

3–5 senior product managers at mid-market B2B SaaS companies (500–2K employees) who manage roadmaps and are currently vocal about fragmented customer feedback.

How to find them

LinkedIn DM to PMs who post about "voice of customer" or "roadmap prioritization"

Research plan

R01

LLM output quality test (Step 1): send 3 PMs sample analysis from their own data

Question: Are LLM-generated themes genuinely useful, or generic? Signal: Average "Usefulness" rating ≥ 4.0/5.0 across 3 PMs Decision: Proceed to build full MVP or iterate prompts

R02

Upload friction test: observe 3 pilot users uploading CSV

Question: Will PMs upload real customer data, or do they hesitate? Signal: ≥ 2 of 3 users upload real (not sample) data within 5 minutes of signup Decision: Decide whether to add OAuth integrations immediately

R03

"Would you pay?" conversation: ask each pilot PM face-to-face

Question: Would a per-seat SaaS model work for this? Signal: ≥ 3 of 5 say they would pay $30–50/seat/month Decision: Validate business model before building Stripe

R04

Export-to-action test: follow up 1 week after export

Question: Do PMs actually use the recommendations in planning? Signal: ≥ 1 PM references a Signal To Roadmap recommendation in a real planning meeting or Jira ticket Decision: Validate product is a workflow tool, not a curiosity