Cindy Zhu.
Free guides
Content creation Claude + Codex

Make a week of carousels overnight with Claude and Codex

Hey, it's Cindy ๐ŸŒฑ You commented carousel, so here is the whole pipeline my own carousels come out of.
btw the waitlist for AI System Club is now open! If you're keen on using AI to automate your content, video editing, job search, business or build AI agents, feel free to sign up (only if you want to hehe). Ps. the waitlist gets first dibs:)
the shape of it

What you are actually building

This is not one prompt that spits out a carousel. It is a small assembly line with three stations, and each one is good at something the others are bad at. Once it exists you can feed it a topic at 11pm and open a finished folder of slides at 8am.

๐Ÿง  Claude writes the brief The hook, the copy for every single slide, the layout notes, and your style rules, in a structured file a machine can build from.
๐Ÿ‘ฉโ€๐Ÿ’ป Codex builds the slides Codex is the coding agent inside ChatGPT. It turns the brief into one file per slide and renders them as 1080 x 1350 images into a folder on your computer.
๐ŸŒ™ The overnight part Because Codex works in a folder and not a chat window, you can hand it five or seven briefs at once and let it grind through them unattended.
โœจ You do the taste pass In the morning you drop the slides into Canva, put your real fonts, colours and stickers on them, and fix the two slides that look off. That stays human on purpose.

why bother

Carousels are the format worth automating

Carousels are the slowest format to make by hand and the strongest format on the two platforms most of us care about, which is exactly the combination that deserves a system.

LinkedIn: 21.77% Document posts (carousels) hit a median engagement rate of 21.77%, the highest of any format on the platform, per Buffer's 2026 format analysis.
Instagram: 6.9% In the same Buffer analysis, Instagram carousels landed at 6.9% median engagement against 4.4% for single images and 3.3% for reels. Socialinsider's benchmarks put carousels top too.
๐Ÿ’ก Read the numbers properly. Engagement rate is not reach. Reels still win at putting you in front of strangers, so the sane split is reels for reach and carousels for the people who already found you and want the depth. The system below is what makes running both survivable.

setup, about 20 minutes

Get the two tools talking to a folder

  1. ๐Ÿง  Open Claude. Go to claude.ai or download the desktop app. The free plan is enough to write briefs, and any Claude works here. You do not need Claude Code for this station.
  2. ๐Ÿ‘ฉโ€๐Ÿ’ป Get Codex. Codex is OpenAI's coding agent and it comes with your ChatGPT plan. Per the official pricing docs it is included on Free, Go, Plus, Pro, Business, Edu and Enterprise, sharing the same usage budget as ChatGPT. Free is fine to test with, but an overnight batch of seven carousels will chew through a Free allowance, so Plus is the realistic plan for batching.
  3. โŒจ๏ธ Install the Codex CLI. Open Terminal (Mac: press Cmd and Space, type Terminal, hit enter) and paste curl -fsSL https://chatgpt.com/codex/install.sh | sh. Full instructions live in the Codex CLI docs. There is also a Codex app and an IDE extension if a terminal feels like too much.
  4. ๐Ÿ“ Make the workspace folder. Create a folder on your desktop called carousels. Inside it, make two empty folders: briefs and output. That is the whole file structure. Everything Claude writes goes in briefs, everything Codex renders lands in output.
  5. ๐Ÿš€ Start Codex in that folder. In Terminal type cd ~/Desktop/carousels and press enter, then type codex and press enter. It asks you to sign in with ChatGPT the first time. Codex can now read and write inside that folder and nowhere else, which is exactly the blast radius you want.
  6. ๐ŸŽจ Write your style file once. This is the step people skip and then wonder why the output looks generic. Use the first prompt below to have Claude interview you and write a brand.md file, then save it inside the carousels folder. Codex reads it on every build, forever.
๐ŸŒฑ Never used a terminal before? Nothing here is dangerous. You are creating a folder and running two commands inside it. Codex will ask permission before it touches anything outside that folder, and you can close the window at any point to stop it.

prompt one

Teach Claude your brand once

Your style file is the difference between slides that look like your account and slides that look like a template. Paste this into Claude, answer the questions honestly, and save what it writes as brand.md inside your carousels folder.

๐ŸŽจ write my brand.md
I want to build a reusable style file that a coding agent will use to render my Instagram and LinkedIn carousel slides, so it needs to be precise enough for a machine to follow with no taste of its own.

Before you write anything, interview me. Ask me for my exact hex colours (background, headline, accent, body text), my two or three fonts and where each one is allowed to appear, whether my headlines are lowercase or sentence case, how many words are allowed in a headline, whether I use photos or illustrations, and what my slide 1 and my final call-to-action slide look like. Ask about the boring mechanics too: canvas size, safe margins, and whether I use a progress indicator.

Then write me a file called brand.md that turns my answers into unambiguous rules a builder can pass or fail against. Write every rule as a checkable statement, for example "headline is 96 to 130px, maximum 3 lines" rather than "headlines are big". Include a short list of things that are banned in my brand, and end with a 10-point checklist the builder must verify on every single slide before it says it is finished.
๐Ÿ’ก Feed it real examples. If you already have carousels you like, upload three of your own as images and ask Claude to reverse-engineer the rules from them before it interviews you. The file gets dramatically more accurate, and you spot rules you were following without knowing it.

prompt two

The slide-by-slide brief

This is the station that decides whether the carousel is any good. Claude is writing copy, not design, so give it a topic and let it structure the whole thing. Save the output into your briefs folder as something like brief-01.md.

๐Ÿ“‹ write the carousel brief
Write me a slide-by-slide carousel brief on this topic: [YOUR TOPIC]. My audience is [WHO THEY ARE] and the one thing I want them to walk away able to do is [THE OUTCOME].

Structure it as 8 slides. Slide 1 is the cover and it carries the entire hook, so give me the headline in under 9 words plus a one-line subtitle, and make the promise specific and checkable rather than vague inspiration. Slides 2 to 7 each teach exactly one idea: give me a short label, a headline, and 20 to 35 words of body copy that a real person would say out loud. Slide 8 is the call to action.

For every slide, output four labelled fields: LABEL, HEADLINE, BODY, and VISUAL, where VISUAL is a plain-English description of what should sit on the slide (an icon, a diagram, a screenshot, a mock chart) and roughly where it goes. Do not use em dashes anywhere. Do not repeat the same sentence shape on consecutive slides. When you are done, read your own draft back and tell me which single slide is the weakest and why, then rewrite that one.
โš ๏ธ Read the brief before it goes anywhere near Codex. This is the cheapest place in the whole pipeline to fix a bad idea. A weak hook on slide 1 costs you thirty seconds to rewrite here and an entire wasted overnight build if you let it through.

prompt three

Hand the build to Codex

Now the fun part. In your Terminal window with codex running inside the carousels folder, paste this. It builds each slide as a small self-contained HTML file and then renders every one to a PNG, which is how you get real image files instead of a chat describing images.

๐Ÿ‘ฉโ€๐Ÿ’ป build the slides overnight
Read brand.md in this folder, then read every file in the briefs folder and build each one into a finished set of carousel slide images.

For each brief: create one self-contained HTML file per slide at exactly 1080 x 1350 pixels, using only inline styles and locally available or Google-hosted fonts, laid out to follow every rule in brand.md. Then render each HTML file to a PNG using headless Chrome (or install Playwright if Chrome is not available) at that exact pixel size with no scrollbars and no browser chrome in the shot. Save the images into output/[brief-name]/ named slide-01.png, slide-02.png and so on, in reading order.

After you render each slide, open the PNG and check it against the 10-point checklist at the bottom of brand.md. If a slide fails a check, fix the HTML and re-render it before moving on. Text must never overflow its container or sit outside the safe margins, and no slide may be visually identical in layout to the slide before it.

Work through every brief without stopping to ask me questions. When you are completely finished, write a file called report.md that lists each brief, how many slides it produced, and any check that you could not make pass.
๐ŸŒฑ Why HTML and not a design tool? Because a coding agent can write, render, look at, and fix HTML in a loop by itself. That loop is the entire reason this can run unattended. You are not shipping the HTML, it is scaffolding on the way to a PNG.

the morning

What is waiting for you

Open the output folder and you will find one subfolder per brief, each holding numbered PNGs in swipe order, plus the report.md where Codex owns up to anything it could not fix. Read that report first, it tells you which slides need you.

  1. ๐Ÿ‘€ Flick through in order. Open the folder in gallery view and swipe. You are looking for one thing: does the story still make sense slide to slide? Copy problems are more common than design problems.
  2. ๐Ÿ—‘๏ธ Delete the dud slides. A seven-slide carousel that is all strong beats an eight-slide one carrying a filler slide. Cutting is free.
  3. ๐Ÿ“ฅ Import into Canva. Make a new 1080 x 1350 design, upload the PNGs, and drop one per page. Canva is free for this, and the paid tier mostly buys you brand kits and background removal.
  4. โœจ Do the taste pass. Swap in your real brand font, nudge the colours to your exact hexes, add your stickers or mascot, straighten anything that reads as slightly off. Ten minutes across the whole set, not per slide.
  5. ๐Ÿ“ค Export and schedule. Export as PNG, then queue the set. For LinkedIn, export the whole thing as a single PDF instead, that is what makes it a document post.
๐Ÿ’ก Send your fixes back upstream. Every time you correct the same thing in Canva twice, that correction belongs in brand.md as a rule. After three or four rounds the morning polish shrinks from twenty minutes to five, because the builder stopped making those mistakes.

the actual leverage

Batch a whole week in one night

One carousel overnight is a neat trick. A week of them is why you build this. The move is to generate all the briefs in one Claude session so they are deliberately different from each other, then let Codex render the lot in a single unattended run.

๐ŸŒ™ write a week of briefs
I want a week of 5 carousels on this theme: [YOUR THEME]. My audience is [WHO THEY ARE].

Before you write anything, plan the set as a whole so the five do different jobs: give me one that teaches a process step by step, one that is a numbered list of tools or examples, one contrarian take that argues against something my audience believes, one that breaks down a real before-and-after, and one that answers the question they are too embarrassed to ask. Show me the five hooks first and wait for me to approve or swap any of them.

Once I approve, write all five as full slide-by-slide briefs in the exact same format: 8 slides each, with LABEL, HEADLINE, BODY and VISUAL fields per slide, and a cover headline under 9 words. Output each brief separately and clearly labelled brief-01 through brief-05 so I can save them as separate files. Vary the sentence rhythm between briefs so the set does not read like one template five times.
  1. ๐Ÿ’พ Save all five into briefs. One file each: brief-01.md through brief-05.md. Codex picks up whatever is in that folder, so this is your queue.
  2. ๐ŸŒ™ Run the build prompt once. Paste the Codex prompt from above and walk away. It works through the queue file by file rather than trying to hold five carousels in its head at once.
  3. โ˜• Polish in one sitting. Do all five Canva passes back to back in the morning. Batching the taste work is what actually saves the Sunday, more than the rendering does.

when it misbehaves

4 things that go wrong, and the fix

Text spills off the slide Almost always a headline that is too long. Add a hard word limit to brand.md and tell Codex to shrink the font in steps until the text fits inside the margins.
Fonts render as plain default Your brand font is not installed where headless Chrome can see it. Point brand.md at a Google Fonts equivalent for rendering, then swap the real font back in during the Canva pass.
Every slide looks the same The brief gave the same VISUAL note eight times. Ask Claude to make the visual for each slide structurally different: one diagram, one list, one big number, one screenshot.
It stopped halfway overnight Usually a usage limit or a permission prompt it was waiting on. Ask Codex to resume from the last completed brief, and next run tell it to work through everything without asking questions.

the honest bit

What stays yours

I built this after losing one too many Sundays to nudging text boxes, and the surprise was that the AI was never the bottleneck. Taste was. The pipeline is very good at the mechanical 80%: structure, copy, layout, rendering, file naming, doing it five times without complaining. It is genuinely bad at the last 20% that makes a carousel look like it came from a person, which is why step three is a human step and stays one. Automate the part you resent, keep the part you are good at.

the waitlist is now open

AI System Club is launching soon

Build AI systems with me through recorded lessons you can follow at your own pace. Join the waitlist for first access and the founding price.

btw this list gets first dibs
the moment doors open :)