← Work
Build

AI GTM System

Claude CodeMarketing

Tools: Claude Code · GA4 · Google Search Console

A marketing system in Claude Code that knows our company, customers, competitors, and business context.

01Why I built it

Working in enablement, I'm often faced with problems around scale. How do I scale an onboarding program to handle the increasing headcount? How do I scale sales best practices across multiple teams? How do I scale the creation of strategic content?

As I get more immersed in using AI, a new opportunity for scale has started to emerge.

How do I scale my impact in a way that previously wasn't possible?

The answer, like many of my enablement solutions, is to create a system. What's interesting about using AI to do this is that I'm now able to have an impact on parts of the business that I would otherwise have no ability to influence. This is especially true working on a lean revenue team where we don't have a dedicated product marketer, content strategist, or marketing ops.

The idea and framework for this project were sparked by Matteo Tittarelli's article "How to build your AI GTM system". In it, he breaks down how to create an AI GTM workspace into four layers: context, skills, orchestration, and integrations.

Matteo Tittarelli's four-layer AI GTM framework infographic: system of context, system of skills, system of orchestration, and system of integrations
The four-layer framework, from Matteo Tittarelli's article on Growth Unhinged.

I decided to try Matteo's framework because I had already built many of the pieces from the Marketing work I've been tackling.

The goal was to create a system that would:

  • Reduce the context I needed to provide in my prompts
  • Standardize the approach to repeatable tasks with skills
  • Orchestrate the execution with specialized agents
  • Pull in relevant data/insights from integrated tools

Ultimately, this would enable me to create more specific outputs faster, with higher quality, and without having to start from scratch every time.

02What I built

An AI GTM operating system with four layers.

The four layers of the system: context (the foundation), skills (the producers), orchestration (the coordinators), and integrations (the connectors)
The four layers of the system.

Context is the foundational layer. I've built markdown files that cover the company, our ideal customer, our services, messaging by persona, and brand voice. These files are automatically loaded, so every session starts from the same foundation.

Skills are the standard operating procedures that combine the context from the foundational layer with the prompt. They include marketing skills that write copy, create positioning, audit paid ads, or do SEO keyword research. The skills are tools that the agents can use to solve different problems.

Agents can reason, use tools, and take feedback to improve their reasoning. The system currently has four of them, one per marketing lane (product marketing, content, paid ads, SEO).

Integrations connect the agents to data sources. This shapes where they go to pull information and ensures that they are working with live data. I won't outline our entire stack, but they have access to a handful of analytics and data enrichment tools, including GA4 and Google Search Console.

03How it works

The best way to explain the finished system is to follow a prompt through it.

Flow chart of how a prompt moves through the system: routed by description to a specialist agent or plain Claude Code, context loads in tiers, skills and integrations do the work, and the output is built on the same foundation every time. NO MATCH MATCH 1 A prompt comes in “How is the campaign performing?” 2 Routed by description Claude compares the request against each agent’s lane and picks the best fit Outside the lanes Plain Claude Code handles it directly 3 A specialist agent picks it up Product marketing · Content · Paid ads · SEO 4 Context loads in tiers The always-on orientation file, then the detailed files its instructions point to 5 Skills and live data do the work Skills read the condensed context file; live data is pulled from integrated tools 6 The output Built on the same foundation every time
A prompt’s path through the system.

The right agent is matched by description. Each agent is a file that describes the lane it owns. When a prompt comes in, Claude compares the request against those descriptions and hands the work to the best fit. Ask how a campaign is performing and the paid ads agent picks it up. If I want to control the route, I can name the agent directly in the prompt.

Anything outside the lanes falls back to plain Claude Code. The agents are designed to be specialists. When I'm connecting a new API or working on something none of them cover, the main session handles it like any other task. The system adds knowledge when it's relevant and stays out of the way when it isn't.

Once an agent picks up the task, context loads in tiers. Every session automatically loads one file: a top-level orientation document that covers the four layers, the rules that always apply, and where everything lives. The detailed context files (positioning, messaging, ideal customer, brand voice) only load when they're needed, and the agent's instructions tell it exactly which ones to read first.

Then the skills and integrations do the work. When a marketing skill runs, it reads a condensed context file that mirrors the full folder. Keeping that condensed file in sync is a written rule of the system, because two sources of truth can drift apart. The tradeoff is worth it because sessions use fewer tokens and nothing starts without the right background. The integrations pull in live data, so the output is built on current numbers.

04What broke & what I learned

I haven't run into any major issues yet, but I'm still early in my experimentation with the outputs.

One of the things I did overlook was that this system applies to anything I do in Claude that isn't related to work (such as writing this post). Funny enough, I realized this when I started working on this post. The WBM voice doesn't exactly match my own lol.

The fix was a rule that provides swim lanes based on the prompt: the company voice for company work, my voice for my own work, and a guideline to ask when it's ambiguous.

The second issue was that I realized the need for a clearance gate. Some of the content I used to create the context files has information that isn't approved to be shared externally. When I saw some of it showing up in the outputs, I added a clearance gate that flags potentially sensitive data as approved for external sharing, needing review, or not approved.

Overall, I'm very happy with this project. It's my first attempt at creating a proper harness for Claude, and I can notice a substantial difference in the quality of the outputs. There will be lots of tinkering to do with the context files and skills, but the foundation is in place.