Aggregate customer feedback from multiple sources — support tickets, NPS comments, Slack messages, G2 reviews, call transcripts, survey responses — into a unified VoC report with theme clustering, sentiment analysis, trend detection, and actionable recommendations for product, marketing, and CS teams. Chains review-site-scraper for public review data.
npx gooseworks install --claude # Then in your agent: /gooseworks <prompt> --skill voice-of-customer-synthesizer
Turn scattered customer feedback into a single source of truth. Aggregates signals from every source you have, clusters them into themes, and produces a report that product, marketing, and CS teams can actually act on.
Built for: Startups where customer feedback lives in 6 different places and nobody has time to synthesize it. The founder says "what are customers saying?" and nobody has a clear answer. This skill produces that answer.
From the provided inputs, normalize all feedback into a standard format:
SOURCE | DATE | CUSTOMER | SEGMENT | FEEDBACK_TEXT | SENTIMENT | CATEGORYSentiment classification per item:
If product is on review platforms:
Chain: review-site-scraper for G2, Capterra, Trustpilot
Filter: reviews from the target time periodExtract: rating, review text, reviewer role/company size, date, pros, cons.
Search: "[product name]" feedback OR review OR "switched to" OR "stopped using"
Search: "[product name]" site:reddit.com OR site:twitter.comGroup all feedback items into themes using a bottom-up approach:
THEME: [Name — e.g., "Onboarding Complexity"]
FREQUENCY: [N mentions across M sources]
SENTIMENT: [Predominantly positive/neutral/negative]
TREND: [↑ Growing / → Stable / ↓ Declining vs prior period]
REPRESENTATIVE QUOTES:
- "[Exact quote]" — [Source, Customer segment, Date]
- "[Exact quote]" — [Source, Customer segment, Date]
- "[Exact quote]" — [Source, Customer segment, Date]
CUSTOMER SEGMENTS AFFECTED:
- [Segment 1: e.g., "New customers in first 30 days"]
- [Segment 2: e.g., "Enterprise accounts"]
ROOT CAUSE HYPOTHESIS:
[1-2 sentences: Why is this coming up? What's the underlying issue?]
IMPACT:
- On retention: [High/Medium/Low]
- On expansion: [High/Medium/Low]
- On acquisition: [High/Medium/Low]Overall Sentiment Distribution:
Positive: [N] items ([X%]) ████████░░
Neutral: [N] items ([X%]) ████░░░░░░
Negative: [N] items ([X%]) ██░░░░░░░░
Critical: [N] items ([X%]) █░░░░░░░░░| Source | Volume | Avg Sentiment | Top Theme |
|---|---|---|---|
| Support tickets | [N] | [Pos/Neg score] | [Theme] |
| NPS comments | [N] | [Score] | [Theme] |
| G2 reviews | [N] | [Score] | [Theme] |
| Slack | [N] | [Score] | [Theme] |
| Calls | [N] | [Score] | [Theme] |
Insight: Different sources often reveal different stories. Support tickets skew negative (problems). Reviews skew bipolar (love/hate). Calls reveal nuance. Note where themes appear across sources for highest confidence.
| Customer Segment | Dominant Sentiment | Top Request | Key Pain |
|---|---|---|---|
| [New customers] | [Sentiment] | [Request] | [Pain] |
| [Power users] | [Sentiment] | [Request] | [Pain] |
| [Enterprise] | [Sentiment] | [Request] | [Pain] |
| [Churned] | [Sentiment] | [Request] | [Pain] |
Compare against prior period (if available):
| Theme | Prior Period | This Period | Trend | Alert |
|---|---|---|---|---|
| [Theme 1] | [N mentions] | [N mentions] | [↑X%] | [New/Growing/Stable/Declining] |
| [Theme 2] | ... | ... | ... | ... |
New themes this period: [Themes that weren't present before] Resolved themes: [Themes that decreased significantly — things you fixed]
| Priority | Theme | Recommendation | Evidence Strength |
|---|---|---|---|
| P0 | [Theme] | [Specific action] | [N mentions, M sources, includes churn signals] |
| P1 | [Theme] | [Action] | [Evidence] |
| P2 | [Theme] | [Action] | [Evidence] |
| Action | Theme | Expected Impact |
|---|---|---|
| [Create help article for X] | [Theme] | Deflect ~[N] tickets/month |
| [Add onboarding step for Y] | [Theme] | Reduce confusion for new users |
| [Proactive outreach to segment Z] | [Theme] | Prevent churn in at-risk segment |
| Action | Theme | Opportunity |
|---|---|---|
| [Use this proof point in messaging] | [Positive theme] | "[Customer quote ready for marketing]" |
| [Address this objection on website] | [Negative theme] | Counter common concern pre-sale |
| [Build case study around X] | [Positive theme] | [N] customers mentioned this win |
# Voice of Customer Report — [Period]
Sources analyzed: [list]
Total feedback items: [N]
Date range: [start] — [end]
---
## Executive Summary
[3-5 sentences: What are customers saying? What's the overall sentiment?
What's the single most important thing to act on?]
---
## Sentiment Overview
Positive: [X%] | Neutral: [X%] | Negative: [X%] | Critical: [X%]
Net Sentiment Score: [calculated — % positive minus % negative]
vs Prior Period: [+/- X points]
---
## Top Themes (Ranked by Impact)
### 1. [Theme Name] — [Sentiment] — [N mentions]
**Summary:** [2-3 sentences]
**Key quotes:**
> "[Quote]" — [Source]
> "[Quote]" — [Source]
**Recommended action:** [What to do]
**Owner:** [Product / CS / Marketing]
### 2. [Theme Name] — ...
### 3. [Theme Name] — ...
[Continue for top 5-8 themes]
---
## What Customers Love (Preserve These)
| Strength | Evidence | Marketing Opportunity |
|----------|---------|----------------------|
| [Feature/experience] | "[Quote]" — [N mentions] | [How to use in messaging] |
---
## What Customers Want (Feature Requests)
| Request | Frequency | Segments | Product Priority |
|---------|-----------|----------|-----------------|
| [Feature] | [N mentions] | [Who wants it] | [P0/P1/P2] |
---
## What Causes Pain (Fix These)
| Pain Point | Severity | Churn Risk | Recommended Fix |
|-----------|----------|------------|----------------|
| [Issue] | [High/Med/Low] | [Yes/No] | [Action] |
---
## Trends vs Prior Period
[What's getting better, what's getting worse, what's new]
---
## Team-Specific Action Items
### Product Team
1. [Action] — [Evidence]
### CS Team
1. [Action] — [Evidence]
### Marketing Team
1. [Action] — [Evidence]
---
## Appendix: All Themes Detail
[Full theme cards with all quotes and analysis]Save to voc-report-[YYYY-MM-DD].md in the current working directory.
Run monthly or quarterly:
0 8 1 */3 * python3 run_skill.py voice-of-customer-synthesizer --client <client-name>| Component | Cost |
|---|---|
| Review scraping (via review-site-scraper) | ~$0.50-1.00 |
| Web search (social mentions) | Free |
| All analysis and synthesis | Free (LLM reasoning) |
| Total | Free — $1 |
review-site-scraper for G2/Capterra/Trustpilot reviewstwitter-mention-tracker for social mentionsreddit-post-finder for community feedbackDiagnose Meta Ads campaign performance using Meta's actual system mechanics — Breakdown Effect, Learning Phase, Auction Overlap, Pacing, and Creative Fatigue — and produce structured, testable recommendations that avoid judging segments by average CPA instead of marginal efficiency.
Pre-flight policy check for Meta ads. Takes ad copy plus advertiser context, resolves and fetches the relevant Meta transparency-center policy pages at runtime, and returns a Pass / Fix Required / Block verdict with cited findings and rewrites.
For paid lead-gen and participant-recruitment ads, replaces vanity CPA with true CAC per qualified lead by joining ad-platform data with downstream funnel events, surfaces tracking gaps, and classifies every creative into Scale / Keep / Investigate / Cut.