Built to compound: the marketing engine we run at Tandem
How a small team designs, launches, and improves entire marketing campaigns with a system of AI agents, and how our own judgment is built into the process.
Tandem is an early-stage, tech-for-good startup. Our app turns passive, disconnected screen time into something active and shared: instead of a child watching a screen alone, a parent and child sit down together and co-create a personalized, illustrated story, and those stories keep evolving with the child through the critical early years. I use Tandem nearly every night with my son and it has brought so much joy and connection to our relationship over the last few months.
Now, our challenge is to show the value that I see every day to the families who would benefit from it, and provide enough that they want to subscribe. But most of our eight-person team is part time (including me), and we need to test a lot of marketing ideas fast, without the budget or headcount a bigger company would have.
In May, we ran our first campaign around personalized Father’s Day stories. Kids could choose characteristics about their dad and the system would create stories about them, tailored to personal details that made them truly magical. Our families and friends loved the stories. But we needed a distribution channel. So we built a campaign: landing page, paid ads, emails all focused on showing people the value of our product and encouraging them to buy a subscription to the app. It took us over two weeks to build the full campaign, working across our designers, product and engineering, and marketing teams. And once the campaign was run, we could do a retrospective to review how it went.
For a startup with a limited runway and pressure to raise funding for the next round, this was far too slow. We knew we couldn’t continue learning campaign by campaign, making one change each time. We wanted a way to run many campaigns simultaneously and create micro-learning as we went, so the learning built on itself instead of starting from scratch every time.
So we built a system for it. It designs a campaign, writes the landing pages and the ads, launches them, watches how they perform, runs experiments to improve them, and documents what it learns for the next campaign. Our team approves the decisions that need human judgment and taste. It does the rest, and it gets better the more we use it.
I want to walk through the whole thing, because the interesting part isn’t that AI can write an ad (or even how AI can write a good ad). It’s what happens when you wire the pieces into a loop that compounds.
It started on a whiteboard
The first version of this was a diagram on a whiteboard and a recorded brainstorm. We sat down as a team, talked through what a fully automated, always-learning campaign system could look like, and we captured the whole conversation in Granola. At the time, it felt like science fiction. We were describing agents that research a market, write on-brand ads, grade each other’s work, post to Meta, and run their own daily experiments. I wasn’t sure how much of it was actually buildable.
Then I sat down with Claude and we turned that ambition into a design. We worked out the agents and what each one is responsible for, the handoffs between them, the exact points where a human has to step in, and the full tech stack underneath. That became a diagram of the system, which is the map we built against.
What we were actually building
Our goal was not to “use AI to make ads faster.” Anyone can do that. The goal was a system, at the level of the whole marketing function, with three properties:
It holds our context and expertise, so what it produces sounds like us and reflects what we’ve learned.
It keeps a human in charge of judgment, at the specific points where judgment matters.
It learns. Every campaign feeds the next, so the system gets better over time instead of resetting.
The hardest and most valuable part of the design was the second one. We spent real time working out exactly where a human is essential and where the system can safely run on its own.
It starts with what we know, and a market analyst
Every campaign begins from the Tandem brain, the place we keep our context: our brand voice, language library, how the product actually works, our ideal customer, and everything we’ve learned from past campaigns.
A market analyst agent takes the campaign we want to run and researches it against that context, using live web search. What makes it high-quality is that a second agent reviews the first one’s work against a high bar and sends it back if it isn’t good enough. On one campaign, the analyst proposed an angle built on the World Cup matches being around UK bedtime, good timing for young kids to actually watch. But the reviewing agent caught that the matches were actually in North American time zones, most after kids’ bedtime in the UK, and it disregarded the angle before it reached us. This agentic review loop ensures that what we review is thoughtful, verified and high quality.
The team brainstorm, and the personas
The research doesn’t replace us. It feeds a team brainstorm, where the humans bring our ideas and the judgment, and that conversation goes back into the system.
Out of the research and our ideal-customer work, the system builds a set of personas: specific, named people who each stand for a real profile of our audience, ranked by how likely they are to buy for this particular campaign. Then our team confirms them. This is one of the human gates we designed on purpose. The personas drive everything downstream, so a human signs off before the machine runs with them. One thing I want to be clear about: all of this is aimed at parents, the paying grown-ups, not at children. No child data feeds the system, and the personas are built from market research, not from our users’ data.
The quality loop, and our embedded knowledge
The next step in the process is where the system gets really interesting, and it’s a good illustration of what agentic loops actually look like in practice.
When it’s time to create the landing pages and the ads, two agents work together. A content creator writes the piece. A marketing director then grades it, out of ten, against a definition of “good” that we defined in advance: would this specific persona actually stop scrolling and click? If it scores below eight, it goes back to the creator for a rewrite, and back again, until it passes. Only then does it reach our team for review. When we added this in, the difference in the quality of outputs was immediately noticeable.
And the definition of “good” isn’t generic. We spent significant time talking with our marketing manager and advisors, recorded with Granola, to unpack what a successful campaign looks like. How to structure an ad. How to keep people’s attention. What gets people to click, and how to find the right people. We then fed these transcripts into Claude, summarized the key points, and wrote them into the skill the agents follow. So the system knows what quality looks like from our perspective. We are applying our expert’s standards, every time, at scale.
Building the ads, then launching
Once the landing page is approved, the system builds the paid ads for it. For the static ads, we approve the copy first, then it produces images in our brand style and gives us options to choose from.
For the video ads, we review and approve the full copy and the scene, the footage that plays behind it. Then we record a voiceover in our own real voices, and the system creates and assembles the finished videos, stitching the footage, the voiceover and the captions together. We review those, edit anything that’s off, and approve. Only then does the system post them to Meta.
All of it launches within the guardrails we set: the budget, the audience, the limits. Nothing spends real money until we approve it. The automation handles the mechanics. The decision to go live stays with us.
One dashboard, from the ad all the way into the app
Once a campaign is live, we can see the whole journey in one place. It starts with each individual ad, follows the click to the landing page, and continues into the app itself so we can understand what users do once they download the app.
(image shows illustrative data, not from the live campaign)
That full-funnel view, from a single ad all the way into real user behavior, is what lets us judge a campaign on what actually matters instead of on surface metrics.
Experiments, every day
Every day, an optimizer agent reads the live results and runs a simple, disciplined process. It finds a problem, forms a hypothesis about why it’s happening, and proposes a specific experiment to test it: change this hook, swap this image, move the budget here. We set the test up, and then we watch, day by day, whether the change is actually working, on a graph tied to that hypothesis.
We aren’t running one big campaign and making guesses. We’re running small, measured experiments continuously, and keeping a record of what moved the numbers and what didn’t. When a campaign ends, everything we learned goes back into the Tandem brain, so the next campaign starts from a smarter place than the last one. That’s the compounding part, and it’s the whole reason we built it as a system instead of a set of tools.
Automated, but still ours
It would be easy to read all of this as “they handed marketing to the robots.” That’s not what happened. If we had done this, the results would have been the AI slop that everyone is tired of seeing.
The system does the research, the writing, the design, the building, and the daily analysis. But our team’s judgment runs through it at every important point: the personas, the definition of good, the content before it’s live, the guardrails, the decision to spend. It holds our team’s expertise, our brand, and our marketing manager’s craft, and it applies them consistently. It still gets things wrong, and we’re still improving it constantly. It is not a machine we switched on and walked away from. But it gets smarter every week we use it, and has already helped us to recalibrate our strategy and launch multiple campaigns in the span of a few days.
What this has meant for us
I didn’t expect to be able to build something like this. A year ago, a system like this would have been out of reach for a team our size, and definitely not something I could take on. It’s great to be able to build an automation. But what excites me is that this automation produces high-quality outputs that are on par with what our team would do manually. We’re working out where our time, judgment and knowledge matter most, so a small team can test and iterate quickly without dropping quality, and build a system that keeps learning as it goes. We are already building other agentic systems for different parts of the company and I can’t wait to see where we will be several months from now. It has also shown me what a small team can do when we’re deliberate about how we use AI, and how much more we can produce without lowering our bar for quality.







