Marketing Engineering

How We Run a Marketing Agency as Marketing Engineers

ShareXLinkedInFacebookEmail

We run Anar Agency the way we tell clients to run marketing: as a set of systems, each with an input it reads, a maker that does the work, a separate checker that can say no, and a person who approves what reaches the outside world. Five run today: a content library that cannot publish a dead link or a lifted sentence, AI search tracking that read 409 AI answers on September 22, 2026, a customer-language scan capped at $0.50 a run, an outbound system with contacts staged across 12 industries, and a video pipeline where the builder never grades its own cut. The tools are ordinary.

The rule that the maker never checks its own work is what makes them hold.

Three scripts stand between every draft and this page

Nothing in this library goes live because someone felt good about it. Three scripts read every article first, and any one of them can stop it.

One opens every outside link the way a browser would and fails the article if a single page does not load. One counts the sentences in every paragraph. One compares the text, eight words at a time, against the sources the writer read.

That is the whole idea of this page in one example. A marketing engineer, as we define the role in what a marketing engineer is, builds things that still work next Tuesday. We run the agency as one, and below are the five systems we run on, with the numbers and the dates.

No client names. No promises. Just how it works.

One rule ties all five together, and it is the part worth copying. The thing that does the work never checks the work.

The stack is boring on purpose

Our agents work in Claude Code, which Anthropic describes as an agentic coding tool that reads a codebase, edits files and runs commands. We use it for far more than code: drafting, research, reports and the checks below.

What keeps every task on the same facts is a library of skill files. Anthropic's skills documentation describes a skill as a file of instructions the agent adds to its toolkit and uses when a task calls for it. Ours hold client rules, brand standards and the checks each job must pass, and the method is in Source-of-Truth Skills, so we will not repeat it here.

Memory sits in a vector database, which stores text so it can be searched by meaning instead of exact words. The rule is short: search it before writing anything, and add to it after delivering anything.

Claude Code also loads instruction files at the start of each session, which its docs call memory as well. Between the two, a new session does not start from a blank page.

Then there are scripts. Small programs that do one job each, cost almost nothing to run, and either pass or fail.

That is the list: agent, rules, memory, scripts. The parts and what each one costs are in The Marketing Engineer's Stack.

Notice what is missing. No platform with a logo sits in the middle, so any part can be swapped without rebuilding the rest.

The five systems we run, and what stops each one
Content libraryReads: sources and transcripts. Makes: one Python file per article, turned into pages by a generator. Stopped by: a link check, a paragraph check and a lift check, all in code.
live since Oct 1323
AI search trackingReads: unbranded buyer questions, asked of several AI engines. Makes: a log of every answer and every source cited. Stopped by: counting, not screenshots.
citations logged4,243
Customer-language scanReads: 121 practitioner accounts on X, for one topic at a time. Makes: raw posts saved for the writer. Stopped by: a spending cap written into the script.
cap per run$0.50
OutboundReads: contact data, filled in by enrichment. Makes: sequences. Stopped by: staging, one industry at a time, before anything is sent.
industries staged12
Video QAReads: every ad render. Makes: measurements for frozen frames and loudness per second. Stopped by: scripts first, then a separate critic agent, then a person.
checks before a person2
Anar's own operation, as of October 16, 2026. AI search figures are from two runs on September 22, 2026. No client data or results are shown.
Framework: The Builder-Never-Grades Rule

Give every system five parts: an input it reads, a maker that does the work, a checker that is not the maker, a person who approves anything outsiders will see, and one number the business already tracks. Order the checks by cost. Code goes first because it is fast and objective, a second model goes next for judgment calls, and a person goes last, on only what survived.

If you cannot write the code check, the task is not ready to automate. If the maker and the checker are the same tool or the same person, there is no check.

Case one: a content library that cannot publish a dead link

Every article here is one Python file. A generator turns the files into pages, and the three checks run before anything ships.

Twenty-three articles have been live since October 13, 2026, with more than 120 drafted. Every draft has to clear the same three gates as the live ones.

The link check. Every outside source is opened with the headers a real browser sends, and anything other than a working page fails the article. A page that blocks scripts can stay only if a person opened it in a real browser, logged the date, and rechecks it every quarter.

Links die quietly, which is why this one runs every time. Pew Research Center found that 38 percent of webpages that existed in 2013 were gone a decade later, and that 23 percent of news pages carried at least one broken link.

The paragraph check. No paragraph runs past three sentences. Short paragraphs read better on a phone, and a rule in code is applied every time, while a rule in a style guide is applied when someone remembers it.

The lift check. Writers here, people and agents, read transcripts and source posts before they write. The check cuts the article and every source into overlapping runs of eight words, a method known as w-shingling, and fails the draft on any shared run.

That matters for more than manners. Google's guidance on helpful content asks whether a page that draws on other sources avoids simply copying or rewriting them, and a model left alone will rewrite a source and call it original.

None of the three is clever. Each is a short script, and each says no without being asked.

Case two: we measure AI search the way we measure ads

On September 22, 2026, two runs asked AI engines the questions our buyers ask, with no brand names in them. They read 409 answers and logged 4,243 citations.

Company pages were 65 percent of what got cited. "Best of" posts were 26 percent. Reddit was 1.0 percent, and YouTube was zero.

The common advice says the engines love forums. In our market they did not, so this library is built from answer-first pages, and the full method is in What AI Answer Engines Actually Cite.

The lesson is not the percentages. Yours will be different.

The lesson is that a claim about AI search stays a guess until you count. Every citation in those runs was sorted into a type and tallied, so the result rests on 4,243 rows, not on one screenshot of one answer.

The page shape we chose has research behind it. The GEO study from Princeton and other universities found that rewriting a page can raise its visibility in AI answers by up to 40 percent, with added citations, quotations and statistics among the methods that worked best. That is why every article here opens with a direct answer and carries its sources.

Where 4,243 AI citations came from, by source type
Two runs on September 22, 2026: 409 AI answers to unbranded buyer questions, 4,243 citations logged and sorted by type. Percentages are rounded; "all other sources" is the remainder. Your market will differ, which is the point of counting.

Cases three and four: listen before you send

A script scans 121 practitioner accounts on X for one topic and saves the raw posts for whoever writes next. The cap is written into the code at $0.50 a run. A typical run costs about $0.02.

The cap is the check. An agent with an open budget will spend it, and a ceiling in code does not depend on anyone watching the bill.

The posts are saved raw on purpose. A writer quotes what people actually said, not a model's summary of what they said, which is the receipts habit behind a customer truth system.

Outbound runs the same way in the other direction. Enrichment fills in who each contact is, sequencing writes the steps, and the contacts are staged across 12 industries, one market per list.

We are not going to quote a reply rate here. A rate from our market says little about yours, and outbound numbers are the easiest numbers in marketing to dress up.

Two checks belong on any outbound system. Every commercial email has to meet the rules in the FTC's CAN-SPAM compliance guide, starting with a working way to opt out, and the first send of any new sequence should be read by a person. The full loop, from trigger to approval, is in The Outbound Signal Engine.

Case five: the builder never grades its own cut

Video is the hardest place to grade your own work. A single frame can look perfect while the cut around it stutters.

So every ad render is measured before anyone watches it. One script looks for frozen frames, where the picture stops and the sound runs on. Another measures loudness second by second.

Neither idea is new. Broadcasters measure loudness to a shared standard, EBU R 128, which sets a target of -23 LUFS, and the open-source FFmpeg toolkit ships both a freeze detector and a loudness meter.

Then a separate critic agent reviews the render. It did not build the cut, so it has no reason to like it.

Only after both checks does a person see it.

Anthropic's engineers report the same pattern in text. In Building Effective Agents, they write that guardrails tend to work better when one model handles the task and another screens it than when a single call does both.

We call this the Builder-Never-Grades Rule. It is the one idea on this page we would ask you to take.

The Builder-Never-Grades Rule, for your own systems

Accountants have a much older name for it. Separation of duties means more than one person has to touch a task before it counts as done, as a guard against fraud and error.

AI makes the rule cheaper, not obsolete. Anthropic's guide to evaluating agents sorts graders into three kinds: code, which is fast, cheap and objective; models, which handle nuance but need calibrating against people; and people, who set the standard and cost the most.

Our video pipeline uses all three, in that order. Code says no first because it is cheap, a second model says no next, and a person sees only what survived both.

Here is the version you can start this week. Pick the one marketing task your team repeats every week and fill in the card below for it.

If you cannot write the code check, the task is not ready to automate. Write down what "wrong" looks like first, then build the thing.

And if the maker and the checker are the same tool, or the same person, you do not have a check.

You have a hope.

The Builder-Never-Grades card: copy it for one task this week
1. The taskOne job your team repeats every week. Example: the Monday lead report.
taskone
2. What it readsThe exact inputs, by name. Example: last week's leads from the CRM and spend from the ad accounts.
namedinputs
3. The makerThe tool or person that does the work. Example: an agent drafts the report.
buildsmaker
4. The code checkA rule a script can test, pass or fail. Example: lead counts match the CRM to the row, every number has a date.
cheap, firstcheck 1
5. The second checkA different model or person reads it against a written rubric. Example: is every claim backed by a number in the data?
judgmentcheck 2
6. The personWho approves before anyone outside the team sees it, and by when.
lastapprover
7. The numberOne figure the business already tracks that should move. Example: hours spent on the report, from 3 to 0.5.
proofmetric
Illustrative example. If you cannot write line 4, the task is not ready to automate yet. If lines 3 and 5 are the same tool or the same person, you do not have a check.

"You are an agency. Of course you say you run on systems."

Fair. Every agency says its process is special, and you should discount any vendor's account of itself, this one included.

So here is what you can check without taking our word. Every source on this page loads, because a script refused to publish it otherwise, and every paragraph is three sentences or fewer, because a script counted.

What you cannot check from here is client results. We do not publish them with names attached, and that is a real limit of this page.

Here is when not to hire us, or anyone. If you cannot name the one number a system should move, an outside team will spend your money discovering the job.

And if someone on your team already builds things that run next week without them, give that person one system and a checker before you call any agency.

What this looks like inside your company

We are based in Phoenix, Arizona, and work with companies of 10 to 500 people. Client work follows the same rules as our own systems.

Weeks one and two are an audit: which number matters, what data reaches it, and which system sits closest to revenue. Weeks three to eight build that one system, with its checker, against a number you already track.

Then you choose. We hand it over with the files and the rules, or we keep running it, and the next system starts only after the first one is measured.

The details are on our marketing engineering page, and the automation side of the work sits under AI automation. You are not signing up for a platform. You get one system that runs, a checker that can say no, and the files to keep both.

If you would rather build these yourself, our training runs four weeks on live work: an audit, a growth repo, one machine, and a case study at the end.

What to read next, and why

The Marketing Engineering Audit [checklist]. Twenty scored questions on where your growth systems stand. Run it before you hire anyone, us included.

The Growth Repo [how-to]. The folder every agent reads before it writes. Build it before any of the five systems above.

The AI SDLC [process]. The same maker-and-gate idea for software teams, with the research on why feeling faster is not being faster.

So the simple takeaway is this: whatever makes the work in your company should never be the thing that checks it.

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 one of these systems running in your company?

Bring one number you want to move. In 15 minutes we will tell you which system we would build first, what would check it, and how you would know it worked.

See how we build them →

Want to do this work yourself? See how we train marketing engineers.