Introduction
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.
Publishing one page was never difficult. Publishing fifty 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. As more custom components and configuration options are introduced into the CMS, the marketing team also needs to understand how each configuration affects the final page. This adds another layer of manual effort and increases the learning curve for content authors.
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.
"Most of this time wasn't spent on creating the content, it was on just dragging and dropping the right components, copy-pasting the content from docs, mapping everything correctly, and repeating the same steps over and over again. When you're doing this for tens and hundreds of pages month on month, especially for programmatic pages, it becomes a lot of exhausting, repetitive work."
— Prakrati Kamath, Marketing Team
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 agent that writes pages, we built an MCP connector that exposes the capabilities required for content authoring as a set of well-defined tools. Along with these tools, the connector encapsulates the instructions, business rules and workflows needed to handle different publishing scenarios consistently.
The connector itself is model-agnostic. Whether the agent is powered by Claude, ChatGPT or any other MCP-compatible client, it can use the same connector to perform content authoring without requiring changes to the underlying implementation.
The agent can start in three different ways:
- From a Figma design: If a Figma design exists, the agent follows it as the source of truth for the page layout and component selection.
- From an existing page: If a similar page already exists, the agent reuses its approved structure and components to create the new draft.
- From an approved content document: If neither a Figma design nor an existing page is available, the agent analyzes the content and recommends suitable components to assemble the page.
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.
"This isn't just about saving us time but also about removing work that didn't need to be manual in the first place, so we can spend more time optimizing the content, running experiments, and improving pages instead of just moving things around in the CMS."
— Prakrati Kamath, Marketing Team
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, the connector renders every component as an image. Instead of relying on component names, the agent compares the Figma design with rendered component previews to identify the best match, much like a designer would.
Once the components have been selected, the connector maps the approved content into the appropriate component fields, validates the page structure against the CMS schema, and assembles a valid draft ready to be created in 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.
