Every day at 4 PM, our AI agent generates a fresh TikTok slideshow β six images, text overlays, storytelling captions β and sends it straight to Telegram for review. No Canva. No Photoshop. No freelancer. Just an OpenClaw agent running a script pipeline on a schedule.
This isn't a theory post. This is exactly how we do it at Lobsterlair, and we're going to show you every piece of the system.
Why Slideshows?
TikTok's own data shows photo carousels get 2.9Γ more comments and 2.6Γ more shares than standard video. They're easier to produce, cheaper to generate with AI, and scroll-friendly. For a bootstrapped SaaS like ours, it's the highest-ROI content format we've found.
The problem: making six on-brand images with text overlays every single day is tedious. It's exactly the kind of repetitive, creative-but-structured work that an AI agent handles better than a human.
The Stack
Here's what powers our daily slideshow pipeline:
- OpenClaw β the AI agent runtime. Runs on our Mac, handles scheduling, file management, and the entire orchestration layer.
- OpenAI gpt-image-1.5 β generates photorealistic images from text prompts. The "1.5" matters β it's the difference between "obviously AI" and "wait, is that a real photo?"
- node-canvas β a Node.js library that renders text directly onto images. No external design tools needed.
- A cron job β fires daily at 16:00, triggers the full pipeline, and delivers the result via Telegram.
Total cost per slideshow: roughly $0.50 in API calls.
Step 1: The Prompt System
Every slideshow starts with a base prompt that locks the visual style. This is the most important part of the entire pipeline, and it took us several rounds of iteration to nail down.
A good base prompt looks something like:
iPhone photo of a [specific scene], [specific style details].
Realistic lighting, natural colors, taken on iPhone 15 Pro.
No text, no watermarks, no logos.
[Consistency anchors: specific objects, layout, lighting direction]
The key insight: you have to lock the environment across all six slides. If you just say "a nice living room," each slide will look like a different apartment. You need consistency anchors β same window position, same furniture, same camera angle. Only the subject or styling changes between slides.
We also learned:
- "iPhone photo" + "realistic lighting" = looks real, not AI-generated
- Include mundane objects (coffee mugs, remote controls, magazines) for a lived-in feel
- Portrait orientation (1024Γ1536) always β fills the TikTok screen
- Extremely specific beats vague every time
Step 2: Image Generation
Our generate-slides.js script takes a set of six prompts (one per slide) and calls the OpenAI Images API:
node generate-slides.js \
--config config.json \
--output posts/2026-03-15/ \
--prompts prompts.json
Each image takes 30β90 seconds to generate. Six slides = 3β9 minutes total. The script handles retries and can resume if it fails partway through (completed slides get skipped on re-run).
The prompts themselves are generated by the agent based on the day's hook. For example, if the hook is "I asked AI to redesign my apartment and my landlord thought I actually renovated," the agent creates six prompts that tell a visual story: the original room, the AI transformation, the reaction shots, and a final "reveal" slide.
Step 3: Text Overlays
Raw images aren't enough. TikTok slideshows need text β short, punchy reactions that make people keep swiping.
Our overlay system uses node-canvas to render text directly onto each image:
- Dynamic font sizing β short text (β€5 words) gets larger, long text gets smaller. Every slide is optimized.
- White text with thick black outline β readable on any background, no matter how busy the image is.
- Positioned at ~28% from the top β stays in the safe zone, clear of TikTok's UI controls at the bottom and the status bar at the top.
- Manual line breaks β we write the overlay text with explicit
\nbreaks to control the rhythm. Four to six words per line, three to four lines per slide.
The text style matters more than you'd think. We write reactions, not labels. "Wait... this is actually nice??" converts better than "Modern minimalist design." People swipe because they feel something, not because they're reading a caption.
Example overlay texts for a slideshow:
Slide 1: "I showed my landlord\nwhat AI thinks our\nkitchen should look like"
Slide 2: "She said you can't\nchange anything\nchallenge accepted"
Slide 3: "So I downloaded\nthis app and\ntook one photo"
Slide 4: "Wait... is this\nactually the same\nkitchen??"
Slide 5: "Okay I'm literally\nobsessed with\nthis one"
Slide 6: "Link in bio to\ntry it yourself"
Step 4: The Daily Cron
This is where it all comes together. Our OpenClaw agent has a cron job configured to fire every day at 16:00 (Berlin time):
- The agent picks a hook from the content strategy (rotating through categories: anti-tutorial, lifestyle/FOMO, build-in-public)
- It generates six image prompts based on the hook
- Calls
generate-slides.jsto create the images - Calls
add-text-overlay.jsto render text onto each slide - Sends the finished slides to our Telegram chat for review
The whole thing runs autonomously. We wake up to six fresh slides in Telegram, add a trending sound in TikTok's editor, and hit publish. The manual part takes about 30 seconds.
Step 5: The Human Touch
We deliberately keep one step manual: adding music.
TikTok's algorithm heavily favors posts that use trending sounds. An API can't pick the right sound β you need to browse what's trending right now in your niche. So our slides go to TikTok as drafts, we add the music, and then publish.
This 30-second step is the difference between a slideshow that gets 500 views and one that gets 50,000.
What We Learned
After running this pipeline for several weeks, here's what actually matters:
Image consistency is everything. Early on, our slides looked like six different apartments. Once we locked the base prompt with specific anchors (same window, same furniture, same lighting), the slideshows started feeling like a coherent story.
Hooks make or break it. The best images in the world don't matter if slide 1 doesn't stop the scroll. We test different hook categories (person+conflict, POV, "mistakes" format, listicle) and track which ones perform.
gpt-image-1.5, not gpt-image-1. We can't stress this enough. The quality difference is night and day. gpt-image-1 produces images that scream "AI generated." Version 1.5 produces photos that could pass for iPhone shots. For $0.50 per slideshow, it's a no-brainer.
Reactions beat labels. "Wait... this is nice??" gets more engagement than "Modern living room." Emotional text makes people swipe. Descriptive text makes people scroll past.
Volume beats perfection. We aim for one slideshow per day, every day. Some perform better than others. The compounding effect of daily posting is what builds the account, not any single viral hit.
The Numbers
- Cost per slideshow: ~$0.50 (six images via OpenAI)
- Time to review + publish: ~30 seconds
- Agent generation time: ~5β8 minutes (fully automated)
- Posting frequency: Daily at 16:00
Build Your Own
The entire pipeline runs on OpenClaw with a TikTok marketing skill from ClawHub. If you're running Lobsterlair, you can set this up in an afternoon:
- Install the skill and run through onboarding β the agent walks you through configuring your app, image style, and posting preferences
- Set up a daily cron job that triggers the pipeline
- Review the slides in Telegram, add music in TikTok, publish
The agent handles everything from competitor research to image generation to analytics tracking. You just approve the output and add the soundtrack.
No design skills. No video editing. No content calendar spreadsheets. Just an AI agent that shows up every day at 4 PM with fresh content.
Lobsterlair is managed OpenClaw hosting β your AI agent, running 24/7, with persistent memory and zero setup headaches. $19/month, cancel anytime.