jasoncolapietro/suede-customer-research
Suede-owned customer-research discipline for interview design, transcript and ticket synthesis, review and forum mining, quote banks, jobs, and evidence-backed personas. Use when discovering or synthesizing what a defined customer segment actually says, does, needs, and resists. NOT FOR: competitor-only profiling (use suede-competitor-profiling), writing final marketing copy (use suede-copy), or deciding product priorities without product evidence (use suede-product-marketing).
npx skills add https://github.com/JasonColapietro/suede-creator-skills --skill suede-customer-research
Use this Suede customer-research playbook to ground positioning, product, and copy in traceable customer evidence rather than assumption.
Check for product marketing context first:
If .agents/product-marketing.md exists (or .claude/product-marketing.md, or the legacy product-marketing-context.md filename, in older setups), read it before asking questions. Use that context to skip questions already answered.
You have raw research material (transcripts, surveys, reviews, tickets). Your job is to extract signal.
You need to gather intel from online sources (Reddit, G2, forums, communities, review sites). Your job is to know where to look and what to extract.
Most engagements combine both. Establish which mode applies before proceeding.
Customer interview / sales call transcripts
Survey results
Customer support conversations
Win/loss interviews and churned customer notes
NPS responses
For each asset, extract:
After extracting from individual assets:
Label every insight with a confidence level before presenting it:
| Confidence | Criteria |
|------------|----------|
| High | Theme appears in 3+ independent sources; mentioned unprompted; consistent across segments |
| Medium | Theme appears in 2 sources, or only prompted, or limited to one segment |
| Low | Single source; could be an outlier; needs validation |
Recency window: Weight sources from the last 12 months more heavily. Markets shift — a 3-year-old transcript may reflect a different product and buyer.
Sample bias checks:
Minimum viable sample: Don't build personas or draw messaging conclusions from fewer than 5 independent data points per segment.
Online communities are where customers speak without a filter. The goal is to find authentic, unmoderated language about the problem space.
Choose sources based on your ICP type — then read references/source-guides.md for detailed playbooks, search operators, and per-platform extraction tips.
| ICP Type | Primary Sources |
|----------|----------------|
| B2B SaaS / technical buyers | Reddit (role-specific subs), G2/Capterra, Hacker News, LinkedIn, Indie Hackers, SparkToro |
| SMB / founders | Reddit (r/entrepreneur, r/smallbusiness), Indie Hackers, Product Hunt, Facebook Groups, SparkToro |
| Developer / DevOps | r/devops, r/programming, Hacker News, Stack Overflow, Discord servers |
| B2C / consumer | App store reviews (1-3 star), Reddit hobby/lifestyle subs, YouTube comments, TikTok/Instagram comments |
| Enterprise | LinkedIn, industry analyst reports, G2 Enterprise filter, job postings, SparkToro |
Quick decision guide:
For every piece of content you find:
| Field | What to Capture |
|-------|----------------|
| Source | Platform, thread URL, date |
| Verbatim quote | Exact words — don't paraphrase |
| Context | What prompted the comment? |
| Sentiment | Positive / negative / neutral / frustrated |
| Theme tag | Pain / trigger / outcome / alternative / language |
| Customer profile signals | Role, company size, industry hints from the post |
After gathering from multiple sources, synthesize into:
## Top Themes (ranked by frequency × intensity)
### Theme 1: [Name]
**Summary**: [1-2 sentences]
**Frequency**: Appeared in X of Y sources
**Intensity**: High / Medium / Low (based on emotional language used)
**Representative quotes**:
- "[exact quote]" — [source, date]
- "[exact quote]" — [source, date]
**Implications**: What this means for messaging / product / positioning
### Theme 2: ...
Early-stage products (or new categories) lack first-party review data. Don't invent personas — walk outward through proxy sources, in order:
Personas built this way are provisional: tag each with its proxy source, and replace proxy evidence with first-party evidence as real reviews arrive.
Personas should be built from research, not invented. Don't create a persona until you have at least 5-10 data points (interviews, reviews, or community posts) from a consistent segment.
## [Persona Name] — [Role/Title]
**Profile**
- Title range: [e.g., "Marketing Manager to VP of Marketing"]
- Company size: [e.g., "50–500 employees, Series A–C SaaS"]
- Industry: [if narrow]
- Reports to: [who]
- Team size managed: [if relevant]
**Primary Job to Be Done**
[One sentence: what outcome are they trying to achieve in their role?]
**Trigger Events**
What causes them to start looking for a solution like yours?
- [trigger 1]
- [trigger 2]
**Top Pains**
1. [Pain — in their words if possible]
2. [Pain]
3. [Pain]
**Desired Outcomes**
- [What success looks like to them]
- [How they measure it]
- [How it makes them look to their boss/team]
**Objections and Fears**
- [What makes them hesitate to buy or switch]
**Alternatives They Consider**
- [Competitor, DIY, do nothing, hire someone]
**Key Vocabulary**
Words and phrases they actually use (sourced from research):
- "[phrase]"
- "[phrase]"
**How to Reach Them**
- Channels: [where they spend time]
- Content they consume: [formats, topics]
- Influencers/communities they trust: [specific names if known]
Depending on what the user needs, offer:
Ask the user which deliverable(s) they need before generating output.
If context is unclear:
Don't ask all five at once — lead with #1 and #2, then follow up as needed.
suede-copy.suede-competitor-profiling.suede-product-marketing.suede-churn-prevention, suede-cold-email, suede-ads, or suede-content-strategy.suede-customer-research.Take jasoncolapietro/suede-customer-research from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.