К основному содержанию
скилл CX Codex

researching-competitor-ads — скилл для Claude Code

Собирает объявления конкурентов, смотрит видео и читает картинки через vision-модель и показывает, какие креативы держатся дольше всех, а какие сняли.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add SupercmoHQ/superCMO-skills --skill researching-competitor-ads -a claude-code
Открыть на GitHub

Что делает researching-competitor-ads

Скилл ведёт исследование в шесть шагов. Сначала определяет конкурентов: берёт их из competitors.md в ./supercmo-company, спрашивает у вас имя и сайт или ищет кандидатов через url_extraction и social_research по meta_ad_library и search_ads. Дальше уточняет рынок и глубину прогона — быстрый скан или подробный анализ — и тянет живые и остановленные объявления отдельно.

Затем скрипт scripts/build_ledger.py собирает всё в ledger.md: счётчики по конкурентам, кампании, длительность показов, формат и призыв к действию. Из этой таблицы берётся список роликов и статики для просмотра, и они уходят пачками до десяти штук в video_analysis и image_analysis. Каждый разбор сразу пишется в per-ad-teardowns.md, итог — ad-set-analysis.md.

Нужен Python 3, потому что без него шаг с ledger не отработает. Разбор идёт только по длинному концу выборки: свежие объявления попадают в таблицу, но чаще остаются непросмотренными, так что выводы о том, что конкурент пробует сейчас, будут неполными. Скилл ничего не генерирует и не рекомендует — за планировку кампаний отвечает отдельный planning-campaigns.

Какие задачи решает

  • увидеть, какие объявления конкурент крутит прямо сейчас
  • найти креативы, которые держатся в показах дольше остальных
  • понять, какие объявления конкурент тихо снял
  • разобрать структуру ролика: хук, темп, момент появления продукта, оффер
  • найти углы, которых в категории ещё никто не занял

Примеры запросов агенту

  • Изучи рекламу конкурентов из competitors.md и покажи, что у них держится дольше всего
  • Сделай разбор объявлений бренда и найди углы, которые в категории никто не пробовал
  • Прогони быстрый скан рекламы конкурентов по рынку и собери отчёт

Как установить researching-competitor-ads

1Через Skills CLI (Vercel)

npx skills add SupercmoHQ/superCMO-skills --skill researching-competitor-ads -a claude-code

2Вручную: положить файлы

~/.claude/skills/researching-competitor-ads/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/researching-competitor-ads/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о researching-competitor-ads

Как установить researching-competitor-ads в Claude Code?

Выполните npx skills add SupercmoHQ/superCMO-skills --skill researching-competitor-ads -a claude-code, после чего файл скилла окажется по пути ~/.claude/skills/researching-competitor-ads/SKILL.md.

Что делает researching-competitor-ads?

Собирает живые и остановленные объявления конкурентов, отбирает самые долгоиграющие и просматривает их через vision-модель. На выходе — таблица с подсчётами и разбор паттернов по всей выборке.

Чем этот скилл отличается от planning-campaigns?

Здесь только исследование: ничего не генерируется и не рекомендуется. Решение, что делать дальше, — задача planning-campaigns.

Исходный текст

SKILL.md · Apache-2.0
---
name: researching-competitor-ads
description: Analyzes the ads competitors are running — the ones live now, the ones they have already stopped, and which have run longest. Watches the video ads and reads the image ads with a vision model, so every finding comes from the ad itself rather than its caption. Finds the patterns across the set — what is holding, what was dropped, and what nobody runs. Research only — nothing is generated or recommended here. Use when the user wants competitor ads researched, an ad teardown, a competitive or category analysis, to see what ads a named brand is running, or to find what is working and what nobody has tried yet.
license: Apache-2.0
metadata:
  version: "0.3.2"
  category: creative
  summary: "Analyzes what your competitors are advertising and shows you what is actually working — the ads that have run longest, the ones they quietly dropped, and what the winners have in common. A vision model watches the image and video ads that carry the signal — the long-runners, the ones just launched, the ones they dropped — the whole way through. So you learn how each one is built: the hook, the pacing, when the product lands, the proof and the offer. You also get the angles nobody in your category has taken."
---

# Competitor ads

Analyze what competitors are advertising, work out what is holding, and map what the category
covers. **Research only — nothing is generated, posted or planned here.** Deciding what to make
next is `planning-campaigns`' job.

## Workflow

### Step 1: Settle who the competitors are

Three ways to find out. Try them in order, and stop at the first one that works.

- **Read them from `competitors.md`** in `./supercmo-company`. Where it
  is absent or empty, move on.
- **Ask the user**, for a name and a website for each competitor.
- **Find candidates**, only where the user doesn't know. Call `url_extraction` on the user's own
  website to learn what they sell in their own words, then `social_research` on `meta_ad_library` /
  `search_ads` using those words. Each ad names the advertiser who ran it. Show the user a plain list
  of those advertiser names with the number of ads each appeared on, most ads first — nothing else —
  and ask which are real competitors.

You need **a name** for each competitor, and a website where there is one: Step 3 uses the domain to
prove the ads came from the right company. A competitor saved as "website unconfirmed" needs no
question: Step 3 checks its page by what its ads sell, and takes its website from the ads.

### Step 2: Scope the run

Ask once, bundled into a single message, always with a free-text way out. Skip any of these the brief
already answers.

| Ask | When | How |
| --- | --- | --- |
| **The country the ads run in** | The brief names no market and the user's own site implies none. | Offer the likely markets, and a way to type another. |
| **How deep to go** | The brief doesn't say. | Offer the quick scan first and recommend it; say a detailed analysis watches many more ads per competitor, and costs accordingly. |
| **What they want to learn** | Optional, and only where the brief says nothing at all about what the research is for. | **One open field, no options to choose from.** Ask what they want to come away knowing. |

**Take whatever the brief says about what they are after, in their own words, and don't ask again.**
Carry those words through to the analysis, which closes by answering them.

Where nothing is given and nothing is answered, run it neutrally: a quick scan, the market the user's
own site sells to, and a report that says no goal was set. Say in one sentence what you took, and
keep going.

Every number is per competitor, so a run costs what it costs times the number of competitors. Step
4's script holds them and enforces them — pass it the depth and don't re-count.

| Depth | Ads kept, live / stopped | Ads watched, live / stopped |
| --- | --- | --- |
| Quick scan | 30 / 30 | 4 / 2 |
| Detailed analysis | 60 / 60 | 20 / 20 |

### Step 3: Pull each competitor's ads

Read `references/pulling-competitor-ads.md` and follow it. Pull the live set and the stopped set
separately, and keep them apart.

Every pull is written to a response file, and the call returns its path in `saved.path`. All of a
run's responses land in one directory — **note that directory**, it is Step 4's only input. Read
`saved.cursor` for the next page. Don't take the ads apart yourself.

### Step 4: Build the ledger

Run the script over the directory the responses were saved to:

```bash
python3 <skill-dir>/scripts/build_ledger.py <responses-dir> --depth <quick|detailed> --out <saved.output_dir>
```

`--depth` is what Step 2 settled. `--out` is `saved.output_dir`, the same on every response of the
run — the folder the tool set aside for it. Run the script by its full path rather than moving into
the skill directory. **Every file this run produces goes in that folder.**

**Read `ledger.md`.** It holds the counts and campaigns per competitor, the ads to watch with their
media URLs, the copy every ad ran with — grouped so repeated wording shows as repeated — and the row
behind every ad. Say in one line how many ads are in the ledger and how many
are marked to watch, then carry on — don't stop for approval. The cap lines at the top of the file
go into the analysis's coverage section verbatim.

### Step 5: Watch the ads

Read `references/reading-one-ad.md` and follow it.

`ledger.md`'s **Watch these** section lists each ad's `ref` and its media URL, split into videos and
stills. Send them in batches of at most ten — `video_analysis` for the videos, `image_analysis` for
the stills. They are watched in parallel, so a batch takes about as long as its slowest ad.

**Write each teardown to `per-ad-teardowns.md` in the run's folder, as its batch comes back** — the
`ref` as a heading, then the teardown verbatim. Never watch the same `ref` twice, and never watch an
ad the ledger didn't mark.

### Step 6: Read the set and write the analysis

Read `references/reading-the-set.md` and follow it. It writes `ad-set-analysis.md` into the run's
folder.

Name the patterns from the teardowns, then check them **against the ledger**, citing `ref`s and
counts. A claim with no `ref`s behind it doesn't go in.

**Analyse the whole ledger, not only the ads you watched.** Every row carries run length, status,
format, campaign and call-to-action, so the run-length distribution, the format mix and the campaign
structure are drawn from all of them — including the rows marked `no (outside the watch allowance)`
or `no (same creative as an ad already watched)`. Only findings about how an ad is built come from
the teardowns, and those are counted over the ads actually read.

The ads read are each competitor's longest-running, live and stopped taken separately. That is a
sample of the long end, not of the whole set — so the newest ads are in the ledger but mostly
unwatched, and any claim about what a competitor is trying now rests on metadata and copy.

### Step 7: Hand it over

The run's folder holds `ledger.md`, `per-ad-teardowns.md` and `ad-set-analysis.md`.

**Open the reply by answering the user's question, in their words.** Use what they asked for in the
brief, or what they said at Step 2.

**If they never asked for anything specific, give what the category covers** — the patterns that
dominate, each with its counts, and the space nobody runs.

Back the answer with the two or three findings from the analysis it rests on, each with its count and
`ref`s. Nothing else from the analysis goes in the reply — it is on disk. Close with the folder.

## Edge cases

- **`error: "no_provider_configured"`** on any tool → relay the tool's `hint` (the user must set their key).
- **A pull comes back empty under the market filter** → record it as empty for that market. Don't
  re-pull without `country`.
- **`build_ledger.py` says a response is unprojected** → that pull went out without `trim: true`,
  which is the default. Pull it again with `trim: true` and re-run the script.
- **The ledger holds a competitor this run never asked about** → the responses directory carries an
  earlier run's pulls. Pass this run's response files instead of the directory; the script takes a
  list of paths.
- **`build_ledger.py` reports fewer ads than you pulled** → a response in the directory failed or came
  back empty and was skipped. Open the first lines of each file to find it, relay what it says, and
  re-run that pull.
- **`video_analysis` rejects a clip as too large**, or **an ad's creative can't be fetched** → record
  that `ref` as unwatched in `per-ad-teardowns.md` and name it in the analysis's coverage. The row
  stays in the ledger and in every count that comes off metadata.
- **`url_extraction` isn't available** → Step 1's discovery route can't run; ask the user instead.
- **Discovery returns advertisers unrelated to the category** → drop that route and ask the user.
- **The user gives a website but no name** → take the brand name off the site and carry on.

## Scripts

- `scripts/build_ledger.py` — reads the run's responses and writes `ledger.md` (Step 4). Python 3, standard library only; `--help` gives the full usage.

## Reference

- `references/pulling-competitor-ads.md` — reaching the right advertiser and pulling what it runs: the endpoints and their accepted values, proving the page belongs to the competitor, paging deep enough to reach the long-runners, what each ad comes back carrying, and the traps that bill for nothing (Step 3).
- `references/reading-one-ad.md` — the prompts sent to the vision model for a video and for a still, and how each teardown is recorded (Step 5).
- `references/reading-the-set.md` — turning the teardowns and the ledger into `ad-set-analysis.md`: coverage and limits, naming a pattern rather than assuming one, the lines of inquiry, how much evidence a conclusion needs.

© SupercmoHQ · Apache-2.0 · SupercmoHQ/superCMO-skills

Похожие скиллы

Всё по теме «Маркетинг и контент» →
seo-audit coreyhaines31 Скилл проводит технический и on-page аудит сайта: краулинг, индексация, Core Web Vitals, метатеги, hreflang. Пригодится, когда трафик упал или страницы застряли на второй выдаче. CX Codex +1 237 600установок programmatic-seo coreyhaines31 Скилл помогает планировать генерацию сотен посадочных страниц на базе шаблонов и структурированных данных. Позволяет избежать санкций поисковиков за пустой контент. CX Codex +1 149 700установок copy-editing coreyhaines31 Правит уже написанный маркетинговый текст: убирает речевые штампы, чистит формулировки и обновляет устаревшие страницы. Для нового текста с нуля не подходит. CX Codex +1 149 100установок marketing-ideas coreyhaines31 Скилл помогает подобрать маркетинговые идеи для SaaS или другого программного продукта с учётом этапа развития и доступных ресурсов. Пригодится, когда непонятно, с какого канала начать. CX Codex +1 146 900установок sales-enablement coreyhaines31 Скилл для ИИ-агента, который собирает презентации, one-pager'ы, скрипты демо и документы для отработки возражений. Пригодится, когда команда продаж просит материалы, а не очередную презентацию о продукте. CX Codex +1 118 800установок revops coreyhaines31 Скилл помогает проектировать RevOps: вести лидов по этапам, считать скоринг и выстраивать передачу из маркетинга в продажи. Нужен для CRM-процессов. CX Codex +1 113 500установок

Из того же набора9

writing-video-prompts Пишет motion-промпт для видеоклипа: что движется, как ведёт себя камера, физика и звук. Ничего не генерирует — только текст промпта. CX Codex +1 ★ 205звёзд репо identifying-competitors Скилл находит, с кем конкурирует бренд: читает сайт, ищет в вебе альтернативы и предлагает список с названиями и адресами. CX Codex +1 ★ 205звёзд репо generating-storyboards Собирает раскадровки для видео: по одному листу на клип, вертикальные панели в ряд, каждое действие отдельно. Пригодится, когда длины клипов и сюжет уже решены, а анимации ещё нет. CX Codex +1 ★ 205звёзд репо generating-image-ads Скилл превращает фото товара или ссылку на него в готовый статичный рекламный кадр — один или целый набор под разные пропорции. CX Codex +1 ★ 205звёзд репо generating-ai-actors Собирает одного фотореалистичного человека как отдельное изображение. Дальше это изображение подставляется в новые генерации, и лицо, волосы и телосложение остаются те же. CX Codex +1 ★ 205звёзд репо analyzing-products Разбирает страницу товара или фотографию и отдаёт готовые факты: описание, подходящие изображения, устройство и детали внешнего вида. CX Codex +1 ★ 205звёзд репо adapting-formats Пересобирает готовый рекламный баннер под другие пропорции: продукт, текст и стиль остаются теми же. Пригодится, когда один креатив нужно раскатать на несколько форматов. CX Codex +1 ★ 205звёзд репо SuperCMO Создаёт рекламные изображения и видео по фото товара и брифу. Пригодится, когда нужно подготовить ролик с AI-актёром и собрать его из отдельных сцен. CX Codex +1 ★ 205звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой