A marketing engineering stack is the set of tools that lets an AI agent read your marketing data and act on it safely. It has ten parts: a marketing data pipeline, a data warehouse, a server, media storage, a database for the agent's own records, scheduled jobs, login, shareable links, Git, and an API gateway. The rule that holds it together: the agent reads from a warehouse you own and uses the ad platforms' APIs only to make changes.
At list prices on October 16, 2026, a working version for one marketer comes to about $199 a month, and half of that is the Claude plan.
Here is the first thing most marketers try with an AI agent. They hand it the Meta and Google Ads keys and ask which campaigns made money last quarter. It is the obvious move, and it is the one that breaks first.
This page is the plumbing under the role described in what a marketing engineer is: ten parts, what each one costs, and which to buy or build.
Start with why the obvious move breaks. The ad platforms ration their APIs. A Google Ads developer token at Explorer access gets 2,880 operations a day against live accounts, and requests that fail still count.
Meta caps create and edit calls at 100 requests a second per ad account for each app. It also limits how many ads an account can create based on its daily spend limit.
The agent has a limit of its own. Anthropic's best practices for Claude Code say the context window holds every file and every command output in a session, and that performance drops as it fills. Ninety days of ad rows pasted into that window and joined by hand to analytics is how you get a confident answer built on a bad join.
Cody Schneider, who sells a bundled data tool for this work, makes the same case in his Marketing Engineering Crash Course: the agent reads from a warehouse and uses platform APIs only to write. We agree, and we add one rule on the write side. We call the whole thing Read Wide, Write Narrow.
Read wide: the agent can query everything, from a copy you own. Write narrow: it can change only a short list of things, through one logged door, with a person approving anything that spends money or reaches a customer.
Every part of the stack below serves one side of that line.
Strip out the vendor names and a marketing engineering stack is ten jobs. Schneider's list, summarized on Modern Creator, names the same ten we use, and the figure below gives each one a plain job description and an entry price.
Two parts are about reading: the pipeline and the warehouse. Four are about running work without you: the server, the scheduled jobs, the agent's database, and media storage. Two are about sharing safely: login and shareable links.
The last two hold the rest together. Git keeps every script and prompt with its history, so the work survives the person who wrote it. The API gateway is the one door every outside call goes through.
You do not need all ten on day one.
A marketer working alone can start with three: free Google exports into a warehouse, a Git folder, and one scheduled job. The rest arrive when a system needs them, not before.
Split every marketing agent into two sides. Read wide: the agent can query everything, but only from a warehouse you own, fed by scheduled exports and pipelines, never by live calls to the ad platforms. Write narrow: the agent can change only a short written list of things, such as uploading a creative, pausing an ad or moving budget inside a cap, and every change goes through one logged gateway that holds the keys and enforces the caps in code.
Anything that spends money past the cap or reaches a customer waits for a person. Use it to decide which part of the stack to add next: a new question needs something on the read side, a new action needs a rule on the write side.
The cheapest pipeline is the one Google already built. GA4 can send raw event data to BigQuery through BigQuery Export, with a daily limit of 1 million events on standard properties. Search Console has a bulk data export that sends your performance data to BigQuery every day.
Google Ads data can follow through the BigQuery Data Transfer Service, which runs a Google Ads transfer at most once every 24 hours. Put the three together and you have spend, clicks, sessions, conversions and search queries in one place, refreshed daily.
The warehouse bill starts at zero. BigQuery's pricing page lists the first 1 TiB of queries and the first 10 GiB of storage each month as free, and the BigQuery sandbox lets you try it without a credit card.
Meta, your CRM and Stripe take one more step. dlt is an open-source Python library that loads data from REST APIs and databases into a warehouse, and its docs are written to be used with coding agents. Claude Code can write that pipeline for you; your job is to say which fields matter.
One rule keeps the read side honest. The agent reads the warehouse, never a spreadsheet someone exported last Tuesday, so two people asking the same question get the same number.
A system is something that runs while you are at lunch. That takes a server and a clock. Cloudflare Workers costs $5 a month on the paid plan, and a job started by a Cron Trigger gets up to 15 minutes of CPU time.
GitHub Actions can run on a schedule too, as often as once every 5 minutes. GitHub's docs also say scheduled runs can be delayed at busy times, the top of the hour most of all, and some queued jobs may be dropped. That is fine for a Monday report and wrong for anything that must fire on time.
The agent needs its own database, separate from the warehouse. Every time it makes an ad, it should write down the prompt, the file and the ad ID it got back. Next month, that record is how you join a piece of creative to its results.
Supabase gives you Postgres for this, and its free tier has a catch worth reading. Supabase pauses free projects after a week of inactivity, which matters for a database only a script touches. Pro starts at $25 a month and is never paused.
Creative needs a home that is not your laptop. Cloudflare R2 stores the first 10 GB a month free and charges nothing for egress, the fee many storage services charge each time a file is downloaded.
Two small parts finish the run side. Cloudflare Zero Trust keeps a dashboard behind your team's login, free for up to 50 users. Cloudflare Pages hosts the dashboard itself, with 500 builds a month on the free plan.
Writing is where money moves, so this side gets the most rules. The agent may upload a creative, pause an ad, or shift budget inside a cap you set. It may not raise spend past the cap, edit live copy without a person looking, or touch billing.
A written instruction is not a limit. The cap has to live in the code of the door, which is the core idea in what an agent harness is.
All writes go through that one door. For model calls, Cloudflare AI Gateway adds logging, caching, rate limits and a running count of requests, tokens and cost. For ad platforms and data vendors, the door can be a small Worker that holds the keys, logs each call, and refuses anything not on the list.
That is also why keys never sit in a prompt. They live in one .env file on your machine and in the platform's secret store in production, and only the scripts read them. The setup, step by step, is in Claude Code for marketers.
Git is the record of all of it. Every script, prompt and rule sits in a repository with its history, so you can see what changed the week cost per lead moved. GitHub Free includes unlimited private repositories, and the folder layout we recommend is in the growth repo.
The most valuable write is often the quietest one. Sending real outcomes back to the ad platforms lets them bid on buyers instead of form fills. That is server-side conversion tracking, and it runs on this same server.
Every part can be rented as a service or assembled from pieces. The rule we use is short: buy the read side, build the write side.
Reading is a solved problem. Google's exports, managed connectors and open-source loaders already move the data, and a homemade version would be worse. Writing is where your rules live: which ads may pause, which budget cap holds, what needs a person.
Bundles sit in between. Schneider's company sells one that packages the pipeline, warehouse and gateway behind a single install, and any bundle trades control for setup time. That is a fair trade for a team of one, as long as you can take your data and your scripts with you when you leave.
The modeling layer is optional at the start. Once the same SQL shows up in three places, a tool like dbt keeps those definitions in one file, so "a lead" means the same thing in every report.
Here is the whole stack for one marketer at list prices on October 16, 2026. It comes to $199, and half of it is the Claude plan.
The big line is Claude Max 5x at $100 a month, because an agent that works all day runs past a smaller plan. Data comes next: DataForSEO asks for a $50 minimum top-up with no subscription, and Apify's Starter plan is $19 a month plus usage for scraping.
The rest is small. Supabase Pro at $25 keeps the agent's database awake, Workers Paid is $5, and BigQuery, R2, GitHub, Zero Trust and Pages stay at $0 inside their free allowances.
Two honest caveats. Use past a free tier is billed, so a heavy scraping month or a large warehouse query costs more. And the DataForSEO $50 is a deposit that lasts until it is spent, so in many months that line is zero.
The plan can shrink, too. On Claude Pro at $20 a month the same stack costs $119, and the first limit you hit is usage, not tools.
For a three-person team, ten parts is too much. That half of the objection is right, and it is why we never start with all ten.
Start with the read side and nothing else. Turn on the free exports, point Claude Code at the warehouse, and ask the questions you already ask every Monday. If your data is spread across a dozen tools, our piece on fragmented data explains why you search it where it sits before you move anything.
Add the run side when a question repeats every week. Add the write side when an action repeats. Each part should arrive because a system asked for it.
If you would rather have someone build the first system next to you, that is what our CRM and RevOps work covers. You bring one number you want to move, and nothing else is committed.
We run the agency on this pattern, so here is what is actually in use. The agents work in Claude Code, and skill files keep every one of them on the same facts and rules, the setup in source-of-truth skills. Memory sits in a vector database that is searched before anything is written and updated after.
Every outside call has a cap written in code. The script that scans 121 practitioner accounts on X for customer language stops at $0.50 a run, and a typical run costs about $0.02. The outbound system enriches and sequences contacts staged across 12 industries.
The checks are the locks on the write side. This library cannot publish until a script confirms every outside link loads, every paragraph is three sentences or fewer, and no 8-word run is lifted from a source. Ad renders are measured by scripts and reviewed by a separate critic agent before a person sees them.
If you want to build this yourself, our training runs four weeks on live work and ends with one machine you built and a case study to show for it.
n8n vs Zapier vs Plain Code [comparison]. The write side has to live somewhere. This one says when a visual tool is enough and when to move to code.
The Growth Cockpit [system]. The first thing worth building on top of a warehouse: a Monday memo that replaces the status meeting.
How We Run a Marketing Agency as Marketing Engineers [case study]. The same stack in daily use, with the checks that run before anything ships.
Controlling AI Token Spend [cost]. The Claude line is half of this bill. Read it before that line becomes the whole bill.
So the simple takeaway is this: let the agent read everything from a copy you own, and let it change only what you have written down.
Our training runs four weeks on live work. You leave with a growth repo, one machine that runs without you, and the case study that shows it worked.
See the training →Hiring for this instead? See how we build these systems for companies.