Marketing Engineering

The Marketing Data Stack for AI Agents: Six Jobs and the Read-Wide Rule

ShareXLinkedInFacebookEmail
Featured image for the article: READ WIDE WRITE NARROW. What an AI may touch, and when.

A marketing data stack is the set of tools that lets an AI work with your marketing numbers safely. It does six jobs: collect, store, run on a schedule, version, connect and check. The rule: the AI reads everything from a copy you own, and changes only a short written list of things, one approved step at a time.

What is a marketing data stack?

Most teams start the same way. They hand an AI assistant the keys to the ad accounts and ask which campaigns made money last quarter.

It answers in ten seconds. It sounds sure. Nobody can check it.

Then someone asks it to pause the losers. Now it spends real money on a guess.

A marketing data stack is the set of tools that lets an AI read your numbers and act on them without guessing. We describe it by job, not by vendor. Vendors change every year, and the jobs do not.

The whole stack hangs on one rule. We call it the Read-Wide Rule: the AI reads everything from a copy you own, and changes things only through one door, one approved step at a time.

This is the plumbing under the job in what a marketing engineer is. It is not a warehouse course for data engineers.

The AI reads wide from your copy and writes narrow through one door

Read side (wide)Write side (narrow)
Everything, from one copy you ownOnly a short written list of actions
Fed by scheduled jobsSent through one logged door
Joined on shared keysCaps enforced in code, not in a prompt
Mistakes cost a wrong answerMistakes cost money or a customer

Read-Wide Rule, Anar

Name the stack by its six jobs, not its vendors

Every marketing data stack does six jobs, whatever the logos say. Name the jobs first and the tool choice gets easy.

Collect means copying data out of the ad platforms, analytics, the CRM and payments, a step data people call ETL. Store means keeping one copy you own in a warehouse, a database built for questions across many sources.

Run on a schedule means the work happens while you sleep. Version means every script, prompt and setting keeps its history.

Connect is the one door every outside call goes through. Check means watching the other five and telling you when one breaks.

Why jobs and not tools? Tools get bought, renamed and shut down. A job outlives all three.

Your first stack does not even need software. The Team Topologies authors say the simplest platform can be a list on a wiki page.

So write the six jobs down, with a tool and an owner next to each. That page is version one. No code yet.

Every marketing data stack does the same six jobs

JobWhat it doesYou lack it when
CollectCopies data out of ad platforms, analytics, CRM and paymentsSomeone exports a spreadsheet every Monday
StoreKeeps one copy you own, joined on shared keysTwo people get two numbers for one question
Run on a scheduleDoes the work at a set time, without youThe report waits until someone remembers
VersionKeeps every script, prompt and setting with its historyNobody knows what changed the week results moved
ConnectOne door for every outside call: keys, caps, logAPI keys sit in prompts and chat threads
CheckWatches the other five and raises an alarmSales finds the broken form on Monday

Anar's six-job map. First version can be a one-page list, after the thinnest viable platform in Team Topologies (Skelton and Pais)

Your first stack can be a single page

  • A list on one page Six jobs, a tool and an owner next to each.
  • Collect and store Two sources copied into one place you own.
  • Schedule and checks Added when a question repeats every week.
  • Door and ladder Added when an action repeats.

Our sequence, after the thinnest viable platform in Team Topologies and the single organizing system in Building a Second Brain (Forte)

Write the stack on one page and the gaps show up at once

Example one-page map of a marketing data stack with six jobs, a tool and owner for each, two missing jobs in red, and a list of AI connections with their permission rung, including one email agent flagged as a rule break
  • Keys pasted into a chat mean no door, no log and no off switch. Build this job next.
  • Shared keys are what let you follow one buyer from ad click to closed deal.
  • Draft means the work lands somewhere harmless, like a paused ad.
  • Anything that reaches a customer needs a named person until the log earns a higher rung.

Example page built for this article with a made-up brand.

Example page. Version one of a stack fits on one page, and the gaps show up the moment you write it down.
Framework: Read-Wide Rule
The Automate step of the ANAR Loop, our four-step method: Audit, Name, Automate, Repeat

Split every AI connection to your marketing into two sides. Read wide: the AI may query everything, but only from one copy you own, fed by scheduled jobs and joined on shared keys such as date and customer ID, never by live pulls from the ad platforms. Write narrow: the AI may change only a short written list of things, through one logged door that holds the keys, enforces caps in code and has an off switch.

Every write connection climbs four rungs, one at a time, after a clean log: read, draft, capped, live. Anything that spends past a cap or reaches a customer waits for a named person.

Why should the AI read from a copy you own?

The read side has one rule: the AI asks your copy, never the live ad platforms. Three reasons.

First, platforms ration their APIs, the lines programs use to talk to them. Pull ninety days of rows for every question and you burn the whole daily allowance just reading.

Second, an AI holds only so much in its working memory. Paste in thousands of ad rows, join them to analytics by hand, and you get a confident answer built on a bad join.

Third, two people asking the same question should get the same number. That only happens when both read the same copy.

The copy needs shared keys. Data modelers call them conforming dimensions: fields such as date and customer ID that mean the same thing in every table.

With shared keys, you can follow one buyer from ad click to closed deal. Without them, you guess.

Storage is the easy part now. The hard part is asking a question worth answering.

Live platform pulls give fast answers nobody can check

AI reads the live platformsAI reads your copy
Burns the daily API allowance on readingReads as often as you like
Thousands of rows crammed into working memoryAsks one query and gets one table
Joins sources by hand, often wronglyJoins on shared keys
Two people, two numbersTwo people, one number

Anar's read-side rule

Three shared keys let you follow one buyer from click to deal

Shared keyFound inLets you join
DateEvery sourceSpend, sessions, leads and deals on the same day
Customer or contact IDForms, CRM, paymentsA lead to the deal and the revenue it became
Campaign IDAd platforms, URL tags, CRM sourceA deal back to the ad that started it

Conforming dimensions (date first) from How to Measure Anything in Cybersecurity Risk, Hubbard and Seiersen. Marketing keys are our reading

Run it on a schedule, and let the system report its own failures

A stack earns its keep while you are at lunch. That takes a clock: a scheduled job that collects, stores and checks at the same time every day.

Order matters. Each step runs only after the step before it finished cleanly, so a failed import never feeds a report.

Workflow tools call that chain a directed acyclic graph. In plain words, work only moves forward, and only on good input.

Then make the stack report its own breaks. Who usually finds a broken lead form? Sales, on Monday, when the pipeline looks thin.

The Accelerate research team studied how software teams learn about failures. Some heard it from customers, others from their own alerts on a threshold or a rate of change. The alerts predicted better software delivery.

We apply the same logic to marketing. For example, a threshold alert fires when fewer than ten leads arrive in a day. A rate-of-change alert fires when leads drop by half against the same weekday last week.

A dashboard you have to remember to open is not a check. It is a hope.

Each step runs only after the one before it succeeds

  • Collect Pull yesterday's rows from each source.
  • Store Load them into the copy, keyed by date, customer and campaign.
  • Test Row counts and totals inside normal ranges? If not, stop here.
  • Report Build the numbers people read.
  • Alert Send any threshold or rate-of-change alarm to its owner.

Our run order. Upstream-first rule from Prompt Engineering for LLMs (Berryman and Ziegler)

Alerts from your own systems beat hearing it from customers

How you find outSoftware example (book)Marketing example (ours)
A customer or another team tells youCustomer reports, the operations centerSales says the pipeline looks thin
Threshold alertCPU exceeds 90%Fewer than ten leads in a day
Rate-of-change alertCPU up 25% in ten minutesLeads down by half against the same weekday last week

Accelerate (Forsgren, Humble, Kim): the last two rows formed the proactive notification construct that predicted software delivery performance. Marketing column is our reading

Version the settings, not just the scripts

Version means every change has a date, an author and a way back. Most marketing teams skip this job, then miss it the week cost per lead jumps.

The same research had a surprise. Keeping configuration in version control was more strongly tied to delivery performance than keeping the code there.

Marketing is mostly configuration. Tracking tags, UTM rules, automation triggers, audience definitions and AI prompts are all settings, and settings drift.

So the stack keeps a written history of each one. When results move, you ask what changed that week. You get an answer in a minute, not a meeting.

The AI's own work gets logged too. Chip Huyen's rule in AI Engineering is to log everything: the model, its settings, the prompt, the output and every tool it called.

You never know which line you need until something goes wrong. So read a few real outputs by hand. Do it daily.

Logs nobody reads are just a storage bill. The growth repo shows one folder layout for all of it.

Marketing is mostly settings, and settings drift

Version itLog it, for every AI call
Tracking tags and conversion settingsThe model and its settings
UTM and naming rulesThe prompt template and the final prompt
Automation triggers and audience definitionsThe output, and any steps in between
AI prompts and agent rulesEvery tool call and what it returned
The action list and the capsStart, end and crash times, with an ID

Version column: Accelerate found configuration in version control more tied to delivery performance than code. Log column: AI Engineering (Huyen)

What may an AI change? Climb the ladder one rung at a time

An AI may change only what a written list allows, and each item sits on one of four rungs. A read tool lets the AI look. A write tool lets it act: pause, upload, send, spend.

Where does each action go? The textbook that coined marketing engineering has the rule. Automate a decision when a wrong call is cheap, like a keyword bid, and keep a person in it when a wrong call is expensive.

Rung one is read: reports and queries only. Rung two is draft: the AI may write, but the work lands somewhere harmless, like a paused ad or a proposed change you confirm.

Rung three is capped: live changes inside limits enforced in code, such as a budget move under a set amount. Rung four is live, and a named person approves each change that spends money or reaches a customer.

Every connection starts on rung one, even the ones a vendor calls safe. Climb a rung only after a clean log on the rung below. No exceptions.

Make stopping easier than starting. Good experiment platforms let only the owner start a test, but anyone can stop one. Give every AI connection the same off switch.

One mix is never allowed: private data, text written by strangers, and a way to send data out, all in one AI job. Simon Willison calls that mix the lethal trifecta.

With that mix, one planted line in a form field can send your CRM to a stranger. Keep at least one of the three out of every job, and keep the most private records on a local model.

A robot presses the one red button it is allowed to touch on a huge control panel, while an engineer watches with her arms folded. Black and white stencil painting.
Issued by Anar Global ยท No. 121

Every AI connection starts on the bottom rung

  • 1. Read Reports and queries only. Every new connection starts here.
  • 2. Draft Writes land somewhere harmless: a paused ad, a proposed change you confirm.
  • 3. Capped Live changes inside limits enforced in code, such as a budget move under a set amount.
  • 4. Live A named person approves each change that spends money or reaches a customer.

Read-Wide Rule, Anar. Read and write actions after AI Engineering (Huyen)

The cost of a wrong call decides the rung

Our placements, using the textbook's rule: automate only when a wrong decision is cheap

ActionCost if wrongHighest rung we allow
Pull last week's numbersA wrong answer you can checkRead
Upload a new adNothing, if it lands pausedDraft
Pause an adSmall, easy to undoCapped
Move budget between ad setsMoney, inside a set capCapped
Raise total spend, change a price, email the listMoney or a customer, hard to undoLive, with a person

Rule from Principles of Marketing Engineering and Analytics (Lilien, Rangaswamy, De Bruyn). Anyone can stop, only owners start: Trustworthy Online Controlled Experiments. Placements are Anar's

Never give one AI job all three of these

  • Low risk Stranger text and a way out, nothing private to take.
  • The trifecta Private data, stranger text and a way out. Never allowed.
  • Safe default Reads public or harmless data, sends nothing.
  • Contained Private data, but nothing leaves. Keep it this way.

Simon Willison, the lethal trifecta. Grid is Anar's; assumes text written by strangers is present

Send every outside call through one door

Connect is a door: one small service between the AI and everything outside. It holds the keys, checks the list, enforces the caps and writes the log.

Why one door? A rule in a prompt is a suggestion. A rule in the door's code is a limit.

Keys never sit in a prompt or a chat. They live in one secrets file or the platform's secret store, and only the door reads them.

The door also counts cost per call, which is how you keep AI token spend from surprising you.

Add a kill switch: one setting in the door that turns every write off at once. Test it before you need it. Fire drills beat fires.

That door, plus the list and the caps, is the core of an agent harness. The model thinks. The door protects.

One door checks every outside call before it goes out

  • Is it on the list? Unknown actions are refused.
  • Is it under the cap? Spend and volume limits live in code.
  • Does it need a person? Rung four actions wait for approval.
  • Send it with the key Only the door holds the key.
  • Write the log Who asked, what went out, what came back, what it cost.

Our door design. Gateway in place of handing out raw keys: AI Engineering (Huyen)

A limit in the door's code holds even when the agent asks for more

Example log of an AI gateway showing allowed read calls, a paused ad upload, a budget move inside its cap, a larger move refused for breaking the cap, a delete refused because it is not on the list, and a 1,200-contact email waiting for a person to approve
  • The cap lives in the door's code, so the agent cannot talk its way past it.
  • Anything not on the written list is refused, even if the agent asks politely.
  • Customer-facing changes wait for a named person.
  • One switch turns every write off at once. Test it before you need it.

Example page built for this article with a made-up brand.

Example page. A rule in a prompt is a suggestion; a rule in the door's code is a limit.

Buy the read side, build the write side

Our default is short: buy the read side, build the write side. Moving data is a solved problem, and a homemade version will be worse.

Writing is where your rules live. Which ads may pause, which cap holds, what needs a person: no vendor knows that, so you write it.

In Traction, Gino Wickman tells a story about building too early. He paid a firm $45,000 over months for custom software, scrapped it, and switched to a $500 product off the shelf. The mistake, by his own account: he never studied the process first.

So do the job by hand before you automate it. We run a new report by hand for three weeks, then automate the version that survived. Boring, and a lot cheaper than $45,000.

How to spend six months on a stack nobody uses, in four easy steps. Step one: buy every tool on a top-fifty list.

Step two: build a custom dashboard before anyone asks a question. Step three: give the AI admin keys so it can help.

Step four: discover the warehouse holds three definitions of a lead. Congratulations, you built a very expensive way to argue.

Before you sign with any bundled vendor, check one thing. Can you export your data and your scripts the day you leave?

Buy the jobs that move data, build the ones that hold your rules

JobOur defaultWhy
CollectBuyExports and loaders already exist
StoreBuyNobody wins by hosting their own warehouse
Run on a scheduleBuyRent the clock, write the jobs
VersionBuyA free code host covers this size of work
ConnectBuild the rulesRent the door, write the action list and caps yourself
CheckBuild the alarmsOnly you know what normal looks like

Anar's default. Do it by hand first: Systemology (Jenyns)

A $45,000 custom build lost to a $500 product

  • spent on custom software, then scrapped 45000
  • the off-the-shelf product that did the job 500

Traction, Gino Wickman: his own account of the $45,000 Mistake

Grow the stack only when a system asks for it

Start with collect and store, and nothing else. Point the AI at the copy and ask the questions you already ask every Monday.

Add the schedule and the checks when a question repeats every week. Add the door and the ladder when an action repeats.

The first thing worth building on the copy is the growth cockpit, a weekly memo that replaces the status meeting. The most valuable early write is usually sending real outcomes back to the ad platforms.

Data in a dozen tools today? Our piece on fragmented data explains why you search it where it lives before you move anything.

Each job should arrive because a system asked for it. A vendor demo is not a request.

A stack built ahead of its questions is a museum.

Vendor names and prices change faster than this page. The box below holds today's examples, with the date we checked them.

Each job arrives when a system asks for it

  • One page Day one Six jobs, a tool and an owner each.
  • Collect and store Week one Two biggest sources into one copy. Every AI connection on rung one.
  • Schedule and checks A question repeats The morning run, plus threshold and rate-of-change alarms.
  • Door and ladder An action repeats Action list, caps, log, off switch. Climb one rung.
  • Shared definitions Same SQL in three places One definition of a lead, used by every report.

Anar's sequence. Keep it simple first: How to Measure Anything in Cybersecurity Risk

Map your own stack with AI

The prompt below maps your tools to the six jobs and puts every AI connection on a rung. Paste it into your preferred AI and answer its five questions.

This week: run it, then turn on collect and store for your two biggest sources. Put every AI connection on rung one.

Next week, ask your Monday questions of the copy. Climb a rung only when the log is clean.

Want the first system built next to you? That is our marketing engineering work.

Rather build it yourself? Our training runs on live work.

Remember the AI that answered in ten seconds? With a copy to read and a door to write through, it can show its work.

Give it a library card long before you give it a credit card.

Copy this prompt
Map your marketing data stack and rank every AI connection

Paste into your preferred AI. It asks five questions, maps your tools to the six jobs, puts each connection on a rung, and lists what to buy and build.

Act as a careful reviewer of a marketing data stack. Use only my answers and the rules below. Never invent a tool, a number or a price. If you need one, ask me, or read the vendor's own page if you can browse, and say which you did.

Ask one question at a time, show the example, and wait:
1. Which tools hold your marketing data? (Example: an ad account, web analytics, a CRM, a payment tool)
2. Where do your AI's answers about numbers come from today? (Example: I paste exports into a chat)
3. Which questions do you ask every week? (Example: cost per qualified lead by campaign)
4. List every AI connection or automation that can change something, and what it can change. (Example: an agent that pauses ads)
5. Who approves changes that spend money or reach a customer? (Example: me)

Rules:
- Six jobs: collect, store, run on a schedule, version, connect, check. Map each tool to a job. List every job with no tool.
- Read side: the AI answers from one copy we own, joined on shared keys (date, customer ID, campaign ID). No live platform pulls for analysis.
- Write side: every action sits on one rung. 1 read. 2 draft (lands paused or as a proposal). 3 capped (live inside limits enforced in code). 4 live (a named person approves each change).
- Every new connection starts on rung 1. Climb one rung only after a clean log on the rung below.
- Cheap, easy-to-undo actions may run alone. Anything that spends past a cap or reaches a customer needs a person.
- Never combine private data, text written by strangers and a way to send data out in one AI job.
- Keys sit behind one door that logs every call and has an off switch. Never in a prompt.
- Buy collect and store. Build the action list, the caps and the approval line.
- If you can browse, check the vendors' current docs for limits that changed and tell me.

Show your mapping, then use exactly this format:
JOBS COVERED:
JOBS MISSING:
EACH CONNECTION AND ITS RUNG:
RULE BREAKS:
BUY:
BUILD:
NEXT THREE ACTIONS:
Works in any AI assistant. It asks for anything it does not know and never guesses a price or a limit.
Share this articleXLinkedInFacebookEmail
Filip Kovacevic
About the author

Filip Kovacevic is the founder of Anar Agency in Phoenix. He spent five years running SEO, Meta ads, email, and content for medical practices across the United States, and now does the same work for healthcare, home-service, legal, and professional-service businesses, alongside AI implementation. More from Filip →

Want the stack built next to you?

Bring one number you want to move. We will tell you which job to set up first and how you would know it worked.

See how we build them →

Want to build it yourself? See how we train marketing engineers.