skills/composites/voice-of-customer-synthesizer/SKILL.md
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 skillsauth add athina-ai/goose-skills voice-of-customer-synthesizerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 | CATEGORY
Sentiment classification per item:
If product is on review platforms:
Chain: review-site-scraper for G2, Capterra, Trustpilot
Filter: reviews from the target time period
Extract: 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.com
Group 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 feedbackcontent-media
Takes an existing screen recording or demo video and adds professional zoom/pan effects synchronized to the narration. Uses transcript-driven zoom targeting and Remotion for rendering. Optionally replaces audio with a soundtrack.
tools
Repurposes long-form video (podcasts, interviews, talks) into short-form vertical clips for Instagram Reels, TikTok, and YouTube Shorts. Handles transcription, moment selection, clip extraction, speaker-tracked reframing (16:9 to 9:16), and animated captions.
development
Creates talking head videos from any source material (docs, changelogs, blog posts, notes, transcripts). Produces multi-scene videos with avatar narration over screenshots/images using HeyGen v2 API. Supports Quick Shot and Full Producer modes.
tools
Generates Instagram-ready product reels from any e-commerce product page URL. Scrapes product images, classifies by type, generates AI-animated clips via Higgsfield API, creates text overlays with style presets, and composes a 15-20 second reel with music. Supports model-based and product-only reels.