customer-pain-mining
Extract verbatim customer complaints about competitors — the exact wording the founder's product copy should steal, in customers' own words. Use when a founder asks "what do users hate about X?", "what's broken about [category]?", "what's the white space?", or needs raw customer language for landing-page copy, custdev prep, ad copy, or product strategy. Combines Anysite MCP (Reddit broad sweeps, LinkedIn issue-level pain search, YouTube comments under review videos, Twitter for viral pain quotes) with Exa MCP (semantic search for review blog posts, comparison articles, "why I left X" Medium posts). Returns 3–5 pain clusters with 2–3 verbatim quotes each plus a white-space section listing features customers ask for that no competitor ships. Run competitor-discovery first if there's no validated competitor list.
What this skill does
# Customer Pain Mining
Competitors at the early stage aren't a threat — they're a **proxy for the customer**. Their unhappy users have already done your custdev calls. This skill harvests them.
The goal is **verbatim wording**, not paraphrase. Founders summarize and lose the gold. Pull exact phrases — they become product copy.
## When this skill applies
- A founder asks what users dislike about competitors or the category
- Preparing custdev calls — you want talking points in the customer's own language
- Writing landing-page copy or positioning — you need real pain wording
- Hunting white-space features competitors aren't shipping
- After `competitor-discovery` — going deeper on the named players
## What you need
1. **Competitor list** — 1 to 5 named competitors (run `competitor-discovery` first if there isn't one)
2. **Niche / category** — one line for context (e.g. "AI writing for students")
3. **Use case for the output** — affects source weighting:
- Custdev prep → Reddit (long-form verbatim wins)
- Ad copy → Exa for short blog-post pull-quotes
- Product strategy → Exa for structured "Pros / Cons" review pages
## Tools
**Anysite MCP**:
- `mcp__claude_ai_Anysite__execute(source="reddit", category="search", endpoint="search_posts", params={...})` — Reddit posts by query (anonymous, viral, long-form).
- `mcp__claude_ai_Anysite__execute(source="linkedin", category="search", endpoint="search_posts", params={"keywords": "<pain-phrase>", "sort": "relevance", "count": 15})` — LinkedIn posts BY professionals describing the pain. Critical: search by the PAIN, not the competitor name (see Step 5).
- `mcp__claude_ai_Anysite__query_cache(cache_key, conditions, ...)` — filter cached results (e.g. `vote_count > 50`).
- `mcp__claude_ai_Anysite__get_page(cache_key, offset)` — paginate.
- `mcp__claude_ai_Anysite__execute(source="youtube", category="video", endpoint="video_comments", params={"video": "<id>", "count": 50})` — comments under a competitor-review YouTube video; people who watched a 15-min review have committed to evaluating the product. Filter `like_count >= 5`. Watch for affiliate astroturf (5+ short identical-tone praises from different accounts).
- `mcp__claude_ai_Anysite__execute(source="twitter", category="search", endpoint="search_posts", params={"query": "<niche+pain>", "min_likes": 5, "count": 20, "language": "English"})` — viral short-form pain quotes. Set `min_likes` ≥ 50 for breakthrough quotes; otherwise filter aggressively for relevance because the query catches handle namesakes (e.g. "Bright" matches users named "Bright").
**Exa MCP** (covers review aggregators and blog content):
- `mcp__claude_ai_Exa__web_search_exa(query, numResults)` — find blog reviews, comparison articles, "why I left X" Medium posts.
- `mcp__claude_ai_Exa__web_fetch_exa(urls)` — pull full review content. Note: Exa fetch on Reddit URLs sometimes returns SOURCE_NOT_AVAILABLE; use the Anysite Reddit endpoint as primary for Reddit content.
Budget: ~8 Anysite executes (3-4 Reddit + 1-2 LinkedIn + 1 YouTube + optional Twitter) + ~5 Exa calls. Reddit, LinkedIn, Exa, and YouTube comments each carry distinct slices of signal — Reddit is anonymous-viral, LinkedIn is identified-professional, Exa is curated review-blog, YouTube comments are evaluation-stage.
## Source mix — pick by segment BEFORE you start
The order of sources depends on where the user lives professionally. Don't run blindly — pick the right primary first:
| Segment | Primary | Secondary | Skip / late |
|---|---|---|---|
| Consumer + EdTech + B2C SaaS | Reddit broad sweep (Step 1) | Exa review blogs (Step 6) | LinkedIn helpful but not primary |
| B2B SaaS sold to professionals (sales tools, marketing, HR) | LinkedIn issue-pain search (Step 5) | Exa fetch of structured review pages | Reddit thinner for these niches |
| Developer tools / DevTool / AI infrastructure | Exa review blogs + LinkedIn issue-pain (parallel) + r/programming / r/LocalLLaMA / r/webscraping / r/AI_Agents | YouTube comments under review videos; Twitter for viral pain | — |
| Mixed (pro-sumer, freelance tools) | Reddit + LinkedIn in parallel | Exa review blogs | — |
Test (3 second check): "Would the typical user of this competitor post their complaint on Reddit (anonymous), LinkedIn (professional reputation), or a developer blog post (technical depth)?" Start with whichever wins.
## How to run
### Step 1 — Reddit category-level pain sweep (start broad) — **consumer / viral-pain niches only**
Counterintuitively, **for niches where pain is broadly viral, a broad query often returns more pain than a negative query.** Reddit's algorithm surfaces high-virality posts; in pain-dominated niches (consumer detector/integrity scandals, broken health products, expensive subscriptions), pain dominates.
`mcp__claude_ai_Anysite__execute(source="reddit", category="search", endpoint="search_posts", params={"query": "<niche> <one descriptor>", "sort": "top", "time_filter": "year", "count": 20})`
For pain-dominant consumer niches (e.g. AI-writing-students), broad queries like `"best AI writing tool college essay"` (sort=top) surface viral pain posts at 20K–48K upvotes describing exactly the product friction you'd otherwise need to dig for. The query is framed as discovery but the algorithm bubbles up frustration.
Pre-check before running this step: Skim the top 5 results' titles. If most are about regulation/ethics/controversy and NOT about product friction, the niche isn't pain-dominant and broad-Reddit-first will mislead. Drop to Step 2 + Step 5 instead. For developer / B2B niches, broad-Reddit-first usually misleads — skip to Step 2 + Step 5 + Step 6.
### Step 2 — Reddit per-competitor sweep
For each named competitor, run ONE single-phrase query. Avoid OR-chains — Reddit's relevance ranking gets confused:
`mcp__claude_ai_Anysite__execute(source="reddit", category="search", endpoint="search_posts", params={"query": "<competitor> <one descriptor>", "sort": "relevance", "time_filter": "year", "count": 15})`
Working query patterns:
- `"<competitor> review"` — review threads
- `"<competitor> <quality complaint>"` — e.g. `"QuillBot paraphrase robotic"` or `"Bright Data expensive failed requests"`
- `"<competitor> <accuracy complaint>"` — e.g. `"Jenni citations hallucination"` or `"Firecrawl credit multiplier"`
- `"<competitor> alternative"` — implicit critique (also surfaces substitute names)
Anti-patterns to avoid:
- OR-chains like `"<competitor> sucks OR broken OR hate OR alternative"` confuse relevance and return off-topic threads.
- Single-phrase queries combining a smaller-brand name with multiple descriptors can return zero results because the smaller brand has a thin Reddit footprint. Start with the most-talked-about competitor first.
For each post, capture: title, subreddit, vote_count, any quotable phrase from the title. Titles are usually the most distilled version of the complaint.
Filter cached results to keep only posts with real engagement (10+ votes for small subs, 50+ for major ones):
```
mcp__claude_ai_Anysite__query_cache(cache_key="<from step 2>", conditions=[{"field": "vote_count", "op": ">=", "value": 10}], sort_by="vote_count", sort_order="desc")
```
### Step 3 — Find the dedicated subreddit
Niche pain often clusters in a single subreddit dedicated to the problem. For AI-writing-detection pain, validation has surfaced `r/BypassAiDetect`, `r/humanizing`, `r/PromptEngineering`. For web-scraping API pain, the recurring subs are `r/webscraping`, `r/WebScrapingInsider`, `r/WebDataDiggers`, `r/Agent_AI`, and `r/LocalLLaMA` (self-host workaround).
If you spot a recurring sub in Step 1–2 results, run one targeted query inside it via title-keyword filtering — though the Reddit endpoint doesn't filter by sub directly, results from that sub float to the top of relevance queries.
### Step 4 — YouTube comments under a top review video
For consumer or DevTool products with strong YouTube review presence, commentsRelated in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".