I handed my marketing to an AI agent and it spammed everyone. Here is how I fixed it.
· first published on LinkedIn · 7 min read · Tim Thomas

The sequel. Not by posting less, but by making video at scale, on brand, and releasing it on a schedule that respects each platform.
A few weeks ago I wrote about handing my startup's marketing to an AI agent, and how it enthusiastically spammed everyone. If you missed it, the short version is that I gave a coding agent the keys to my social accounts, and it did exactly what I asked, which turned out to be the problem.
The question everyone asked afterwards was the obvious one: so did you fire the agent?
No. I taught it to make videos.
Here is what happened next, because I think the process is the real story.
The actual sin was not posting. It was posting the same thing, too often.
Quick reminder of who I am in this. I run FM.video alone. It turns real radio stations into continuous music video channels: a scraper listens to what more than 200 stations across 17 countries are actually playing, a matcher finds the real music video for every song, and the site plays them back as lean-back TV. Radio you can watch.
The agent's crime in part one was a firehose of still images. A branded card a day, sometimes more, to Facebook and Instagram. Each one was fine on its own. Together they were wallpaper. On a follower feed that is not marketing, it is attrition: you train your own audience to scroll past you.
I nearly solved it the lazy way, by telling the agent to post less. But "post less" is not a strategy, it is a shrug. The real questions were post what, where, and how often. And it turns out those have researched answers, not vibes.
Cadence is a research question, not a vibe
Two things I learned once I actually dug in.
First, feeds are not all the same animal. TikTok distributes every video independently through the For You page, so your posts do not compete with each other. Buffer studied 11.4 million posts and found per-post views actually rise with volume there. Facebook and Instagram are follower feeds, where flooding suppresses your reach, because the algorithm rations how often it shows one account to the same person. So the correct cadence is literally opposite on different platforms. Two to three a day on TikTok, spaced hours apart. At most one a day on the follower feeds. One pipeline, per-platform release valves.
Second, stills alone were the wrong medium. Short vertical video is how people decide what to watch, and it is what every platform is actively boosting right now. A still image asks someone to stop. A reel earns a few seconds, then a few more, and every one of those seconds is a signal the algorithm rewards with reach. On the same accounts, the same audience, the same brand, a good reel does not do a bit better than a card. It does multiples better, because watch time is the currency and a static image spends none of it. I was leaving all of that on the table, one polished card at a time.
But I did not have a video team. I had a terminal.
So the fix had two halves. Make video, at scale, on brand. And release it on a schedule that respects each platform instead of blasting all of them the same way.
Enter Remotion: video as code
The reason I could go from stills to a video studio overnight is a tool called Remotion. It lets you build video out of React components, the same way you build a website. A frame is just a function of time. Which means video becomes something an agent can generate, not something a human has to drag around a timeline.
That unlocked everything. I had already written my brand down as code back when I built the product: the wordmark, the animated waves mark, the pink, the display face, the platform safe areas. So the agent assembles a reel the way it assembles a page, and every single frame lands on brand without a designer touching it.
And crucially the content is not invented. I am sitting on a live database of what those 200-plus stations are playing right now, with the real music video for each song. Millions of airplay events. Radio programmers are the best editors in music, and I effectively employ all of them for free. The charts pick the songs. The templates cut the video. The taste is real.
The formats write themselves once you have that:
- Top 10 countdowns: ten to one in fifteen seconds from real airplay, the rank digits slamming in, scaled by the bass of the soundtrack.
- Scroll feeds: a phone inside the phone, flicking through what is hot, and the music changes as each video scrolls past.
- Beat flicks: hard cuts through dozens of video stills, timed to the beat, carrying one huge message.
- Milkdrop visualisers: genuine Winamp-era Milkdrop, the real Butterchurn engine, rendered deterministically one frame at a time so a software renderer can never drop a frame, with the audio levels sliced from the decoded track so the visuals react to the music sample by sample.
- Channel showreels and festival sets: 45 to 60 second promos, ten or more tracks each, the music switching with every scroll.
- The Daily 420: a standing appointment that always goes out at 16:20 exactly, because that is the joke, complete with drifting leaves and smoke.
The marginal cost of the next reel is roughly zero. The marginal cost of the next FORMAT is one conversation. There are 321 in the library now, and the machine makes two or three more every day on its own.
Two of them, so this is not abstract. The Milkdrop mixtape, four tracks in a minute with the visuals morphing at every song change, and the festivals showreel:
The full vertical feed is at fm.video/reels. Swipe through it the way you would anywhere else; the difference is that every one of them was made by a timer this morning.
The details that keep it honest
Two small things that separate generated from generic.
The scroll feed cards carry a station chip: the station that actually played that track. An early version assigned stations round-robin, and I caught The Rock, our national rock station, supposedly playing Harry Styles. Unacceptable. The fix was not a prompt, it was a database query: which station really played this clip the most in the last 14 days? Now Crazy Frog gets correctly chipped to the Spanish station that genuinely spun it. The data keeps the jokes honest.
And the reels now live inside the product itself, as a swipeable feed. Swipe right, swipe left, like a certain dating app. What real people like bubbles up and gets pushed harder. The algorithm deciding what to promote is partly my own users, which is the honest version of "data-driven."
The discipline that stops it becoming spam again
Making video cheaply is just how you become the spammer with better production values. So the schedule is where the real lesson from part one lives:
- Mix the media. Reels and stills, alternating, never the same format two days running. Slow-moving charts make a repeated format read as a repost, so the rule is simple: never the same two posts in one week.
- Vary the times. Posts go out at genuinely different, jittered times each day, so the feed never looks like a cron job even though it is one.
- Respect each platform. One pipeline generates everything; the per-platform valves throttle it. Hungry on TikTok and YouTube Shorts, restrained on the follower feeds.
- Put it on the clock. Every morning a timer renders the day's reel from the live global charts, and each day of the week is a different format, so the feed always feels fresh.
Same agent. Same one person and a terminal. It went from broadcasting at people to earning the next scroll.
The skills compound
Here is the part I did not expect. Every format we built left something behind. Not just a reel, but a reusable capability: a way to render a phone inside a phone, a way to slam chart digits in on the beat, a way to drive a real visualiser from an audio track, a way to lay out a card so the branding survives every platform's crop. Each one started as a hard problem and ended as a building block.
So the studio does not just make today's videos. It gets faster and more varied every time it runs. A new dynamic image style, a new kind of short, a seasonal template, a one-off for a launch: these used to be projects. Now they are an afternoon, because most of the pieces already exist and the agent knows how to combine them. The catalogue went from 44 reels to 321 not because I worked harder, but because the toolkit kept growing under it.
That is the quiet advantage of building your marketing as software instead of buying it as a service. Software compounds. A freelancer's tenth video costs the same as their first. My tenth format made the eleventh cheaper, and every format after that is more varied than the last, because it inherits everything that came before.
The takeaway, if you are not in radio
Every company sits on some live stream of data that could become media. Prices, matches, releases, bookings, weather, whatever moves in your business. The playbook that turned my spam machine into a studio generalises cleanly:
- Write your brand down as files a machine can follow, not vibes in someone's head.
- Let the product's own data choose the content. Taste is the expensive part of content marketing, and yours is probably already in your database.
- Treat cadence as research, not habit. The right frequency is different on every platform, and posting more is sometimes right and sometimes fatal.
- Make the medium the audience actually wants. Right now that is short video, and video beats stills on engagement by multiples because watch time is the currency. Remotion is what finally made it cheap enough for one person to make well.
- Build capability, not campaigns. Every asset you make as software should leave a reusable skill behind, so your tenth format is cheaper and more varied than your first. That compounding is the whole game.
The agent still runs my marketing. It just stopped shouting.
You can judge the results the way you would judge any media team's showreel, except this team is a cron job: fm.video/reels.
FM.video is free, made in Aotearoa New Zealand, and built by one person with a very capable pair of hands that lives in a terminal.