Over the past couple weeks, I onboarded our first marketing ops manager at Cognition. Their name is Devin.
Here's how we engineered it, and why we're hiring marketers and GTM engineers to build what's next 👇 https://x.com/i/article/2108240207774392320
Marketing ops, in git
Over the past couple weeks, I onboarded our first marketing ops manager at Cognition. Their name is Devin.
Marketing ops runs on playbooks: load the event list, create the campaign, build the audience, manage the ads, pull the numbers. But every run has nuance that requires judgment calls to be made. The usual first move is to hire someone to own all of it. We wanted to see how far we could get by engineering it first, building every workflow in code so Devin can run and debug it.
So we built every workflow in code, where Devin can run and debug it.
What we built
I built the system with Devin, and we call it Marketing Workbench. Each marketing job has a skill: a plain-English procedure covering when to use it, what to confirm first, where a human signs off and what to do when something breaks.
The skill is only the instructions. The work runs through tested code that keeps Devin on rails. The code checks field names, record matches and payloads before anything is sent, so Devin can't invent a field, guess at a record or write somewhere it shouldn't.
Devin is connected to the 9 systems we use: Salesforce, HubSpot, Customer.io, Meta Ads, LinkedIn Ads, Primer, Metabase, Clay and Slack. Each marketer connects with their own login, so Devin only sees what that person is allowed to see.
Anyone on the team can ask Devin in Slack, in plain English
What it looks like day to day
"Stage the Q4 LinkedIn campaign from this brief."
LinkedIn Ads doesn't have an MCP, so we built a wrapped API for Devin to work in safely. It validates the plan offline, stages every campaign and creative as DRAFT, and reads each one back. Going live takes a second, separate approval. Every change is tied to a receipt the wrapped API wrote itself, and it can't touch anything it didn't create.
"Pull up the pending nominations for the US Open so I can review them."
Devin pulls the queue with the context a marketer needs: each nominee's title, account, open pipeline, past event attendance, and who nominated them and why. The marketer replies with decisions in any shape, like "approve 1–6, reject 7." Devin requires a reason for every rejection, previews the exact batch, then records each decision in Salesforce with a full audit trail. The reviewer comes from the session's own Salesforce login, so nobody can approve as someone else.
"Find accounts that came to 3+ of our events this year but have no open opportunity. Build a Primer audience of their engineering leaders and tell me how big it is."
Devin scans campaign history and pipeline in Salesforce, turns the account list and the persona into Primer's filters, estimates the audience, checks the mix of titles and seniority, and cites the source behind every number.
Why it holds up
We run our marketing playbook like production code. Skills and the code behind them live in git. A change is a pull request, reviewed by GTM Systems code owners, with tests running in CI. When we merge to main, every marketer's Devin updates at once.
The steps that should never vary are written in code: parsing spreadsheets, validating changes, writing receipts. Devin handles the judgment calls: what this column means, which Salesforce contact this person is, whether this audience fits the brief.
People stay in the loop where it counts. Every change follows the same pattern:
1. Devin shows the exact change.
1. It waits for a specific confirmation phrase.
1. It makes the change.
1. It reads the result back from the source system.
1. It reports the outcome row by row.
Nothing goes live on the first yes. If a result is unclear, Devin flags it for a person instead of retrying. And when something breaks, Devin can debug it. The workflow is code with tests, so Devin reads the failure, finds the cause and ships the fix through the same reviewed PR flow.
We're hiring
We're building an insane marketing engine at Cognition, where every workflow is engineered and an idea can go from Slack message to live campaign in minutes.
If that sounds fun, come build it with me. If you're a marketer who wants to ship big campaigns without wrestling tools, or a GTM engineer who wants to build a stack from zero instead of inheriting someone else's mess, this is that job. My DMs are open!
