AI SkillTear DownMarketingby Gooseworks

Competitor Ad Teardown — read their growth strategy from their ads

Runs on
ClaudeClaudeChatGPTChatGPTOpenClawOpenClaw

Reverse-engineer a single competitor's full paid ad strategy

  • Scrapes all active Meta and Google ads for one competitor
  • Analyzes every landing page in their funnel
  • Clusters ads into strategic campaigns by destination and message
  • Identifies positioning bets and budget allocation patterns
  • Surfaces vulnerabilities you can exploit with counter-plays

Who this is for

What it does

Pre-launch competitive deep-dive

Before running paid campaigns against a key competitor, reverse-engineer everything they're doing.

Sales enablement

Give your reps a real picture of how the competitor positions and converts at the top of the funnel.

Find counter-play opportunities

Identify the weaknesses in their ad strategy and design ads that exploit them.

How it works

1

Take competitor name and domain as input

2

Scrape all Meta and Google ads with copy and landing page URLs

3

Fetch every landing page and analyze structure and CTAs

4

Cluster ads into strategic campaigns

5

Output teardown report with vulnerabilities and counter-plays

Metrics this improves

Ad CTR
Higher CTR by designing counter-ads against identified competitor vulnerabilities
Marketing

Works with

Similar skills

Auto-suggested by attribute overlap. Side-by-side comparison shows what differs.

Compare all 4
Sorted by attribute overlap × differentiation. Competitor Ad Teardown shares 18+ attributes with each.

Competitor Ad Teardown

Go deeper than surface-level ad monitoring. Take a single competitor and reverse-engineer their entire paid strategy: what they're running, where they're sending traffic, what they're testing, what's working, and where they're vulnerable.

Core principle: A competitor's ad portfolio is a window into their growth strategy. Long-running ads reveal what converts. New ads reveal what they're testing. Landing pages reveal their positioning bets. This skill reads all the signals.

When to Use

  • "Tear down [competitor]'s ad strategy"
  • "What's [competitor] spending their ad budget on?"
  • "Reverse-engineer [competitor]'s paid funnel"
  • "How is [competitor] positioning themselves in ads?"
  • "Deep competitive ad analysis on [competitor]"

Phase 0: Intake

  1. Competitor name + domain — Who are we tearing down?
  2. Your product — For comparison framing
  3. Channels — Meta, Google, or both? (default: both)
  4. Depth level:
    • Standard: Ad scrape + landing page analysis
    • Deep: Standard + historical comparison + funnel reconstruction
  5. Known competitor landing pages? — Any URLs you've seen in their ads

Phase 1: Ad Collection

1A: Meta Ad Library Scrape

python3 skills/meta-ad-scraper/scripts/scrape_meta_ads.py \
  --domain <competitor_domain> \
  --output json

For each ad, capture:

  • Ad copy (headline + primary text)
  • Visual type (image / video / carousel)
  • CTA button
  • 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)

1B: Google Ads Transparency Scrape

python3 skills/google-ad-scraper/scripts/scrape_google_ads.py \
  --domain <competitor_domain> \
  --output json

For each ad:

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

Phase 2: Landing Page Analysis

For each unique landing page URL found in ads:

Fetch: [landing_page_url]

Extract:

  • Hero headline — Does it match the ad promise?
  • Subheadline — Value prop expansion
  • Primary CTA — What action are they driving? (Demo / Free trial / Sign up / Download)
  • Social proof — Logos, testimonials, case study metrics
  • Pricing visibility — Is pricing shown or hidden?
  • Form fields — How much info do they ask for?
  • Page type — General homepage / dedicated LP / feature page / use-case page
  • Message match score — How well does the LP deliver on the ad's promise? (1-10)

Phase 3: Strategic Analysis

3A: Campaign Clustering

Group all ads into logical campaigns by:

  • Landing page destination — Ads pointing to the same URL = same campaign
  • Messaging theme — Similar copy angles = same strategic bet
  • Audience signal — Different copy for different personas

3B: Per-Campaign Analysis

For each campaign cluster:

DimensionAnalysis
Strategic intentWhat is this campaign trying to achieve? (Awareness / Lead gen / Free trial / Competitive displacement)
Target personaWho is this ad speaking to? (Role, pain, stage)
Positioning betWhat market position are they claiming?
Hook strategyFear / Outcome / Social proof / Contrarian / Product-led
Conversion pathAd → LP → CTA → [Demo call / Free trial / Content download]
Longevity signalHow long has this been running? (Longer = likely working)
A/B tests detectedMultiple creatives to same LP = active testing

3C: Budget Allocation Inference

Based on ad volume and platform distribution, estimate where they're concentrating spend:

PlatformAd Count% of TotalEstimated Focus
Meta (Facebook)[N][X%][Awareness / Retargeting]
Meta (Instagram)[N][X%][Visual / younger audience]
Google Search[N][X%][Bottom-funnel capture]
Google Display[N][X%][Awareness / retargeting]
YouTube[N][X%][Education / awareness]

3D: Historical Comparison (Deep Mode)

If Web Archive data exists for their landing pages:

  • Has their positioning changed in the last 6-12 months?
  • What campaigns did they retire? (Possible losers)
  • What campaigns have they scaled up? (Possible winners)

3E: Vulnerability Analysis

Identify weaknesses in their ad strategy:

Vulnerability TypeDescription
Message-LP mismatchAd promises one thing, LP delivers another
Single-persona dependencyAll ads target the same persona — missing segments
Platform concentrationHeavy on one platform, absent from others
No social proofAds or LPs lack credibility markers
Weak CTAAsking for too much too soon (demo before value)
Generic positioningClaims anyone could make — not differentiated
Stale creativeSame ads running unchanged for months — fatigue risk

Phase 4: Output Format

# Competitor Ad Teardown: [Competitor Name] — [DATE]

Domain: [competitor.com]
Channels analyzed: [Meta, Google]
Total ads found: [N] (Meta: [N], Google: [N])
Unique landing pages: [N]
Estimated active campaigns: [N]

---

## Executive Summary

[3-5 sentence summary: What is this competitor doing with paid ads? What's working? Where are they vulnerable?]

---

## Campaign Breakdown

### Campaign 1: [Inferred Campaign Name]
- **Ads in cluster:** [N]
- **Platform(s):** [Meta / Google / Both]
- **Strategic intent:** [Awareness / Lead gen / Competitive displacement / etc.]
- **Target persona:** [Description]
- **Hook strategy:** [Type]
- **Landing page:** [URL]
  - Hero: "[Headline text]"
  - CTA: "[Button text]"
  - Message match: [Score/10]
- **Longevity:** [First seen date → status]
- **A/B tests detected:** [Yes/No — what they're testing]

**Sample ad:**
> **Headline:** [text]
> **Body:** [text]
> **CTA:** [button]
> **Format:** [Image/Video/Carousel]

**Assessment:** [1-2 sentences — is this working? Why/why not?]

### Campaign 2: ...

---

## Funnel Map

[Ad: Hook/Angle] → [LP: /landing-page-url] → [CTA: Book Demo] ↓ [Ad: Different angle] → [LP: /same-or-different] → [CTA: Free Trial]


---

## Budget Allocation Estimate

| Platform | Share | Focus Area |
|----------|-------|-----------|
| [Platform] | [X%] | [Intent] |

---

## What's Working (Long-Running Ads)

| Ad | Platform | Running Since | Why It Likely Works |
|----|----------|--------------|-------------------|
| [Headline excerpt] | [Platform] | [Date] | [Analysis] |

---

## Vulnerability Report

### 1. [Vulnerability]
**Evidence:** [What we observed]
**Your opportunity:** [How to exploit this gap]

### 2. ...

---

## Recommended Counter-Plays

### Counter-Play 1: [Name]
- **Target their weakness:** [Which vulnerability]
- **Your ad angle:** [Hook]
- **Platform:** [Where to run]
- **LP strategy:** [What your landing page should emphasize]

### Counter-Play 2: ...

Save to clients/<client-name>/ads/competitor-teardown-[competitor]-[YYYY-MM-DD].md.

Cost

ComponentCost
Meta ad scraper~$0.20-0.50 (Apify)
Google ad scraper~$0.20-0.50 (Apify)
Landing page fetchingFree
Web Archive lookup (deep mode)Free
AnalysisFree (LLM reasoning)
Total~$0.40-1.00

Tools Required

  • Apify API tokenAPIFY_API_TOKEN env var
  • Upstream skills: meta-ad-scraper, google-ad-scraper
  • fetch_webpage — for landing page analysis

Trigger Phrases

  • "Tear down [competitor]'s ads"
  • "What's [competitor] running on Meta/Google?"
  • "Reverse-engineer [competitor]'s paid funnel"
  • "Deep ad analysis on [competitor]"
  • "Find weaknesses in [competitor]'s ad strategy"