competitor-ad-intelligence
Competitor Ad Intelligence scrapes active ads from Meta and Google advertising libraries, analyzes creative patterns and messaging strategies, and reverse-engineers competitor landing pages and sales funnels to identify hooks, format preferences, positioning claims, and strategic vulnerabilities. Use this skill when preparing competitive ad audits, launching new paid campaigns, testing creative angles, or identifying market gaps before go-to-market launches.
git clone --depth 1 https://github.com/gooseworks-ai/goose-skills /tmp/competitor-ad-intelligence && cp -r /tmp/competitor-ad-intelligence/skills/ads/composites/competitor-ad-intelligence ~/.claude/skills/competitor-ad-intelligenceSKILL.md
# 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:
```yaml
- 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:
```yaml
- 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 email isn't dead. Your copy is." |
| **Empathy** | Validates their pain | "We know SDR ramp time is brutal" |
| **Product-led** | Feature as hook | "[Feature] is live — see what's new" |
Count how many ads per competitor use each hook type. This reveals their primary messaging strategy.
### Format Distribution
| Format | Meta | TikTok | Google | LinkedIn |
|--------|------|--------|--------|----------|
| Static image | [N] | [N] | [N] | [N] |
| Video | [N] | [N] | [N] | [N] |
| C>
AI video conversations - create real-time video calls with AI personas
AI-powered web scraping - extract data using natural language prompts
Search Amazon products - find items, compare prices, read reviews
Test and document API endpoints - validate responses, check status, generate examples
>
>
Brand intelligence - logos, colors, fonts, styleguides, and company data from any domain