Systems Lab

Agent skill

ad-creative-intelligence

Scrape competitor ads from Meta and Google ad libraries, cluster by hook/angle/format, and surface new creative directions your team hasn't tested.

dormantNeeds a keyActs undeclared914 words

Filed under Positioning and messaging.

From edupegoretti/fluidz-skills · 116 skills · 0 · pushed 2026-03-11

What it does when it runs

Scrape competitor ads from Meta and Google ad libraries, cluster by hook/angle/format, and surface new creative directions your team hasn't tested. Chains meta-ad-scraper and google-ad-scraper. Use when a marketing team wants to understand the competitive ad landscape before launching a campaign, or wants fresh creative inspiration from what's already working in the market.

Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
  • APIFY_API_TOKEN
Hosts it reaches
No third-party host appears in the skill or its bundled files.
Tool permissions it declares
No allowed-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
shellwrites files

Ask about ad-creative-intelligence

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/edupegoretti/fluidz-skills.git /tmp/fluidz-skills
git -C /tmp/fluidz-skills sparse-checkout set "skills/composites/ad-creative-intelligence"
mkdir -p ~/.claude/skills/ad-creative-intelligence
cp -R "/tmp/fluidz-skills/skills/composites/ad-creative-intelligence/." ~/.claude/skills/ad-creative-intelligence/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Before you install: this skill will not complete its job on a bare agent. It needs APIFY_API_TOKEN, which you have to obtain separately.

Reproduced in full from edupegoretti/fluidz-skills/blob/a2cf697e2e8ec2ea517d85496e2d5c7f5dc44cd3/skills/composites/ad-creative-intelligence/SKILL.md, which is licensed MIT (repository). 914 words, 30 headings.

Ad Creative Intelligence

Scrape competitor ads from Meta and Google, then analyze creative patterns — hooks, formats, angles, CTAs — to find directions you haven't tried and identify what's resonating in the market.

Core principle: The best ad creative teams don't guess. They start with evidence from what's already working, then differentiate.

When to Use

  • "What ads are my competitors running?"
  • "Find new creative angles for our paid campaigns"
  • "What hooks are working in [our space]?"
  • "I want to audit the ad landscape before we launch"
  • "What format — video, image, carousel — is dominant in our category?"

Phase 0: Intake

  1. Competitor names and website domains (e.g., apollo.io, clay.run)
  2. Your own domain (to optionally include for self-audit comparison)
  3. Channels to cover: Meta only, Google only, or both? (default: both)
  4. Time range: active ads only (default) or historical?
  5. What's your product category? (helps with analysis framing)

Phase 1: Scrape Meta Ads

Run meta-ad-scraper for each competitor:

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

Collect per ad:

  • Ad copy (headline + body text)
  • Visual description / media type (image, video, carousel)
  • CTA button text
  • Landing page URL
  • Estimated run time (active duration proxy)
  • Platforms (Facebook, Instagram, etc.)

Phase 2: Scrape Google Ads

Run google-ad-scraper for each competitor:

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

Collect per ad:

  • Headline variants (up to 3)
  • Description lines
  • Ad type (search, display, YouTube)
  • Landing page URL

Phase 3: Cluster & Analyze

After collecting all ads, perform structured analysis:

Hook Pattern Clustering

Group all ad headlines/openers by hook type:

Hook TypePatternExample
Fear/LossRisk of missing out or falling behind"Your competitors are already using AI SDRs"
OutcomeDirect result promise"10x your pipeline in 30 days"
QuestionChallenges current assumption"Still doing outbound manually?"
Social proofNames customers or numbers"Join 500+ B2B teams using [product]"
ContrarianChallenges conventional wisdom"Cold email isn't dead. Your copy is."
EmpathyValidates their pain"We know SDR ramp time is brutal"
Product-ledFeature 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

FormatMetaGoogle
Static image[N]N/A
Video[N][N]
Carousel[N]N/A
Search textN/A[N]
Display bannerN/A[N]

CTA Taxonomy

List all unique CTAs found. Common patterns:

  • Urgency: "Start free", "Try now", "Get started today"
  • Low-friction: "See how it works", "Watch demo", "Learn more"
  • Outcome: "Book a demo", "Get your free audit", "Calculate your ROI"

Landing Page Analysis

For top-traffic ads (those running longest), note:

  • What angle does the landing page reinforce?
  • Is the LP general or campaign-specific?
  • What's the primary conversion goal?

Phase 4: Gap Analysis & Recommendations

Identify:

  1. Angles nobody is running — Hook types absent from competitor ads = white space
  2. Overcrowded angles — If everyone leads with "save time", avoid it or be more specific
  3. Format opportunities — If no one is running video in your space, it may stand out
  4. Underutilized proof — Are competitors avoiding specific proof points you could own?
  5. CTA patterns to test — What CTAs do the longest-running ads use?

Phase 5: Output Format

# Ad Creative Intelligence Report — [DATE]

## Coverage
- Competitors analyzed: [list]
- Meta ads collected: [N]
- Google ads collected: [N]

---

## Meta Ad Analysis

### Hook Distribution
| Hook Type | [Comp1] | [Comp2] | [Comp3] |
|-----------|---------|---------|---------|
| Fear/Loss | 40% | 10% | 0% |
| Outcome | 30% | 50% | 60% |
...

### Top Performing Ads (Longest Running)
**[Competitor] — [Ad Title/Hook]**
> [Ad copy excerpt]
- Format: [type]
- CTA: [text]
- Running since: [date]
- Why it likely works: [analysis]

---

## Google Ad Analysis

### Headline Patterns
[Top headline structures with examples]

### Most Common CTAs
[ranked list]

---

## Creative Gap Analysis

### Angles Nobody Is Running
1. [Angle] — Why it could work for you: [reasoning]
2. [Angle] — ...

### Overcrowded Angles (Avoid or Differentiate)
- [Angle] — [N] of [N] competitors use this

### Format White Space
- [Format] is not being used by competitors on [platform]

---

## Recommended Creative Experiments

### Experiment 1: [Name]
- Platform: [Meta/Google]
- Format: [type]
- Hook angle: [type]
- Proposed headline: "[headline]"
- Proposed body: "[copy]"
- Why test this: [rationale]

### Experiment 2: ...

Save to clients/<client-name>/intelligence/ad-creative-intel-[YYYY-MM-DD].md.

Cost

ComponentCost
Meta ad scraper (per competitor)~$0.20-0.50 (Apify)
Google ad scraper (per competitor)~$0.20-0.50 (Apify)
Total for 3 competitors~$1-3

Tools Required

  • Apify API tokenAPIFY_API_TOKEN env var
  • Upstream skills: meta-ad-scraper, google-ad-scraper

Trigger Phrases

  • "What ads are [competitor] running?"
  • "Audit the ad landscape for [product category]"
  • "Run ad creative intel for [client]"
  • "Find new paid ad angles we haven't tried"

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what ad-creative-intelligence does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.