Skip to content
Marketing
Skill

/competitor-ad-intelligence

Scrape competitor ads from Meta, TikTok, Google, and LinkedIn ad libraries, analyze creative patterns (hooks, formats, CTAs), reverse-engineer landing page funnels, and produce a strategic teardown with vulnerability analysis and counter-play recommendations. Use when you need

From plugin
goose-skills
1.2k200 skills
Install
$ npx -y skills add gooseworks-ai/goose-skills --skill competitor-ad-intelligence --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/competitor-ad-intelligence

Context preview

The summary Claude sees to decide when to auto-load this skill.

Scrape competitor ads from Meta, TikTok, Google, and LinkedIn ad libraries, analyze creative patterns (hooks, formats, CTAs), reverse-engineer landing page funnels, and produce a strategic teardown with vulnerability analysis and counter-play recommendations. Use when you need

SKILL.md

competitor-ad-intelligence.SKILL.md
name: competitor-ad-intelligence
description: >
  Scrape competitor ads from Meta, TikTok, Google, and LinkedIn ad libraries,
  analyze creative patterns (hooks, formats, CTAs), reverse-engineer landing page funnels,
  and produce a strategic teardown with vulnerability analysis and counter-play recommendations.
  Use when you need to understand the competitive ad landscape, find new creative directions,
  or identify weaknesses in a competitor's paid strategy.
tags: [ads]

Competitor Ad Intelligence

Scrape competitor ads from Meta, TikTok, Google, and LinkedIn, analyze creative patterns, reverse-engineer landing page funnels, and produce a full strategic teardown — hooks, formats, positioning bets, vulnerabilities, and counter-plays.

**Core principle:** A competitor's ad portfolio is evidence about its growth strategy, not access to its results. Long-running ads suggest sustained use. New ads suggest active testing. Landing pages reveal positioning bets. Use these signals to form differentiated tests without claiming conversion, spend, or causality the libraries do not expose.

When to Use

  • "What ads are my competitors running?"
  • "Tear down [competitor]'s ad strategy"
  • "Find new creative angles for our paid campaigns"
  • "Reverse-engineer [competitor]'s paid funnel"
  • "What hooks are working in [our space]?"
  • "Audit the ad landscape before we launch"
  • "Find weaknesses in [competitor]'s ad strategy"
  • "What format — video, image, carousel — is dominant in our category?"

Phase 0: Intake

Gather from the user:

1. **Competitor names + domains** (e.g., `apollo.io`, `clay.run`) 2. **Your product/domain** — for comparison framing 3. **Channels:** Meta, TikTok, Google, LinkedIn, or all relevant libraries? (default: all channels relevant to the brand and market) 4. **Depth level:**

  • **Standard:** Ad scrape + creative analysis + landing page analysis
  • **Deep:** Standard + historical comparison + funnel reconstruction + counter-plays

5. **Product category** — helps frame analysis 6. **Known competitor landing pages?** — any URLs already spotted in their ads

Phase 1: Scrape Meta Ads

For each competitor domain, scrape ads from Meta Ad Library.

Use `scrapecreators-api` as the primary collection path. Resolve the advertiser first, then fetch its ads and individual ad details:

- provider: scrapecreators
  method: GET
  path: /v1/facebook/adLibrary/search/companies
  query:
    query: "[competitor_name]"
- provider: scrapecreators
  method: GET
  path: /v1/facebook/adLibrary/company/ads
  query:
    companyName: "[competitor_name]"
- provider: scrapecreators
  method: GET
  path: /v1/facebook/adLibrary/ad
  query:
    id: "[ad_id]"

If the structured endpoint cannot resolve an advertiser, verify the name in the public Meta Ad Library and use web search as a documented fallback. Keep the library URL and ad ID with every result.

**Collect per ad:**

  • Ad copy (headline + primary text)
  • Visual type (image / video / carousel)
  • CTA button text
  • Landing page URL
  • Active duration (first seen, still running or stopped)
  • Platforms (Facebook, Instagram, Audience Network)
  • Ad variations (A/B tests — same landing page, different creative)
  • Video transcript when available; use `transcript-intelligence` to extract hooks, claims, proof, objections, and CTA structure

Phase 2: Scrape TikTok Ads

For each competitor or category, use `scrapecreators-api` to resolve the current TikTok Ad Library search and ad-detail operations from the official provider reference.

Collect the advertiser, ad ID, caption or script, format, landing page, first-seen date, market, and available performance or reach indicators. Keep organic TikTok posts separate from paid-library ads.

Use `transcript-intelligence` when the ad includes spoken content. Analyze TikTok-native mechanics such as creator-led openings, product demonstrations, comment-style hooks, native captions, sounds, offer timing, and the first visible payoff.

Phase 3: Scrape Google Ads

For each competitor domain, scrape ads from Google Ads Transparency Center.

Use the structured advertiser endpoints first:

- provider: scrapecreators
  method: GET
  path: /v1/google/company/ads
  query:
    domain: "[competitor_domain]"
    get_ad_details: true
- provider: scrapecreators
  method: GET
  path: /v1/google/ad
  query:
    id: "[ad_id]"

Use the public Google Ads Transparency Center or web search only when the structured endpoint is incomplete. Mark fallback records so coverage limits remain visible.

**Collect per ad:**

  • Headline variants (up to 3)
  • Description lines
  • Ad type (Search / Display / YouTube / Shopping)
  • Landing page URL
  • Geographic targeting (if visible)

Phase 4: Scrape LinkedIn Ads

For each relevant competitor, use `scrapecreators-api` to resolve the current LinkedIn Ad Library search and ad-detail operations from the official provider reference.

Collect the advertiser, ad copy, creative format, CTA, landing page, dates, and visible targeting or company context. Keep organic company posts separate from paid-library ads.

LinkedIn is optional for consumer brands. Include it when the competitor sells high-consideration products, wholesale or retail partnerships, franchises, professional education, recruiting, or another business-facing offer.

Phase 5: Analyze Creative Patterns

After collecting all ads, perform structured analysis.

Hook Pattern Clustering

Group all ad headlines/openers by hook type:

| Hook Type | Pattern | Example | |-----------|---------|---------| | **Fear/Loss** | Risk of missing out or falling behind | "Your competitors are already using AI SDRs" | | **Outcome** | Direct result promise | "10x your pipeline in 30 days" | | **Question** | Challenges current assumption | "Still doing outbound manually?" | | **Social proof** | Names customers or numbers | "Join 500+ B2B teams using [product]" | | **Contrarian** | Challenges conventional wisdom | "Cold e

Read more
Ships withgoose-skills

Put your AI agent on the growth team. Research customers and competitors, analyze what is working, create the next campaign, and learn from the result.

Get the whole plugin

Other skills on goose-skills.