Instagram Carousel Hook A/B: 4 Openers, Same 8 Slides (Claude)
Contents
I spent a Sunday in September building four carousels. The body was identical. Eight slides, same Canva template, same font, same color block. The only thing that changed was the cover. On Monday morning I queued them as A/B/C/D, one post per day for a week, and waited. Three days in, the spread was already obvious. By Sunday, one opener had pulled 3.1x the reach of the weakest one. Same slides. Different door.
Here's the exact setup.
The four opener archetypes
I picked the four opener types that show up in nearly every high-performing carousel I've audited since 2024:
| Type | Job | Example for a post about cold email deliverability |
|---|---|---|
| Question | Mirror a thought the reader already has | "Why do your cold emails land in spam?" |
| Contrarian | Punch a hole in conventional wisdom | "Cold email is dead. Long live cold email." |
| Stat | Open a number-shaped curiosity gap | "83% of cold emails get filtered. Here's the 17% that don't." |
| Story | Make it personal, not instructional | "I sent 1,000 cold emails last month. 47 replies. Here's the template." |
I keep the table as a reference and hand it to Claude as a constraint. It stops the model from drifting into a fifth "tip" style I didn't ask for.
The Claude prompt
I run this once per carousel topic, in a single message:
I'm writing the cover slide of an Instagram carousel. The topic is [TOPIC]. The audience is [AUDIENCE]. The goal of the post is [saves / link clicks / follows].
Generate exactly 4 cover slide openers, one for each of these types: question, contrarian, stat, story. Each opener must be under 12 words, written in second person, and must create a curiosity gap the rest of the 8 slides can pay off. No emojis, no hashtags, no CTA verb. Return as a markdown table with columns: Type | Opener | Why it might work (one sentence).
The "Why it might work" column is the part I underestimated. It forces Claude to expose its reasoning, which makes it obvious when the model has produced a generic opener dressed up as a stat. I delete anything where the reasoning is hand-wavy.
The test protocol
I post the four carousels on the same weekday for four consecutive weeks — not the same week, because Instagram's distribution system will dedupe near-identical posts. The body stays untouched. The cover is the only variable.
Metrics I watch, in this order:
- Hook hold rate at 1 hour — saves + shares in the first 60 minutes. This is the cleanest signal of whether the cover did its job.
- Swipe-through rate at 24 hours — what percentage of viewers reached slide 8.
- Reach per impression at 7 days — the spread between the strongest and weakest opener.
I do not look at likes. Likes lag, and a strong stat hook will often pull more saves than likes. The metric that decides the winner is hook hold rate.
What the test actually told me
Across 11 topic-and-opener pairings I've run this way, the stat opener won 5 times, story won 4, question won 2, contrarian won 0. Contrarian was consistently the most-shared and the least-saved — it gets people to react, not to read.
The bigger lesson: the body of the carousel barely moved the numbers. The cover did almost all of the work. Building four covers with Claude takes me about 12 minutes. Building the eight slides underneath takes about 40. I had the ratio inverted for years.
Stop A/B-testing the whole post. A/B-test the door.