← ClaudeAtlas

spy-competitor-adslisted

Downloads a competitor's live ad creatives — the actual MP4s and JPEGs — from the Meta Ad Library into a local swipe folder, through the Novoads API. One sweep per competitor, priced by a live estimate before anything is charged, media pulled the moment the response lands because the CDN links expire, and every ad carried with its permanent Ad Library URL, the page running it, and how many audiences the creative is running against, closing with the three most established and why. Use when asked to spy on competitors, find what ads a brand is running, pull a competitor's video or static creatives, build or refresh a swipe file, check who is outspending you on Meta, or source a reference ad to recreate. It finds, ranks and files ads; it does not rebuild them — a static becomes your own ads, or a reusable template, via clone-image-ad. It writes no craft analysis and no creative brief. A sweep that finds nothing is a result, never an apology.
novoads/claude-code-ads · ★ 14 · AI & Automation · score 73
Install: claude install-skill novoads/claude-code-ads
# Spy Competitor Ads Find what a competitor is actually running, and put the files on disk. That is the whole job. It ranks what it finds, on evidence the Ad Library actually publishes — how long a creative has run and how many audiences it runs against. It does **not** judge craft, explain "why it's winning", or write a brief; it has not watched these ads and neither have you. What you do with them belongs to `clone-image-ad`, which turns a static into your own ads, a reusable template, or both. The mechanics are one HTTP call per competitor. Everything that makes a run good or bad is judgement: which competitors, which media mode, and which of the returned ads are actually the brand's rather than somebody else's. ## Before anything: this runs on a Novoads account - **Base URL:** `https://api.novoads.ai/v1` (host overridable with `NOVOADS_BASE_URL` — host only, you append `/v1`). - **Auth:** `Authorization: Bearer $NOVOADS_API_KEY`, read from `.env` at the repo root. The key is `novo_` plus 64 hex. - **Check:** `./scripts/check-novoads-env.sh` - **Never** print API keys, commit `.env`, or paste a key into `MASTER_CONTEXT.md`. > **REST key required. A Novoads MCP connector is not a substitute.** If > `NOVOADS_API_KEY` is missing or still the placeholder, stop before any > generation work and tell the user: "Before continuing, create an API key at > <https://novoads.ai/dashboard/settings?tab=api> and paste it into `.env`." > That holds even when `mcp__novoads__*` too