AI CEO Lab← All free guides
On this page
Ads · Video

Ad Creative Variations: 15 Ads From One Filming Session

Five hooks, one body, three calls to action, filmed in one sitting in one outfit. Five times one times three is fifteen ads before the camera is put away, and the kaleidoscope turns fifteen into fifty without inventing anything. The maths, the filming sheet, the cut, and the launch order.

Ad Creative Variations: 15 Ads From One Filming Session

Every clinic I work with has the same maths problem. The person on camera can give me one hour a month, if I am lucky. An account that is refreshed every eight to twelve days needs new video every eight to twelve days. One hour does not divide into that, unless you stop filming ads and start filming parts.

So I do not film an ad. I film five openings, one middle, and three endings, back to back, same outfit, same chair. Any opening fits the middle. The middle fits any ending. Five times one times three is fifteen distinct ads from one sitting, and nobody said anything twice.

Then the part most people skip. The fifteen are not the end. Once one combination wins, you change one thing around it, the on-screen title, the first frame, the crop, the speed, the captions, the music, and each change is a new ad the algorithm treats as new. Alex Hormozi calls this the kaleidoscope: one winner, permuted, becomes dozens of ads without a new concept. Hooks are most of the battle, so hooks are what you permute first.

This is the system my agency runs on every talking head client, and it is also what I do for my own content. What follows is the script structure, the filming sheet the person on camera actually holds, the cut, and the launch and kill rules that stop fifteen ads from becoming fifteen guesses.

The three levels

Level 1 · Manual

You film one ad, edit it for a week, run it for a month, and film another when it dies, if you can get the doctor in the chair.

Level 2 · AI + connections

One session produces five hooks, one body and three CTAs as separate takes. Fifteen ads are cut and named by their parts. Three launch at a time with one variable between them. The winner is permuted before anything new is written.

Level 3 · Agents on cadence

Your agent writes the script set, builds the filming sheet, cuts and captions the parts from the recording, assembles the combinations, and queues the next permutations from the hook click rates. The doctor films once a month. Ads ship every week.

Connections for this guide: A phone or camera at eye level, a teleprompter app, a decent microphone. A caption tool. An editor or the command line for the cut. Your ad account for the launch. Your CRM for the numbers the kill rule runs on. The script skill below.

The mental model

Wrong

Write one script, film one ad, edit it beautifully, run it until it dies.

Right

Write parts. Film parts in one sitting. Cut the combinations. Launch three with one variable. Kill the losers in week two. Permute the winner before writing anything new.

RoleTalks to youJob
The setFirstFive hooks of different shapes, one body under 160 words, three CTAs
The sessionSecondOne outfit, one chair, eye level, teleprompter, every part filmed as its own take
The cutThirdParts trimmed and named, combinations assembled, captions and a two line title
The launchFourthThree ads, one variable, hands off 72 hours, hook click rate then cost per lead by CTA
The kaleidoscopeLastWinner permuted: title, first frame, crop, speed, captions, music, opener

Script, film, cut, launch, permute

1. Write the set as parts

One video is one pillar service or one belief to shift. Five hooks of three to five seconds, five different shapes: the buried truth (most people have no idea how this actually works), the before you do this, the contrarian (I turned someone away last week), the identity call out (if you are the one who lost the weight and the skin stayed), the first timer (if this is your first, here is where I would start you). One body under 160 words, first person, to one person, with one honest admission and one concrete mechanism, that never restates a hook, because it has to follow any of the five. Three CTAs filmed separately: book the consult with the location named, the free resource for the people not ready, and a one word comment trigger only if the automation behind it exists. Every line runs the gate: nothing borrowed over five words, no brochure voice, no banned words, zero em dashes, no claim without a number or a mechanism or an honest scope, and nothing the clinic cannot say.

2. The filming sheet the doctor actually holds

Eye level camera, 9:16, the teleprompter app on the phone so she reads into the lens, warm and direct, scrubs or clinic casual, a proper microphone because bad audio kills more ads than bad lighting. The sheet lists every take in order: hook one through five, body (in two or three chunks if it helps), CTA one through three. Same outfit, same chair, same light, so any part cuts to any other. The maths on the sheet for a multi service batch: number of videos times five hooks, plus one body each, plus three CTAs each, all in one session. Tell her it is thirty minutes for one service. It is.

3. Cut the parts, not the ads

Trim each take to its clean start and end and save it under its part name. The body gets audio mastered once and captions once; every combination inherits that. Then assemble: hook plus body plus CTA. Fifteen files, each named by its parts, id, format, hook, person, offer, date, and the ad name equals the file name so the account reports which hook and which CTA won. A two line on-screen title over the first three seconds that withholds the payoff instead of labelling the topic, in the safe zone, not over her face. Check a mid clip frame before captioning so you never double caption. Look at the contact sheet before calling a batch done; every failure in a video pipeline is silent.

4. Launch three, one variable

Not fifteen at once. Three ads, same body, same direct CTA, three different hooks. That is one variable. Hands off for 72 hours. On day four and seven read hook click rate by hook. Then swap the variable: the winning hook against the three CTAs, and read cost per lead by CTA on your CRM count. The indirect CTA, the free resource, usually wins on cost per lead because it catches the people who were never going to book from an ad. Week two, kill the bottom half of the combinations and name the best hook plus body plus CTA.

5. Launch order across services

If the session covered more than one service, the order matters: the education video first, the transparency or pricing video second, the high intent service third, the differentiator fourth, the hero offer last. Each week a new video enters as the previous week's losers leave. Never a single video carrying the account.

6. Turn the kaleidoscope

Once a combination wins, do not write a new one. Change one thing around it and ship it as a new ad. A different two line title. A different first frame. A tighter crop or a wider one. Playback at a slightly different speed. Captions in a different style or colour. Different music, or none. The B roll opener in front of the same hook. A second person filming the same hook. Each is a new ad to the algorithm and costs minutes, not a session. This is how a one hour recording becomes a month of ads. The concept only changes when the permutations stop working or the offer changes.

7. Refresh before it dies

Refresh every eight to twelve days, before frequency passes three. A click rate that has halved is fatigue, not a budget problem, and the fix is a new hook on the same body, which you already have in the folder. Book the next session when two of the five hooks are spent, not when the account is empty.

Starter prompts

Paste these as written. They are short on purpose, because the long ones drift.

The prompt: fifteen ads from one session

You are writing a talking head ad set for my clinic that films in one session and cuts into fifteen ads. Service: [service]. Offer and page: [price shape, city, destination]. On camera: [name, role]. Free resource: [name it, or say none]. Comment automation: [live / not built]. Here are [N] sentences my patients wrote in their own words: [paste]. Write: five hooks of three to five seconds, each a different shape (buried truth, before you do this, contrarian, identity call out, first timer), labelled by shape; one body under 160 words, first person, to one person, with one honest admission and one concrete mechanism, that pairs with every hook and repeats none of them; three CTAs, direct with the location named, indirect for the free resource (skip if none), comment trigger with one word (skip if the automation is not live). Then the filming sheet: eye level, 9:16, teleprompter, microphone, same outfit and chair, every take listed in order with its part name. Then the fifteen combinations with file names in the form id-video-hook-person-offer-date, the launch order (three hooks first with the direct CTA, then the winning hook against three CTAs), and the metrics table (hook click rate, then cost per lead by CTA on my CRM count, then the best combination, kill the bottom half in week two). Rules: no phrase over five words borrowed from anywhere, no brochure voice, zero em dashes, no claim without a number, a mechanism, or an honest scope, nothing my clinic cannot say, no cure or guarantee language, no drug brand names, no invented patient stories; if you need a story, write it as a template marked swap in a real one before filming.

The week two prompt

Results for the first three ads by hook: [paste hook, spend, click rate, leads on my CRM]. And the winning hook against three CTAs: [paste CTA, spend, leads, cost per lead]. Name the best hook plus body plus CTA and why. List the combinations to pause. Then write the kaleidoscope list for the winner: eight permutations that change exactly one thing each (two line on-screen title, first frame, crop, speed, caption style, music, opener B roll, second presenter), with the on-screen titles written out as two lines of two to four words that withhold the payoff. Zero em dashes.

The next session prompt

Two of the five hooks for [service] are spent (frequency over 3, click rate halved). Keep the body. Write five new hooks in five different shapes that do not repeat any wording from the first five: [paste]. Then the filming sheet for a fifteen minute pickup session, same outfit and chair, hooks only. Zero em dashes.

Layer 2

From a script in a chat to a folder of finished ads

The set and the filming sheet come out of any chat. The cut and the launch happen in real tools, and these are the settings that matter.

The recording

9:16 at the highest resolution the phone offers, eye level, a lavalier or a directional microphone, teleprompter app with the sheet loaded. Clap or say the part name before each take so the files can be split without guessing. Check a mid clip frame before captioning; footage sometimes arrives pre captioned.

The cut

Master the body's audio once, target minus 14 LUFS with peaks under minus 1, and never fully denoise: scrubbed room tone reads synthetic. Captions burned once on the body. Titles rendered with an alpha channel (a mov, not an mp4) so they composite over the footage instead of as a black box. Titles two lines of two to four words, capitals, in the middle of the frame, held about three and a half seconds.

Ads Manager

One ad per combination, not dynamic creative, so you know which parts won. Naming: id, format, hook, person, offer, date; utm_content set to the ad name. Standard Enhancements off. Optimise on the real conversion event. Three ads per ad set for the hook test, then the same for the CTA test. Refresh every eight to twelve days.

Give it to your agent, three ways

Same skill, three worlds. Pick the one you actually use. The skill file at the bottom of this page is the instructions in every case.

An agent with connectors (Claude Desktop, Claude Code, Grok Bot)

The script set needs no connector. The cut can run on your own machine with the short form skill I give away, and the permutations of a finished winner can run through Higgsfield's multiplier, which takes one video and returns edited versions.

  1. Claude Desktop or claude.ai: create a Project with the skill from the bottom of this page as the instructions, upload your offer page text and ten patient sentences, and say "fifteen ads from one session for [service]". You get the set, the filming sheet, the combination list with file names, the launch order and the metrics table.
  2. Claude Code, after the session: point it at the folder of takes with the short-form-cut skill from my library (linked below). It trims the parts, masters the body, captions, renders the two line titles, assembles the combinations with the ffmpeg commands in the API block, and stops at each human gate.
  3. Add Higgsfield as a connector, and once a combination wins, hand it the finished file and ask for versions with a different background, crop, pacing, or on-screen text. The face and the words stay.
  4. Connect the ad account read only through Meta's ads MCP (the audit guide shows how) so week two's kill list comes from live hook click rates, not memory.

ChatGPT (a project or a custom GPT)

ChatGPT writes the set and the sheet as well as anything. It cannot cut video, so the edit is your editor or the ffmpeg commands below, and the week two read is a CSV.

  1. Create a Project with the skill as the instructions. Upload the offer page text. Say "fifteen ads from one session for [service]". Get the set, the filming sheet, and the combination list with names.
  2. After the session, assemble in CapCut, DaVinci Resolve, or with the ffmpeg commands. Bring the file names back and ask for the launch order and the ad names.
  3. Week two: export the ad level report from Ads Manager with spend, impressions, CTR, results and cost per result, upload it, and ask which hook won, which CTA won on your CRM count, and what to permute first.

Anything with an API (a token and a curl call)

The cut is a handful of ffmpeg commands. Trim each take to its part, then concatenate any hook, body and CTA into an ad. No keys, no accounts, runs on a laptop.

  1. Trim each take to its clean in and out point and save it under its part name. Re-encode once here so every part shares the same codec, size and audio format; concatenation needs that.
  2. Write a list file per combination naming the three parts, and concatenate without re-encoding.
  3. Loop the combinations so all fifteen files are produced and named by their parts in one go.
# 1. trim a take to a part (repeat per take; same settings for every part)
ffmpeg -ss 00:00:02.0 -to 00:00:06.5 -i session.mov -vf "scale=1080:1920" -r 30 -c:v libx264 -crf 18 -c:a aac -ar 48000 -ac 2 hook1.mp4

# 2. one combination: hook + body + CTA
printf "file 'hook1.mp4'\nfile 'body.mp4'\nfile 'cta1.mp4'\n" > h1-b-c1.txt
ffmpeg -f concat -safe 0 -i h1-b-c1.txt -c copy 01-video-h1-drname-offer-0907.mp4

# 3. all fifteen
for h in 1 2 3 4 5; do for c in 1 2 3; do
  printf "file 'hook$h.mp4'\nfile 'body.mp4'\nfile 'cta$c.mp4'\n" > list.txt
  ffmpeg -y -f concat -safe 0 -i list.txt -c copy "$(printf '%02d' $(( (h-1)*3 + c )))-video-h$h-c$c-drname-offer-0907.mp4"
done; done

Failure modes

Every one of these has happened to me or to someone I set this up for.

FailureFix
Body restates hook two, so five combinations sound brokenThe body follows any hook; rewrite it without any hook's line
Different outfit for the CTAs, cuts look like two daysSame outfit, same chair, same light, one sitting
Fifteen launched at onceThree, one variable, then swap the variable
Judged on the platform's lead countCost per lead by CTA on your CRM count
Comment keyword with nothing behind itBuild the automation first or drop that CTA
Files named final-final-2Name by parts; ad name equals file name; utm_content equals ad name
Batch shipped inaudible; nobody noticed for a dayMaster once, check loudness on the contact sheet, never call it done on an exit code
Title labels the topicTwo lines that withhold the payoff; if a viewer nods makes sense, rewrite
Winner died and you wrote a new conceptPermute the winner first: title, first frame, crop, speed, captions, music, opener
Doctor asked to film again after three weeksBook the session when two hooks are spent, not when the folder is empty

The tools I use for this

ToolWhat it is for here
ClaudeWrites the set and the sheet, and runs the cut with the short form skill.Open
Short-Form Cut skillThe free skill from my library that turns raw talking head footage into captioned, titled vertical parts with human gates.Get it
SubmagicCaptions on the body, once.Get it
DaVinci Resolve or CapCutThe assembly when you would rather click than type ffmpeg.no link, just use it
HiggsfieldThe multiplier: one winning ad in, edited versions out, for the kaleidoscope.no link, just use it
Meta Ads ManagerOne ad per combination, named by parts, enhancements off.no link, just use it
GoHighLevelThe comment keyword and the free resource live here, and the cost per lead by CTA is read here.Get it
Some links are affiliate links. I only recommend tools I run in my own accounts.

The free skill

It writes one pillar service as a five hooks, one body, three CTAs set, each hook a different shape, the body under 160 words that pairs with every hook, the CTAs direct, indirect and comment trigger. It runs the anti-slop and compliance gates, then builds the filming cheat sheet, the fifteen combination list with file names, the launch order, the metrics table, and after week two, the permutation list for the winner.

How to use it: copy the whole thing, paste it into your bot (or save it as a skill file if you use Claude Code), and say “fifteen ads from one session”. It walks you through the rest. Works with any agent that can read your files.
ad-creative-variations.md
---
name: fifteen-ads-one-session
description: Writes one pillar service as a five hooks, one body under 160 words, three CTAs set that films in one sitting and cuts into fifteen ads, runs the anti-slop and compliance gates, then builds the filming cheat sheet, the fifteen combination list with file names, the launch order, the metrics table, and after week two the kaleidoscope permutation list for the winner. Trigger on "fifteen ads from one session", "five five three", "script my filming session", "cut this into ads", "what do I permute next".
---

# Fifteen Ads From One Filming Session

You are writing talking head ads for a clinic, med spa, IV bar, or aesthetics practice
as parts that film in one sitting. Five hooks times one body times three CTAs is
fifteen ads. Nothing is filmed twice, and nothing is said twice.

Never invent a fact, price, patient, or result. A patient story is a template marked
"swap in a real story before filming".

## Step 1: Intake (ask only what is missing)
Service, offer and page, city, the person on camera and their role, the free resource
(must exist), whether the comment automation is live, compliance sensitivities, and
patient sentences from the inbox, reviews, or intake forms if available.

## Step 2: The set
**Five hooks**, three to five seconds, five different shapes, labelled:
- Buried truth: most people have no idea how this actually works.
- Before you do this: give me sixty seconds first.
- Contrarian: I turned someone away last week; I am not going to promise you [hype].
- Identity call out: if you are [specific person in a specific state], this is for you.
- First timer: if this is your first, here is exactly where I would start you.

**One body under 160 words.** First person, spoken to one person they like. One honest
admission (not for everyone, results vary, there is downtime). One concrete mechanism.
One concrete moment. Zero menu dumps. It never restates a hook, because it has to
follow any of the five. If it sounds like a brochure, restart.

**Three CTAs**, filmed separately:
- Direct: book the consult, location named.
- Indirect: the free resource, "takes ninety seconds". Skip if none exists.
- Comment trigger: one word, memorable, mapped to a real automation. Skip if not live.

## Step 3: The gate (every line; two failures is a rewrite)
No phrase over five words borrowed from any reel, ad, or tagline. No brochure voice
("we offer", "state of the art", "conveniently located"). Contrast cliche ("it is not
X, it is Y") at most once per script. No banned words: game-changer, unlock, elevate,
seamless, holistic, journey, empower, transformative, cutting-edge, revolutionary. Zero
em dashes. No claim without a number, a mechanism, or an honest scope. Anybody's-ad
test: if the hook works for any business in any city, it fails. Body repeats a hook:
body fails. Fake resource or keyword: blocked. Compliance: no cure, treat, guarantee,
prevent-illness language; no drug brand names; nothing the clinic cannot say.

## Step 4: The filming sheet
Eye level camera, 9:16, teleprompter app, read into the lens, warm and direct, scrubs
or clinic casual, proper microphone. Same outfit, same chair, same light, one sitting.
List every take in order with its part name: hook 1 to 5, body (in chunks if needed),
CTA 1 to 3. Say the part name before each take. Cheat sheet maths for a multi service
batch: videos times five hooks, plus one body each, plus three CTAs each.

## Step 5: The combinations
List all fifteen: hook, body, CTA, and a file name in the form
`id-video-h[n]-c[n]-person-offer-MMDD`. Ad name equals file name. utm_content equals
ad name. On-screen title for each hook: two lines, two to four words, capitals, that
withhold the payoff instead of labelling the topic.

## Step 6: Launch order and metrics
Launch three: three hooks, same body, direct CTA. One variable. Hands off 72 hours.
Read hook click rate on day four and seven. Then the winning hook against the three
CTAs; read cost per lead by CTA on the CRM count, never the platform's. Week two: kill
the bottom half of combinations; name the best hook plus body plus CTA.
Across services: education first, transparency second, high intent third,
differentiator fourth, hero offer last. Never one video carrying the account.
Metrics table: hook click rate, cost per lead by CTA, cost per acquisition overall, best
combination.

## Step 7: The kaleidoscope (after a winner)
Do not write a new concept. Permute the winner one variable at a time and ship each as
a new ad: on-screen title, first frame, crop, playback speed, caption style, music or
none, B roll opener in front of the same hook, a second presenter on the same hook.
Hooks first; they carry most of the result. Refresh every eight to twelve days before
frequency passes three. A halved click rate is fatigue: new hook, same body. Book the
next session when two hooks are spent.

## Cut notes (for the human or a connected pipeline)
Trim each take to its part and re-encode once so every part shares codec, size and
audio. Master the body's audio once (target minus 14 LUFS, peaks under minus 1, never
fully denoised). Captions once on the body. Titles rendered with alpha so they
composite. Check a mid clip frame before captioning to avoid double captions. Look at
the contact sheet before calling a batch done; failures in a video pipeline are silent.

What done looks like at thirty days

  • One session produced five hooks, one body and three CTAs as named parts
  • Fifteen combinations assembled and named by their parts
  • Three launched with one variable, then the variable swapped
  • Bottom half killed in week two on the CRM count
  • The winner has been permuted at least five ways without a new script
  • The next session is booked and its set is written

Want the script set written, the session run and the fifteen cut with you?

Inside the AI CEO Lab the Demand Engine module walks the five five three set on your own offer, the filming sheet, and the cut, with the launch order and the kill rule built in.

Pick a side.

Most people read this and forget it by Friday.

The other kind builds the thing that week. They stop needing free guides, because they are too busy running actual systems.

Free guides stay free. The room is where the builds happen.