Claude Skill

ad-angle-miner

Mine the highest-converting ad angles from customer reviews, Reddit complaints, support tickets, and competitor ads. Extracts actual pain language, competitor weaknesses, and outcome phrases that real buyers use. Outputs a ranked angle bank with proof quotes and recommended ad fo

LLM Mart · 0 points · 7 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download gooseworks-ai-goose-skills-skills_ads_composites_ad-angle-miner-e1592ee.zip · 4 KB
Part of gooseworks-ai/goose-skills — 44 skills

Install

skills CLI npx skills add https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/composites/ad-angle-miner
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install gooseworks-ai-goose-skills@llmmart
Git git clone https://github.com/gooseworks-ai/goose-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole gooseworks-ai/goose-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Ad Angle Miner

Dig through customer voice data — reviews, Reddit, support tickets, competitor ads — to extract the specific language, pain points, and outcome desires that make ads convert. The output is an angle bank your team can pull from for any campaign.

Core principle: The best ad angles aren't invented in a brainstorm. They're extracted from what real people are already saying. This skill finds those angles and ranks them by strength of evidence.

When to Use

  • "What angles should we run in our ads?"
  • "Find pain points we can use in ad copy"
  • "What are people complaining about with [competitors]?"
  • "Mine reviews for ad messaging"
  • "I need fresh ad angles — not the same tired stuff"

Prerequisites

  • Environment variable: APIFY_API_TOKEN — required for review scraping and Reddit scraping
  • GooseWorks or a direct ScrapeCreators key — for structured social comments and ad-library evidence
  • Web search access — for review sources and verification fallbacks

Phase 0: Intake

  1. Your product — Name + what it does in one sentence
  2. Competitors — 2-5 competitor names (for review mining)
  3. ICP — Who are you targeting? (role, company stage, pain)
  4. Data sources to mine (pick all that apply):
    • G2/Capterra/Trustpilot reviews (yours + competitors)
    • Reddit threads in relevant subreddits
    • Twitter/X complaints or praise
    • Social comments on creator, competitor, or brand posts
    • Support tickets or NPS comments (paste or file)
    • Competitor ads (Meta + Google)
  5. Any angles you've already tested? — So we can skip those

Phase 1: Source Collection

1A: Review Mining (Apify)

Use the Apify Amazon Reviews Scraper (or web_search for G2/Capterra/TrustRadius reviews).

Option 1: Amazon product reviews via Apify

Start a run of the web_wanderer/amazon-reviews-extractor actor:

POST https://api.apify.com/v2/acts/web_wanderer~amazon-reviews-extractor/runs?token=$APIFY_API_TOKEN
Content-Type: application/json

{
  "products": [
    "https://www.amazon.com/dp/PRODUCT_ASIN"
  ],
  "maxReviews": 100
}

Poll until the run finishes:

GET https://api.apify.com/v2/acts/web_wanderer~amazon-reviews-extractor/runs/{RUN_ID}?token=$APIFY_API_TOKEN

When status is SUCCEEDED, fetch results:

GET https://api.apify.com/v2/datasets/{DATASET_ID}/items?token=$APIFY_API_TOKEN

Output fields: Each review has rating (1-5), reviewTitle, reviewText, reviewDate, verifiedPurchase (bool), productAsin, productTitle, helpfulVoteCount.

Option 2: G2/Capterra/TrustRadius reviews via web_search

For B2B products, run web searches to find review content:

web_search: "<product_name> reviews site:g2.com"
web_search: "<product_name> reviews site:capterra.com"
web_search: "<product_name> reviews site:trustradius.com"
web_search: "<competitor_name> reviews site:g2.com"

Focus on:

  • 1-2 star reviews of competitors — Pain they're failing to solve
  • 4-5 star reviews of you — Outcomes that delight buyers
  • 4-5 star reviews of competitors — Strengths you need to counter or match
  • Review language patterns — Exact phrases buyers use

1B: Reddit/Community Mining (Apify)

Use the trudax/reddit-scraper-lite actor to search Reddit for relevant threads:

Search by keyword:

POST https://api.apify.com/v2/acts/trudax~reddit-scraper-lite/runs?token=$APIFY_API_TOKEN
Content-Type: application/json

{
  "searches": [
    "<product category> OR <competitor> OR <pain keyword>"
  ],
  "maxItems": 50
}

Browse a specific subreddit:

POST https://api.apify.com/v2/acts/trudax~reddit-scraper-lite/runs?token=$APIFY_API_TOKEN
Content-Type: application/json

{
  "startUrls": [
    {"url": "https://www.reddit.com/r/SUBREDDIT_NAME/hot/"}
  ],
  "maxItems": 50
}

Poll until complete:

GET https://api.apify.com/v2/acts/trudax~reddit-scraper-lite/runs/{RUN_ID}?token=$APIFY_API_TOKEN

Fetch results when status is SUCCEEDED:

GET https://api.apify.com/v2/datasets/{DATASET_ID}/items?token=$APIFY_API_TOKEN

Output fields: Each item has dataType ("post" or "comment"), title (posts only), body, communityName, upVotes, numberOfComments (posts), url, createdAt.

Extract:

  • Questions people ask before buying
  • Complaints about current solutions
  • "I wish [product] would..." statements
  • Comparison threads (vs discussions)

1C: Social Post and Comment Mining

Use scrapecreators-api to collect relevant X posts plus Instagram, TikTok, YouTube, or Facebook posts where the audience is discussing the problem. Run comment-mining on the highest-signal threads. Use web search only as a fallback:

web_search: "<competitor> (frustrating OR broken OR hate) site:x.com"
web_search: "<competitor> (love OR switched to OR replaced) site:x.com"
web_search: "<product category> (recommendation OR alternative OR looking for) site:twitter.com"
web_search: "<competitor> site:x.com" (for general sentiment)

Run 3-5 queries covering:

  • Competitor complaints and frustrations
  • Product category praise / switching stories
  • "What do you use for X?" buying-intent threads

1D: Competitor Ad Mining

Use competitor-ad-intelligence for structured Meta and Google ad-library collection. Use web search only to verify an advertiser or fill a documented gap:

web_search: "<competitor_name> site:facebook.com/ads/library"
web_search: "<competitor_name> facebook ads library"
web_search: "<competitor_name> ad creative examples"

This reveals:

  • Angles they've validated (long-running ads = working)
  • Angles they're testing (new ads)
  • Angles nobody is running (white space)

1E: Internal Data (Optional)

If the user provides support tickets, NPS comments, or sales call transcripts — ingest and tag with the same framework below.

Phase 2: Angle Extraction

Process all collected data through this extraction framework:

Angle Categories

Category What to Look For Ad Power
Pain angles Specific frustrations with status quo or competitors High — pain motivates action
Outcome angles Desired results buyers describe in their own words High — positive aspiration
Identity angles How buyers describe themselves or want to be seen Medium — emotional resonance
Fear angles Risks of NOT switching or acting Medium — loss aversion
Competitive displacement Specific reasons people switched from a competitor Very high — direct comparison
Social proof angles Outcomes or metrics buyers cite in reviews High — credibility
Contrast angles Before/after or old way/new way framings High — clear value prop

For Each Angle, Extract:

  1. The angle — One-sentence framing
  2. Proof quotes — 2-5 verbatim quotes from sources
  3. Source count — How many independent sources mention this?
  4. Competitor weakness? — Does this exploit a specific competitor's gap?
  5. Emotional register — Frustration / Aspiration / Fear / Relief / Pride
  6. Recommended format — Search ad / Meta static / Meta video / LinkedIn / Twitter

Phase 3: Scoring & Ranking

Score each angle on:

Factor Weight Description
Evidence strength 30% Number of independent sources mentioning it
Emotional intensity 25% How strongly people feel about this (language intensity)
Competitive differentiation 20% Does this set you apart, or could any competitor claim it?
ICP relevance 15% How closely does this match the target buyer's world?
Freshness 10% Is this angle already overused in competitor ads?

Total score out of 100. Rank all angles.

Phase 4: Output Format

# Ad Angle Bank — [Product Name] — [DATE]

Sources mined: [list]
Total angles extracted: [N]
Top-tier angles (score 70+): [N]

---

## Tier 1: Highest-Conviction Angles (Score 70+)

### Angle 1: [One-sentence angle]
- **Category:** [Pain / Outcome / Identity / Fear / Displacement / Proof / Contrast]
- **Score:** [X/100]
- **Emotional register:** [Frustration / Aspiration / etc.]
- **Proof quotes:**
  > "[Verbatim quote 1]" — [Source: G2 review / Reddit / etc.]
  > "[Verbatim quote 2]" — [Source]
  > "[Verbatim quote 3]" — [Source]
- **Source count:** [N] independent mentions
- **Competitor weakness exploited:** [Competitor name + specific gap, or "N/A"]
- **Recommended formats:** [Search ad headline / Meta static / Video hook / etc.]
- **Sample headline:** "[Draft headline using this angle]"
- **Sample body copy:** "[Draft 1-2 sentence body]"

### Angle 2: ...

---

## Tier 2: Worth Testing (Score 50-69)

[Same format, briefer]

---

## Tier 3: Emerging / Low-Evidence (Score < 50)

[Brief list — angles with potential but insufficient evidence]

---

## Competitive Angle Map

| Angle | Your Product | [Comp A] | [Comp B] | [Comp C] |
|-------|-------------|----------|----------|----------|
| [Angle 1] | Can claim ✓ | Weak here ✗ | Also claims | Not relevant |
| [Angle 2] | Strong ✓ | Strong | Weak ✗ | Not relevant |
...

---

## Recommended Test Plan

### Week 1-2: Test Tier 1 Angles
- [Angle] → [Format] → [Platform]
- [Angle] → [Format] → [Platform]

### Week 3-4: Test Tier 2 Angles
- [Angle] → [Format] → [Platform]

Save to angle-bank-[YYYY-MM-DD].md in the current working directory (or user-specified path).

Tools Required

  • Environment variable: APIFY_API_TOKEN — for Apify actors (review scraper, Reddit scraper)
  • comment-mining — customer language from social and ad comment threads
  • competitor-ad-intelligence — structured ad-library research through ScrapeCreators
  • Web search — built into your AI agent for verification and review sources

Trigger Phrases

  • "Mine ad angles from reviews"
  • "What angles should we run?"
  • "Find pain language for our ads"
  • "Build an ad angle bank for [client]"
  • "What are people complaining about with [competitor]?"
Files (goose-skills)
  • SKILL.md 10.3 KB
    ---
    name: ad-angle-miner
    description: >
      Mine the highest-converting ad angles from customer reviews, Reddit complaints,
      support tickets, and competitor ads. Extracts actual pain language, competitor
      weaknesses, and outcome phrases that real buyers use. Outputs a ranked angle bank
      with proof quotes and recommended ad formats per angle.
    tags: [ads]
    ---
    
    # Ad Angle Miner
    
    Dig through customer voice data — reviews, Reddit, support tickets, competitor ads — to extract the specific language, pain points, and outcome desires that make ads convert. The output is an angle bank your team can pull from for any campaign.
    
    **Core principle:** The best ad angles aren't invented in a brainstorm. They're extracted from what real people are already saying. This skill finds those angles and ranks them by strength of evidence.
    
    ## When to Use
    
    - "What angles should we run in our ads?"
    - "Find pain points we can use in ad copy"
    - "What are people complaining about with [competitors]?"
    - "Mine reviews for ad messaging"
    - "I need fresh ad angles — not the same tired stuff"
    
    ## Prerequisites
    
    - **Environment variable:** `APIFY_API_TOKEN` — required for review scraping and Reddit scraping
    - **GooseWorks or a direct ScrapeCreators key** — for structured social comments and ad-library evidence
    - **Web search access** — for review sources and verification fallbacks
    
    ## Phase 0: Intake
    
    1. **Your product** — Name + what it does in one sentence
    2. **Competitors** — 2-5 competitor names (for review mining)
    3. **ICP** — Who are you targeting? (role, company stage, pain)
    4. **Data sources to mine** (pick all that apply):
       - G2/Capterra/Trustpilot reviews (yours + competitors)
       - Reddit threads in relevant subreddits
       - Twitter/X complaints or praise
       - Social comments on creator, competitor, or brand posts
       - Support tickets or NPS comments (paste or file)
       - Competitor ads (Meta + Google)
    5. **Any angles you've already tested?** — So we can skip those
    
    ## Phase 1: Source Collection
    
    ### 1A: Review Mining (Apify)
    
    Use the Apify Amazon Reviews Scraper (or web_search for G2/Capterra/TrustRadius reviews).
    
    **Option 1: Amazon product reviews via Apify**
    
    Start a run of the `web_wanderer/amazon-reviews-extractor` actor:
    
    ```
    POST https://api.apify.com/v2/acts/web_wanderer~amazon-reviews-extractor/runs?token=$APIFY_API_TOKEN
    Content-Type: application/json
    
    {
      "products": [
        "https://www.amazon.com/dp/PRODUCT_ASIN"
      ],
      "maxReviews": 100
    }
    ```
    
    Poll until the run finishes:
    
    ```
    GET https://api.apify.com/v2/acts/web_wanderer~amazon-reviews-extractor/runs/{RUN_ID}?token=$APIFY_API_TOKEN
    ```
    
    When `status` is `SUCCEEDED`, fetch results:
    
    ```
    GET https://api.apify.com/v2/datasets/{DATASET_ID}/items?token=$APIFY_API_TOKEN
    ```
    
    **Output fields:** Each review has `rating` (1-5), `reviewTitle`, `reviewText`, `reviewDate`, `verifiedPurchase` (bool), `productAsin`, `productTitle`, `helpfulVoteCount`.
    
    **Option 2: G2/Capterra/TrustRadius reviews via web_search**
    
    For B2B products, run web searches to find review content:
    
    ```
    web_search: "<product_name> reviews site:g2.com"
    web_search: "<product_name> reviews site:capterra.com"
    web_search: "<product_name> reviews site:trustradius.com"
    web_search: "<competitor_name> reviews site:g2.com"
    ```
    
    Focus on:
    - **1-2 star reviews of competitors** — Pain they're failing to solve
    - **4-5 star reviews of you** — Outcomes that delight buyers
    - **4-5 star reviews of competitors** — Strengths you need to counter or match
    - **Review language patterns** — Exact phrases buyers use
    
    ### 1B: Reddit/Community Mining (Apify)
    
    Use the `trudax/reddit-scraper-lite` actor to search Reddit for relevant threads:
    
    **Search by keyword:**
    ```
    POST https://api.apify.com/v2/acts/trudax~reddit-scraper-lite/runs?token=$APIFY_API_TOKEN
    Content-Type: application/json
    
    {
      "searches": [
        "<product category> OR <competitor> OR <pain keyword>"
      ],
      "maxItems": 50
    }
    ```
    
    **Browse a specific subreddit:**
    ```
    POST https://api.apify.com/v2/acts/trudax~reddit-scraper-lite/runs?token=$APIFY_API_TOKEN
    Content-Type: application/json
    
    {
      "startUrls": [
        {"url": "https://www.reddit.com/r/SUBREDDIT_NAME/hot/"}
      ],
      "maxItems": 50
    }
    ```
    
    Poll until complete:
    
    ```
    GET https://api.apify.com/v2/acts/trudax~reddit-scraper-lite/runs/{RUN_ID}?token=$APIFY_API_TOKEN
    ```
    
    Fetch results when `status` is `SUCCEEDED`:
    
    ```
    GET https://api.apify.com/v2/datasets/{DATASET_ID}/items?token=$APIFY_API_TOKEN
    ```
    
    **Output fields:** Each item has `dataType` ("post" or "comment"), `title` (posts only), `body`, `communityName`, `upVotes`, `numberOfComments` (posts), `url`, `createdAt`.
    
    Extract:
    - Questions people ask before buying
    - Complaints about current solutions
    - "I wish [product] would..." statements
    - Comparison threads (vs discussions)
    
    ### 1C: Social Post and Comment Mining
    
    Use `scrapecreators-api` to collect relevant X posts plus Instagram, TikTok, YouTube, or Facebook posts where the audience is discussing the problem. Run `comment-mining` on the highest-signal threads. Use web search only as a fallback:
    
    ```
    web_search: "<competitor> (frustrating OR broken OR hate) site:x.com"
    web_search: "<competitor> (love OR switched to OR replaced) site:x.com"
    web_search: "<product category> (recommendation OR alternative OR looking for) site:twitter.com"
    web_search: "<competitor> site:x.com" (for general sentiment)
    ```
    
    Run 3-5 queries covering:
    - Competitor complaints and frustrations
    - Product category praise / switching stories
    - "What do you use for X?" buying-intent threads
    
    ### 1D: Competitor Ad Mining
    
    Use `competitor-ad-intelligence` for structured Meta and Google ad-library collection. Use web search only to verify an advertiser or fill a documented gap:
    
    ```
    web_search: "<competitor_name> site:facebook.com/ads/library"
    web_search: "<competitor_name> facebook ads library"
    web_search: "<competitor_name> ad creative examples"
    ```
    
    This reveals:
    - Angles they've validated (long-running ads = working)
    - Angles they're testing (new ads)
    - Angles nobody is running (white space)
    
    ### 1E: Internal Data (Optional)
    
    If the user provides support tickets, NPS comments, or sales call transcripts — ingest and tag with the same framework below.
    
    ## Phase 2: Angle Extraction
    
    Process all collected data through this extraction framework:
    
    ### Angle Categories
    
    | Category | What to Look For | Ad Power |
    |----------|-----------------|----------|
    | **Pain angles** | Specific frustrations with status quo or competitors | High — pain motivates action |
    | **Outcome angles** | Desired results buyers describe in their own words | High — positive aspiration |
    | **Identity angles** | How buyers describe themselves or want to be seen | Medium — emotional resonance |
    | **Fear angles** | Risks of NOT switching or acting | Medium — loss aversion |
    | **Competitive displacement** | Specific reasons people switched from a competitor | Very high — direct comparison |
    | **Social proof angles** | Outcomes or metrics buyers cite in reviews | High — credibility |
    | **Contrast angles** | Before/after or old way/new way framings | High — clear value prop |
    
    ### For Each Angle, Extract:
    
    1. **The angle** — One-sentence framing
    2. **Proof quotes** — 2-5 verbatim quotes from sources
    3. **Source count** — How many independent sources mention this?
    4. **Competitor weakness?** — Does this exploit a specific competitor's gap?
    5. **Emotional register** — Frustration / Aspiration / Fear / Relief / Pride
    6. **Recommended format** — Search ad / Meta static / Meta video / LinkedIn / Twitter
    
    ## Phase 3: Scoring & Ranking
    
    Score each angle on:
    
    | Factor | Weight | Description |
    |--------|--------|-------------|
    | **Evidence strength** | 30% | Number of independent sources mentioning it |
    | **Emotional intensity** | 25% | How strongly people feel about this (language intensity) |
    | **Competitive differentiation** | 20% | Does this set you apart, or could any competitor claim it? |
    | **ICP relevance** | 15% | How closely does this match the target buyer's world? |
    | **Freshness** | 10% | Is this angle already overused in competitor ads? |
    
    **Total score out of 100. Rank all angles.**
    
    ## Phase 4: Output Format
    
    ```markdown
    # Ad Angle Bank — [Product Name] — [DATE]
    
    Sources mined: [list]
    Total angles extracted: [N]
    Top-tier angles (score 70+): [N]
    
    ---
    
    ## Tier 1: Highest-Conviction Angles (Score 70+)
    
    ### Angle 1: [One-sentence angle]
    - **Category:** [Pain / Outcome / Identity / Fear / Displacement / Proof / Contrast]
    - **Score:** [X/100]
    - **Emotional register:** [Frustration / Aspiration / etc.]
    - **Proof quotes:**
      > "[Verbatim quote 1]" — [Source: G2 review / Reddit / etc.]
      > "[Verbatim quote 2]" — [Source]
      > "[Verbatim quote 3]" — [Source]
    - **Source count:** [N] independent mentions
    - **Competitor weakness exploited:** [Competitor name + specific gap, or "N/A"]
    - **Recommended formats:** [Search ad headline / Meta static / Video hook / etc.]
    - **Sample headline:** "[Draft headline using this angle]"
    - **Sample body copy:** "[Draft 1-2 sentence body]"
    
    ### Angle 2: ...
    
    ---
    
    ## Tier 2: Worth Testing (Score 50-69)
    
    [Same format, briefer]
    
    ---
    
    ## Tier 3: Emerging / Low-Evidence (Score < 50)
    
    [Brief list — angles with potential but insufficient evidence]
    
    ---
    
    ## Competitive Angle Map
    
    | Angle | Your Product | [Comp A] | [Comp B] | [Comp C] |
    |-------|-------------|----------|----------|----------|
    | [Angle 1] | Can claim ✓ | Weak here ✗ | Also claims | Not relevant |
    | [Angle 2] | Strong ✓ | Strong | Weak ✗ | Not relevant |
    ...
    
    ---
    
    ## Recommended Test Plan
    
    ### Week 1-2: Test Tier 1 Angles
    - [Angle] → [Format] → [Platform]
    - [Angle] → [Format] → [Platform]
    
    ### Week 3-4: Test Tier 2 Angles
    - [Angle] → [Format] → [Platform]
    ```
    
    Save to `angle-bank-[YYYY-MM-DD].md` in the current working directory (or user-specified path).
    
    ## Tools Required
    
    - **Environment variable:** `APIFY_API_TOKEN` — for Apify actors (review scraper, Reddit scraper)
    - **`comment-mining`** — customer language from social and ad comment threads
    - **`competitor-ad-intelligence`** — structured ad-library research through ScrapeCreators
    - **Web search** — built into your AI agent for verification and review sources
    
    ## Trigger Phrases
    
    - "Mine ad angles from reviews"
    - "What angles should we run?"
    - "Find pain language for our ads"
    - "Build an ad angle bank for [client]"
    - "What are people complaining about with [competitor]?"
    
  • skill.meta.json 478 B
    {
      "slug": "ad-angle-miner",
      "category": "composites",
      "domain": "ads",
      "tags": ["ads", "research", "social"],
      "collections": ["brand-growth"],
      "collection_stage": "analyze",
      "installation": {
        "base_command": "npx goose-skills install ad-angle-miner",
        "supports": [
          "claude",
          "cursor",
          "codex"
        ]
      },
      "requires_skills": [
        "reddit-post-finder",
        "review-site-scraper",
        "twitter-mention-tracker",
        "comment-mining"
      ]
    }
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related