Scholar HeistScholar Heist
← All skills
Productionv1.0.0 · 2026-08-07

Carousel Ad Builder

The carousel's mechanics, from the corpus: each card carries its own image and its own headline; the body copy is shared across all of them. That asymmetry is the whole design problem — one argument in the body, a sequence of card-sized points that each stand alone *and* pull the swipe.

Download skill

What it does

  • Pick the sequence logic
  • Build card 1 as the hook card
  • Write the per-card headlines
  • Share the body, aim the links
  • The order test
SKILL.md
---
name: carousel-ad-builder
description: Build Meta carousel ads — the card sequence, per-card headlines and images, one shared body copy, and a first card that earns the swipe. Use when asked to make a carousel ad, plan carousel cards, decide what goes on each card, turn features or steps into a carousel, fix a carousel nobody swipes, or someone says 'should this be a carousel or a single image'. For the shared body copy, see headline-and-primary-text. For single statics, see static-ad-builder.
metadata:
  version: 1.0.0
---

# Carousel ad builder

The carousel's mechanics, from the corpus: **each card carries its own image and
its own headline; the body copy is shared** across all of them. That asymmetry is
the whole design problem — one argument in the body, a sequence of card-sized
points that each stand alone *and* pull the swipe.

Card 1 is a hook with a swipe attached. If it doesn't earn the swipe, cards 2–10
were never built.

## Before you start

| Input | Why |
| --- | --- |
| The angle and the shared body copy | One argument spans the whole unit |
| What the sequence shows — steps, features/objections, products, before→after | Decides the card logic |
| Per-card images available | A carousel without distinct images is a static stretched thin |
| Card 1 hook (from the bank) | The swipe-earner |

Carousel or single static? Choose carousel when the content is genuinely
**sequential or plural** — steps, multiple objections, multiple products. One
point does not need ten cards.

## Step 1 — Pick the sequence logic

| Logic | Cards show | Good for |
| --- | --- | --- |
| Steps | How it works, 1-2-3 | Products that need explaining (the step-by-step converter) |
| Objections | One doubt answered per card | Considered purchases |
| Catalogue | One product/variant per card | Ranges; each card links deep |
| Story | Before → during → after | Transformations, with real proof only |

## Step 2 — Build card 1 as the hook card

- The bank hook as overlay, ≤8 words, hierarchy rules from the static build.
- A visual with **direction** — something visibly incomplete or pointing right
  earns swipes (a numbered "1/5", a cropped edge, an arrow into card 2).
- Brand present early — carousels get deep-swiped less than fully viewed; card 1
  may be all anyone sees.

## Step 3 — Write the per-card headlines

Each card's headline is its own micro-claim, ≤50 characters, standing alone —
swipers land mid-sequence from re-serves. Numbered sequences carry their position
("Step 2: …"). No card's headline repeats the shared body line.

## Step 4 — Share the body, aim the links

- **One body copy for the unit** — it states the argument; cards carry the
  evidence. Write it per headline-and-primary-text.
- Card links: catalogue logic links each card to its product page; every other
  logic sends all cards to one destination. Mixed destinations on a step sequence
  fragment the click.

## Step 5 — The order test

Read the cards in sequence: an argument. Shuffle them: catalogue logic should
survive; steps and story must break. If steps survive shuffling, they were not
steps — rework or switch logic. Then cut: every card either advances the sequence
or leaves. Padding cards teach the swiper to stop.

## Output

```
# Carousel: <persona_angle_variant> · <n> cards · logic: <steps/objections/catalogue/story>

Shared body: "<verbatim from the copy set>"

| Card | Image | Headline (≤50c) | Link |
| 1 HOOK | <visual + direction cue> | "..." | <dest> |
| 2 | ... | "Step 2: ..." | <dest> |
...

Card 1 swipe cue: <what makes it visibly incomplete>
Order test: sequence reads as argument ✓ · shuffle behaves per logic ✓
Naming: persona_angle_variant per export
```

## When it breaks

| What you see | What it means | The fix |
| --- | --- | --- |
| High impressions, no swipes | Card 1 is a cover slide, not a hook | Bank hook + a visible reason to swipe |
| Swipes die at card 2 | Card 1 promised what card 2 doesn't deliver | Card 2 pays the hook immediately; setup moves later |
| Cards repeat the body copy | Asymmetry ignored | Body argues once; each card adds its own micro-claim |
| Carousel loses to the single static | One point stretched across cards | Not plural content — run the static |
| Mid-sequence confusion | Cards don't stand alone | Positioned headlines; each card self-contained |
| Clicks scatter, conversions don't land | Mixed destinations on a non-catalogue sequence | One destination unless each card is its own product |
| Last cards never seen | Sequence too long for its content | Cut padding cards; length is earned per card |

Never pad a carousel to "use all ten cards". Cards are earned one by one, and the
first padding card is where the swiping stops.

## Rules

- **Card 1 is a hook, not a cover**, because the swipe decision is made in the
  same 3 seconds as any other hook.
- **Own headline per card, one shared body** — the corpus mechanics — because
  fighting the format's asymmetry wastes it.
- **Every card stands alone**, because re-serves land swipers mid-sequence.
- **One destination unless catalogue**, because scattered links fragment intent.
- **Story logic uses real proof only**, because a fabricated before→after is a
  fabricated claim across five images instead of one.

## Related skills

- **hook-writer** — card 1's overlay line.
- **headline-and-primary-text** — the shared body copy and headline budgets.
- **static-ad-builder** — per-card assembly rules (margins, E-test, brand lock).
- **ten-angles-copy** — the objections logic maps cards to the angle table.

Reviews

Sign in to leave a review.