Introduction
How we built an AI agent that turns approved marketing content into review-ready CMS pages.
Before the printing press, books were copied by hand. The writing was already finished. The hard work that remained was reproducing the same words over and over again.
We realised our publishing workflow looked remarkably similar.
Not because writing was difficult, but because publishing had become copying.
That was the problem we set out to solve.
The Problem
Publishing one page was never difficult. Publishing thirty or forty similar pages was.
Every page followed the same workflow. Marketing wrote and approved the content, engineering built the reusable components, and someone then opened the CMS to manually copy every headline, paragraph, card, table and FAQ into the correct fields.
For a single page, this process was tedious. Across an entire category of pages, it became weeks of repetitive work. The bottleneck wasn't writing. It was moving approved content from one system to another.
The Solution
We deliberately avoided asking AI to solve the hardest problem.
Writing great marketing copy is subjective. It requires context, judgement and creativity. Publishing approved content isn't. By the time a page reaches publishing, the messaging has already been written, reviewed and approved. The only remaining task is assembling that content into the right components inside the CMS.
So instead of building an AI that writes pages, we built one that assembles them.
The agent can start in three different ways. If a Figma design exists, it follows the design. If a similar page already exists, it reuses the approved structure. If neither exists, it recommends suitable components based on the content.
Regardless of where it starts, the outcome is always the same: a review-ready draft waiting for a person to approve.
The agent doesn't replace marketers. It replaces repetitive data entry.
Connecting Four Systems
The most interesting part of this project wasn't the AI. It was connecting four systems that already contained everything needed to build a page.
The content document contained the approved copy. Figma defined the layout. Storybook knew every available component and the fields each one supported. The CMS knew how those components came together to create a page.
Until now, the only thing connecting those four systems was a person. Someone constantly switched between browser tabs, reading from one tool and typing into another. The person had quietly become the integration layer.
If you want a mental picture for that role, think of C-3PO.
He doesn't fly the Millennium Falcon. He doesn't fire the weapons. He doesn't decide where the crew should go. His job is much simpler: helping systems that can't communicate understand one another.
That is exactly the role our agent plays. It connects the content document, Figma, Storybook and the CMS, translating information between each system until a review-ready page is produced.
It's fitting that the standard we use to connect those systems is called the Model Context Protocol (MCP). Like C-3PO, the agent's value isn't in making decisions. It's in speaking every system's language.
One challenge remained. Component names rarely describe what they actually look like. Two components can have completely different internal names while appearing almost identical on screen.
To solve this, we built a connector that renders every component as an image. Instead of matching names, the agent compares components visually against the design, much like a designer would. The same connector also keeps credentials securely on the server, validates page structure and assembles valid CMS drafts before they're sent to the CMS.
Building Trust
The biggest question wasn't what the AI could do. It was what it was allowed to decide.
The agent is responsible for identifying page sections, selecting appropriate components and mapping approved content into those components. Everything that must be correct every time is handled by software.
Four simple guardrails keep the workflow predictable. Every word comes from the approved content document. Missing content stays empty instead of being invented. Only approved components from the design system can be used. And the agent creates drafts only, publishing always remains a human decision.
Every run also produces a report showing anything the agent couldn't confidently place, every empty field and every section requiring human attention. Nothing is silently fabricated.
What Changed
The biggest improvement wasn't that AI built pages. It was that people stopped spending their time copying content.
Reviewers now spend their time reviewing instead of typing, while publishing happens in the background. A batch of forty pages becomes a repeatable workflow instead of forty separate publishing tasks.
More importantly, this project changed how we think about AI. The best opportunities aren't always replacing creative work. They're removing the repetitive work that sits between systems that were never designed to work together.
Most of the engineering effort wasn't spent making the model smarter. It was spent connecting those systems safely, building the right guardrails and keeping humans at the decision points that matter.
We didn't replace our marketing team.
We removed the part of the job that nobody enjoyed doing in the first place.

