CarouselBot vs. Claude Skills: A head-to-head carousel comparison
I created the same carousel two ways, once with my own tool and once with a free Claude skill I built
Disclosure: I built CarouselBot, which officially launches this morning, so I’m obviously biased. That’s exactly why I wanted to do this comparison openly. The Claude skill described here was inspired in part by Wyndo’s excellent post on building LinkedIn carousels with Claude Skills. The skill is free to download and I encourage you to test it out and decide for yourself.
p.s., You can create up to three free carousels a month with CarouselBot. To remove the branding and make unlimited carousels, sign up for an annual plan with the coupon code LAUNCH49.
TLDR: I turned the same article into a carousel two ways: once with CarouselBot (my web app) and once with a Claude custom skill I built for this test. CarouselBot took about 90 seconds to create a first draft and 5 minutes to edit it. The Claude skill took about 2 hours to build and get mostly right. Once the skill was in place, creating the carousel took a couple of minutes, while editing via Claude chat took about 15 minutes.
Both approaches can produce good results, but the experience is very different. The skill is free; download it and try for yourself.
Why I did this comparison
I’ve been building CarouselBot for the past several weeks. It’s a web app that turns any URL or raw notes into a branded carousel you can post on LinkedIn, Instagram, or your website. You paste a link, AI formats it into slides, you customize colors and fonts, and download a polished PDF or collection of PNGs or JPGs.
The most common question I hear from potential users is, “Can’t I just do this with Claude?” It’s a fair question. Claude’s custom skills feature lets you upload a set of instructions and assets, and Claude will follow them to generate carousels from any article URL. In theory, it does the same thing.
So I decided to find out. I built a Claude carousel skill from scratch, used it on the same article I’d run through CarouselBot, and documented exactly what happened. Five iterations. Two hours. A lot of opinions about font sizes.
Here’s what I found.
The CarouselBot approach
The CarouselBot workflow is straightforward: you paste a URL or your raw notes, AI structures the content into carousel-ready slides, then you customize your design and download a PDF.
For this test, I pasted my recent Moltbook article URL, picked the ocean template, generated a suitable crustacean to use as a background image, and had a finished carousel in about 90 seconds. The slide copy was solid, the layout was consistent, and the PDF rendered exactly as I expected because CarouselBot controls the entire rendering pipeline. There are 18+ templates to choose from, or you can build your own with custom colors, fonts, and aspect ratios.
Although Claude provides the initial copy draft (which you can edit), the experience is predicable and deterministic. The same inputs produce the same outputs. No surprises.
Here’s what it looks like:
The Claude skill approach
For the Claude side, I built a custom skill, which is a folder of files you upload to upload to Claude via Settings → Capabilities → Skills that teaches Claude how to make carousels. The Skill includes design templates (light and dark themes), a branded footer with your headshot and handle, navigation dots, a page number, and an optional background watermark. You add your own assets (headshot, logo or other image), edit a config file with your name and brand colors, and upload the folder to Claude.
Once it’s set up, you just tell Claude, “Make a carousel from this URL,” and it asks you light or dark, fetches the article, writes slide copy, builds an HTML file, converts it to PDF, and delivers it.
This sounds simple, but getting there was not.
The build process: 5 iterations in 2 hours
Getting exactly what I wanted required considerable iteration with Claude. It was not “describe what I want → get a perfect result.” For example:
Version 1 had body text at 24px (unreadable on phones), a squished footer, and a dated left-border accent line next to every headline.
Version 2 fixed sizing but introduced broken navigation dots. WeasyPrint (the PDF engine Claude uses) doesn’t handle CSS flexbox gap reliably, so we had to switch to HTML table layouts.
Version 3 added an image of a crustacean as a background watermark, but Claude placed it too small and in different corners.
Version 4 centered it properly and added a directional chevron, but in the wrong place.
Version 5 finally got everything right: 1000px centered watermark at 8% opacity, chevron inside the footer bar, 32px body text, 100px side padding for LinkedIn’s nav arrows, proper bullet wrapping.
Each version took Claude seconds to generate. The bottleneck was me looking at the output, identifying what was wrong, and describing the fix precisely enough for the next round.
A few specific lessons from the iteration:
AI defaults to conservative sizing. Every version started with text that looked fine on my monitor and was illegible on a phone. I had to specify exact pixel values, not adjectives.
Layout bugs are hard to describe. “The footer is squished” doesn’t work. “Use white-space: nowrap and flex-shrink: 0 on the headshot container” does.
Fonts can be tricky to access from Claude’s sandbox. I initially assumed Claude’s sandboxed container couldn’t load custom fonts; CDN downloads are blocked, and GitHub raw file downloads redirect to a blocked domain.
But npm’s registry (registry.npmjs.org) is on the allowed list, and the @fontsource project packages every Google Font as an npm module. So the skill runs npm install @fontsource/inter, base64-encodes the woff2 files, and embeds them as @font-face data URIs.
WeasyPrint renders whatever font you configure. The workaround adds ~46KB to the HTML (negligible next to a background image).
How the skill works (once it’s built)
The final skill structure:
The references/ folder is where you add your own assets. Neither is included in the download — you add:
headshot.png — your photo, square crop, at least 200×200px, under 500KB
background.png (optional) — any image for the watermark: a logo, photo, illustration, or icon. At least 500×500px, PNG with transparency recommended
When you ask Claude to make a carousel, it loads your assets, fetches the article, writes slide copy, builds the HTML with all styling inline, converts to PDF, and delivers. Every slide gets a branded footer (64px headshot, name/handle, nav dots, directional chevron) and your background watermark.
How to customize it
The CUSTOMIZE.md inside the zip walks through everything. Quick version:
Essentials (5 minutes): Add your headshot.png to references/. Open references/templates.md and find-replace Karen Spinner → your name, @karenspinner → your handle.
Optional: Add a background.png for your watermark — any image works (logo, topic-related photo, illustration, icon). Change the accent color by replacing the teal hex values (#0d9488 and #14b8a6). Change the font to any of hundreds of Google Fonts available on fontsource.org ; the skill downloads them via npm and embeds them directly in the PDF. Request different watermark sizes when prompting (600px subtle → 1200px immersive).
Upload the whole folder to Claude via Settings → Capabilities → Skills, and you’re set.
The head-to-head comparison
Here’s what I found running the same article through both tools.
Where each approach wins
The Claude skill wins on cost (free), depth of customization (you can edit every line of the template’s HTML), and learning value (building a skill teaches you how Claude works under the hood). If you’re already a Claude Pro/Max subscriber and enjoy tinkering, it’s a genuinely useful tool.
CarouselBot wins on speed, consistency, and polish. You don’t need to manage files, understand markdown, or debug PDF rendering quirks. The visual editor gives you WYSIWYG control, and the output is the same every time. If you make carousels regularly, the time savings compound fast.
The slide copy is identical quality — both use Claude to write it. (That said, CarouselBot includes tighter constraints for different layout types.)
Three ways to approach making carousels with AI
There are actually three distinct approaches to making carousels with AI right now — and the differences come down to where the rendering happens and how many manual steps you’re willing to tolerate.
Approach 1: Wyndo’s Claude Skill (HTML → browser → JPG → PDF)
Wyndo’s skill has Claude generate HTML/CSS files. You open the HTML in your own browser, download each slide as a JPG using a built-in download button, then convert the JPGs to a PDF using a service like ILovePDF.com. The clever thing about this approach is that your browser handles the rendering, so fonts display correctly, flexbox works as expected, and the output looks exactly like what you see on screen.
The tradeoff is the manual steps: download, visit a conversion site, upload, convert, download again. This skill also includes a helpful onboarding flow where Claude asks for your brand colors, fonts, logo, and photo during the first conversation. It’s offered as part of the paid Maker Labs membership.
Approach 2: My Claude Skill (HTML → WeasyPrint → PDF)
My skill does the full pipeline inside Claude’s container (generate HTML, convert to PDF, deliver the finished file) with no manual steps. But WeasyPrint (the PDF engine) doesn’t render everything the way a browser does. Flexbox gap doesn’t work, and margin on flex items collapses unpredictably; bullets would sometimes smash together on one slide and space perfectly on the next.
The solution was to use HTML tables instead of flexbox for any layout that needs reliable spacing. The skill’s navigation dots and bullet rows are all table-based now, which WeasyPrint handles consistently. Google Fonts also work; the skill downloads them at build time via npm (registry.npmjs.org is on Claude’s allowed domains list) and base64-embeds them directly in the HTML, so WeasyPrint renders whatever you configure instead of falling back to system defaults.
The skill is file-based (no interactive onboarding — you edit config files directly) with two templates (light and dark). It’s free to download and customize.
Approach 3: CarouselBot (purpose-built web app)
CarouselBot controls the entire pipeline from content input to PDF output. The rendering engine is built specifically for carousel slides, so fonts, layouts, and images work consistently. Visual WYSIWYG editor, 18+ templates plus a custom template builder, image uploads and AI-generated imagery. No file editing, no CLI, no manual conversion steps.
The key difference is where rendering happens. Wyndo’s approach trades automation for rendering quality. My approach trades some rendering fidelity for full automation; fonts are solved via npm embedding, but WeasyPrint may have additional limitations I haven’t seen yet.
CarouselBot doesn’t make either tradeoff because it controls the whole stack.
The real lesson
The most interesting takeaway wasn’t about which tool is better. It’s about what kind of friction you’re willing to accept.
Once the skill is set up (5 minutes to add your headshot, update your name, and upload the folder) making a carousel takes about 60–90 seconds. That’s roughly the same as CarouselBot. The difference is what happens when the output isn’t quite right.
With CarouselBot, you click into the visual editor and fix it: tweak the copy, drag an image, change a font, reorder a slide. With the Claude skill, you describe the fix in words and regenerate. Sometimes Claude nails it on the first try. Sometimes you go back and forth, just like you would with human freelancer— “make the title shorter,” “move the subtitle down,” “the third bullet is too long for the slide.”
But the skill is free, it’s endlessly customizable (you can edit every line of the template), and building or modifying one teaches you more about how AI tools work than any tutorial. If you enjoy tinkering, or if you just want carousels without paying for another subscription, it’s a genuinely useful tool.
So try both if you have a Claude account and see for yourself.
Download carousel-maker-skill.zip →
Add your square headshot.png (200×200px+) and optionally a background.png (5:4 or 1:1, PNG with transparency) to the references/ folder, update your name in references/templates.md, and upload to Claude via Settings → Capabilities → Skills. Full instructions in CUSTOMIZE.md.
You can make up to three free carousels each month with CarouselBotand upgrade to make more and remove the (subtle, tasteful) branding. If you sign up this week, you can get $30 off an annual subscription with the discount code LAUNCH49, which expires in 7 days.







What a brilliant way to test your product. Also, a learning for me is, how these big fancy tools are mostly generalist and not really good at these nuanced, specialized tasks. Thank god for CarouselBot!🩷🦩
First of all congratulations on CarouselBot! It is a work of art that produces works of art. I am so envious of your building skills!!! And secondly thank you for very clearly making the case for why creating specific products for specific needs will still always be valuable, even in the age of the agent. 🙏