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
Install / Use
npx skills add gooseworks-ai/goose-skills --skill competitor-ad-intelligenceInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
SecuritySupported Platforms
Tags
Our assessment of competitor-ad-intelligence
competitor-ad-intelligence scores 93/100 on our quality scale, 375th of 1,131 Security skills we index (top 34%).
Its SKILL.md is 17 KB long, well organised into 53 sections with 6 code examples: a thorough specification that gives an agent plenty to work with.
With 1,222 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 33 days ago, so competitor-ad-intelligence is actively maintained.
- Our last check on 2026-10-26 found the source still online.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-10-26. Automated pattern scan on 2026-10-26. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
competitor-ad-intelligence compared with similar skills
All 4 of these similar skills score higher than competitor-ad-intelligence; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| competitor-ad-intelligence (this skill)by gooseworks-ai | 93 | 1.2k | 33d ago | SKILL.md |
| algorithmic-artby anthropics | 100 | 177.9k | 33d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 33d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 137.2k | 11d ago | SKILL.md |
| ui-ux-pro-maxby nextlevelbuilder | 100 | 137.2k | 11d ago | SKILL.md |
Frequently asked questions
- How do I install competitor-ad-intelligence?
- Run
npx skills add gooseworks-ai/goose-skills --skill competitor-ad-intelligence. The install tabs above show the steps for each supported agent. - Which AI agents does competitor-ad-intelligence work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is competitor-ad-intelligence safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is competitor-ad-intelligence still maintained?
- The repository was last updated 33 days ago, so competitor-ad-intelligence is actively maintained.
Skill content
View source on GitHubname: 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.
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:
- Competitor names + domains (e.g.,
apollo.io,clay.run) - Your product/domain — for comparison framing
- Channels: Meta, TikTok, Google, LinkedIn, or all relevant libraries? (default: all channels relevant to the brand and market)
- Depth level:
- Standard: Ad scrape + creative analysis + landing page analysis
- Deep: Standard + historical comparison + funnel reconstruction + counter-plays
- Product category — helps frame analysis
- 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-intelligenceto 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.
Save confirmed Google research in GooseWorks
When the user wants saved research and the connected app exposes ads_library_scrape, use the durable import path. First identify the exact public advertiser URL/AR ID and the existing brand competitor ID. Ask the user to confirm that advertiser belongs to the selected competitor and approve the ad, request and provider USD limits. Do not infer that confirmation from a name or the first discovery result.
{
"tool": "ads_library_scrape",
"arguments": {
"brand_id": "<active brand UUID>",
"library_provider": "google",
"advertiser_id": "AR01614014350098432001",
"relationship": "competitor",
"competitor_id": "<existing competitor UUID in this brand>",
"name": "<confirmed advertiser label>",
"confirmed": true,
"max_ads": 10,
"max_provider_requests": 11,
"max_spend_usd": 0.10,
"refresh": false
}
}
max_ads accepts 1–25; max_provider_requests accepts 1–26 and includes the listing; max_spend_usd must be positive and at most 5. The USD cap uses the app's configured provider tariff; imports use managed workspace credits. The example limits are examples, not permission to spend. An exact advertiser URL can replace advertiser_id using ad_library_url.
Poll the returned stable source_id using job_get { "kind": "library_scrape", "brand_id": "<same brand UUID>", "job_id": "<source_id>" }. Read the saved entries, canonical Google creative citations, added/changed/unchanged/failed counts and actual/null cost receipts from result. Report queued/running/partial/empty/failed states honestly. A saved source can be imported again with source_id; refresh:true incurs detail requests and needs fresh explicit limits/confirmation. Complete saved details are reused otherwise. Research is reference-only: no activation, remix rights, guaranteed downloadable videos or approved claims.
Unconfirmed discovery stays separate. Browse the public library to select an advertiser; generic provider results are temporary until this confirmed import succeeds. If the live app does not expose the Google fields, report that limitation and retain cited temporary research rather than claiming it was saved. The generic data_call_provider operation, does not persist a Google source.
Temporary provider research
Use the structured advertiser endpoints for temporary research only after any required paid-call approval. This path alone does not save entries in the brand:
- 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:
url: "[adUrl returned by the advertiser listing]"
Pass the full public Google creative URL to the detail endpoint; a creative ID alone is not its input. See the official detail contract.
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] | | Carousel | [N] | [N] | N/A | [N] | | Search text | N/A | N/A | [N] | N/A | | Display banner | N/A | N/A | [N] | [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"
Phase 6: Landing Page & Funnel Analysis
For each unique landing page URL found in ads, fetch and analyze:
fetch_webpage: [landing_page_url]
Or use curl if fetch_webpage is unavailable.
Extract per landing page:
- 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)
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
Per-Campaign Funnel Analysis
For each campaign cluster:
| Dimension | Analysis | |-----------|----------| | Strategic intent | What is this campaign trying to achieve? (Awareness / Lead gen / Free trial / Competitive displacement) | | Target persona | Who is this ad speaking to? (Role, pain, stage) | | Positioning bet | What market position are they claiming? | | Hook strategy | Fear / Outcome / Social proof / Contrarian / Product-led | | Conversion path | Ad → LP → CTA → [Demo call / Free trial / Content download] | | Longevity signal | How long has this been running? Treat duration as sustained use, not proof of performance. | | A/B tests detected | Multiple creatives to same LP = active testing |
Portfolio Emphasis
Use ad volume and platform distribution to describe where the visible portfolio is concentrated:
| Platform | Ad Count | % of Visible Portfolio | Likely Objective | |----------|----------|------------------------|------------------| | Meta (Facebook) | [N] | [X%] | [Awareness / Retargeting] | | Meta (Instagram) | [N] | [X%] | [Visual / younger audience] | | TikTok | [N] | [X%] | [Creator-led discovery / conversion] | | Google Search | [N] | [X%] | [Bottom-funnel capture] | | Google Display | [N] | [X%] | [Awareness / retargeting] | | YouTube | [N] | [X%] | [Education / awareness] | | LinkedIn | [N] | [X%] | [Professional / partnership / high-consideration] |
Treat
Truncated for display — read the full file on GitHub.
Related Skills
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
137.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
ui-ux-pro-max
137.2kUI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
