Ad Creative Intelligence
Published by gooseworks-ai in goose-skills
What this skill does
>
Add Ad Creative Intelligence to your agent
Review the source and files first. When you are ready, copy the prompt instruction or use the CLI command supported by your environment.
Install with a prompt
Paste this into a compatible coding agent:
add this skill "ad-creative-intelligence" from https://github.com/gooseworks-ai/goose-skillsInstall with the CLI
Run this command in a controlled environment after reviewing the repository:
npx skills add https://github.com/gooseworks-ai/goose-skills --skill ad-creative-intelligenceSkill instructions
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
- Competitor names and website domains (e.g.,
apollo.io,clay.run) - Your own domain (to optionally include for self-audit comparison)
- Channels to cover: Meta only, Google only, or both? (default: both)
- Time range: active ads only (default) or historical?
- 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 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 | |
|---|---|---|
| Static image | [N] | N/A |
| Video | [N] | [N] |
| Carousel | [N] | N/A |
| Search text | N/A | [N] |
| Display banner | N/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:
- Angles nobody is running — Hook types absent from competitor ads = white space
- Overcrowded angles — If everyone leads with "save time", avoid it or be more specific
- Format opportunities — If no one is running video in your space, it may stand out
- Underutilized proof — Are competitors avoiding specific proof points you could own?
- 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
| Component | Cost |
|---|---|
| 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 token —
APIFY_API_TOKENenv 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 included
- SKILL.md
- skill.meta.json

