ninja nerdingCody Schneider's marketing engineering crash course
Cody Schneider's marketing engineering crash course
Cody Schneider has done digital marketing for 15 years and co-founded Graphed. In 29 minutes he sets up Claude Code and runs a real marketing account from one chat: ads, keywords, leads, a blog post and a dashboard. The short of it: get your numbers into one place the agent can read, let it write back to the platforms, and read everything it tells you.
Jump to the loop, the eleven jobs and their prompts, or try it yourself.
The video
29 minutes, posted Oct 14, 2026, recorded the evening before. The chapters are his. Every timestamp on this page opens the video at that moment. From his YouTube channel, which puts out one marketing engineering video a week.
- 0:00 Intro
- 1:36 Why marketing engineering is exploding
- 2:39 What your coding agent needs: data pipeline + warehouse
- 7:35 Cloud server, storage, databases, cron jobs
- 10:26 The full marketing engineering stack
- 11:47 Install the Graphed CLI
- 12:37 Make a static ad with AI
- 13:47 Get a Facebook Ads API token
- 16:08 Graphed tools: the unified API
- 17:18 Upload the ad to Facebook Ads
- 19:14 Turn ads off from Claude Code
- 19:47 Ask questions across Facebook, GA4, Search Console
- 20:52 LinkedIn post engagers to emails
- 21:33 Keyword research for versus content
- 22:58 Find page-two keywords
- 24:08 Write and publish a blog post with the SEO plugin
- 25:03 Waterfall email enrichment
- 25:57 UGC ad scripts from Reddit pain points
- 26:32 Edit the dashboard
- 28:06 Wrap-up
Eight signals
The whole video in eight boxes. Each links to the part of this page that explains it.
- 010:15
The agent does the middle work
Copy, ad images, uploads, keyword research, lead lists, blog posts, dashboards. The work between the idea and the result moves to a coding agent. You still pick the idea and judge the result.
How - 022:59
Data first, then tools
Before the agent can market, it needs your numbers in one place: a pipeline that copies them in, and a warehouse that holds them. Everything else in the video sits on that.
How - 035:30
Read from one place, write to many
The agent reads from the warehouse. It only calls Facebook or Google directly to change something: upload an ad, pause one, move one. Results flow back into the warehouse. That's the loop.
How - 044:29
One source can lie
Ad platforms report their own wins. Follow the trail to signups and revenue in your own data before you trust a channel. On screen, his warehouse shows months of ad spend with zero signups.
How - 057:35
Eleven pieces of plumbing
Pipeline, warehouse, a server that's always on, file storage, databases, timers, a place to host pages, logins, share links, git, and access to many APIs. You can build it from open parts or buy it bundled.
How - 0614:53
Keys live in a vault
Give the agent a long-lasting ad token, but keep it in a secrets manager, not a file on your laptop. The agent uses it by name and never prints the value.
How - 0718:35
Several jobs at once
He starts a job, and while it runs he starts the next one in another chat. Once a job works, he moves it to the cloud on a timer so it runs without him.
How - 0816:15
Read what comes back
The agent swapped the image model, wrote ad copy he didn't ask for, flagged claims in its own ad scripts, and talked him out of 191 thin pages. All of it is in the replies.
How
Words on this page
29 terms, in plain words. Skip this if you already run ads and use a coding agent.
- Marketing engineering
- Marketing work done by telling a coding agent what you want, instead of clicking through each tool yourself.
- GTM engineering
- Go-to-market engineering. The same idea for sales: building lead lists, enriching them and sending outreach with code and agents.
- Coding agent / harness
- An AI that can run commands and edit files on a computer: Claude Code, Codex, Cursor, Hermes, a Grok bot. The harness is the app that runs it.
- API
- The door a service leaves open for programs. Facebook Ads, Google Ads and Search Console all have one.
- Rate limit
- The most calls an API will take in a given time. Go over it and you get blocked for a while, or worse.
- Data pipeline
- A tool that copies data from all your accounts (ads, analytics, CRM, payments) into one place, on a schedule.
- Data warehouse
- A database built to hold a lot of data and answer questions about it fast. The pipeline fills it; the agent asks it questions.
- SQL
- The language for asking a database questions. Coding agents write it well, so you don't have to.
- Join
- Lining up two tables by something they share, like a date or a campaign, so you can compare them.
- Read vs write
- Reading looks at data. Writing changes something: uploads an ad, pauses it, publishes a post.
- Context window
- How much text an AI can hold in mind at once. Millions of raw ad rows won't fit; a SQL answer will.
- S3 bucket
- Cheap online storage for files like images and videos. S3 is Amazon's; many others copy its format.
- Postgres
- A popular free database. Agents use small ones as notebooks: which ad used which prompt, which leads they found.
- Cron job
- A task that runs on a timer: every hour, every morning, every Monday.
- Artifact
- A page the agent builds for you, like a dashboard or a review board of ads, that lives at a link.
- CLI
- Command-line tool. A program you or your agent run by typing a command. Graphed's is installed with npm, the JavaScript package manager.
- Secrets manager
- A locked store for passwords and API keys. Programs fetch keys by name, so the key itself never sits in a file or a chat.
- System user token
- A Meta key that belongs to your business instead of a person. It can be set to never expire.
- Ad set
- A group of ads in Meta that share a budget, audience and schedule.
- Pixel
- A snippet on your site that tells Meta when someone who saw an ad signs up or buys.
- GA4 / Search Console
- Google Analytics 4 counts visits to your site. Search Console shows what people searched on Google before they found you.
- Branded search
- Someone searching your company's name. More of them usually means more people have heard of you.
- Versus keywords
- Searches like 'ClickHouse vs Postgres'. People typing these are choosing, which makes them good readers to reach.
- Page-two keywords
- Searches where you rank 11th to 20th on Google. Close to page one, so a little work can move them up.
- Enrichment / waterfall
- Enrichment fills in missing details like an email. A waterfall tries the cheapest provider first and only pays the next one for people still missing.
- Email verifier
- A service that checks an address will accept mail without sending one. Results: ok, catch-all (can't tell), or invalid.
- UGC ad
- User-generated-content style: a person talking to a phone camera about a product. Can be a real creator or an AI avatar.
- Hook
- The first line of an ad, meant to stop the scroll.
- CMS
- Content management system, where your blog posts live. His is Strapi.
Your coding agent does the middle work
Marketing engineering, in his words, is having your coding agent do the middle work you used to do by hand as a marketer. The idea and the judgment stay with you. The clicking, copying and uploading go to the agent. 0:15
Jobs anyone can hand over · three basic
His · shown in the video
Ten versions of one ad
Give it one headline, your brand colors and the words you can't use. It makes ten 1080×1080 images and saves them in a folder.
His · shown in the video
Pause an ad by name
Say which ad in which ad set. It finds it, pauses it, and tells you nothing else changed.
His · shown in the video
One question, three sources
How many signups came from Facebook this month, what did GA4 see from Facebook, and are people searching our name more?
Jobs once the data is wired · three advanced
FakeNerd example
Spend with no signups
An hourly job that checks every ad's spend against signups in the warehouse and messages you about any ad over a set amount with none. You decide what to pause.
FakeNerd example
Monday SEO list
Each week: page-two keywords from Search Console, bot traffic removed, top ten ranked, a draft post for the best one waiting in the CMS.
His · shown in the video
Complaint to ad
Pull what buyers complain about on Reddit, cluster it, write ten UGC scripts that each answer one complaint, then send them to an AI avatar.
Two ways to wire it · why he puts a warehouse in the middle 3:25
Before · the agent calls every API
Fast to try, breaks at scale
- The agent calls Facebook, Google and GA4 directly every time it has a question.
- Heavy reading hits rate limits. On Facebook Ads, he says, it can break the terms and get the ad account banned.
- Matching data across sources happens inside the agent's head, and it makes things up.
- Millions of rows don't fit in the context window.
- Fine for one small account on one channel. Breaks once there's real volume.
After · read the warehouse, write to the APIs
His way
- A pipeline copies every source into the warehouse on a timer. His syncs hourly.
- The agent writes SQL against the warehouse. Joins happen in the database, not in the chat.
- The answer that comes back is a few rows, not millions.
- The agent only calls a platform's API to change something there.
- The change shows up in the next sync, so the agent sees what its own change did.
His firm has done this for two years, he says, and companies keep arriving after trying the first way on a laptop and hitting these walls. Everything in marketing is now code, in his view, so the job is giving the agent what it needs to do marketing with code. 6:35
Is it a real job? 1:36
What he says
- Searches for "marketing engineering" took off from 2024. The chart on screen shows about 2,400 a month, up 232% on the year.
- Job listings are "skyrocketing".
- "You can easily make $150,000 plus a year."
- It's on the same path as GTM engineering, the sales version.
What we found
- The same chart shows searches down 53% on the quarter. It comes from a browser add-on on top of Google Trends.
- The Wall Street Journal (Sept 30, 2026): "marketing engineer" listings up 29% on LinkedIn, but only 173 people started such a job in the year to August.
- Posted US salaries we found run about $127k to $296k, at funded tech companies. Fair for that slice, not for marketing jobs in general.
- Growing fast from a small base. A skill to add, not yet a job title most companies hire for.
Eleven pieces, and everything he names
His list of what an agent needs before it can do marketing work. He names a do-it-yourself option for each, then uses Graphed, his own company, which bundles all eleven. 10:26
Where he types · any coding agent works
Where the data comes from
Ads · read and write
Meta Ads (Facebook)
Read through the warehouse. Written to through the Marketing API with a system user token: upload, pause, move ads.
Site visits · read
Google Analytics 4
Traffic by source. He asks how many visits came with Facebook as the referrer.
Search · read
Google Search Console
What people searched before they found you, and where you rank. Used for branded searches and page-two keywords.
Also piped in
Google Ads, CRM, Stripe
He names Google Ads, a CRM like Attio or HubSpot, and Stripe payments as sources, so ads can be traced to revenue.
What the agent called, by job
Static ads
GPT Image 2
He asked for GPT Image 2.5, OpenAI's newest (Sept 2026). The reseller didn't support it yet, so the agent used GPT Image 2 and said so. Nano Banana is also on the list.
Model reseller
Kie
One credit-based API for many image and video models: GPT Image, Nano Banana, Seedance. The captions call it "Kai AI".
Video and AI avatars
Seedance, HeyGen
Seedance makes video clips. HeyGen makes a talking avatar read a script. For UGC-style ads.
Reddit research
xAI API
He says he runs the Reddit pain-point search through xAI's API (Grok). xAI's own tools are web search and X search; there's no Reddit-only one.
Keyword data
DataForSEO
Search volume, difficulty and cost per click. The versus-keyword run cost $2.57.
Find emails
Apollo, LeadMagic
People and company lookups. The waterfall tries the cheapest first.
Check emails
MillionVerifier
Checks a guessed or found address before you send to it.
Scraping and search
Apify, ScrapeCreators, Serper
Ad libraries, LinkedIn engagers, social profiles, Google results. The cheapest option per job is picked for you.
Blog (CMS)
Strapi
Where his blog posts are published. The SEO plugin uploads to it.
His product · one option, last
Also named, not part of the setup
- tldraw The whiteboard he draws the stack on.5:30
- Looker Studio, Power BIDashboard tools he says a warehouse plus an agent can replace. Google renamed Looker Studio back to Data Studio in April 2026.18:15
- Instantly Cold email tool. Its key sits in his secrets list; not used in the demo.15:34
- HighLevel, Twilio, PostHogNamed as more data sources you can connect.12:15
The loop
Seven steps in a circle, plus five things the circle runs on. Darker boxes are the two steps that need you. Click any box to read it, or press Start and follow the ad he makes in the video.
The loop · read from one place, write to many · darker boxes need you
Beside the loop · what the loop runs on
Follow one ad through the loop
Nine beats, using the ad he makes in the video: from a prompt to an image, into an ad set, through the warehouse and back. Watch which boxes light up, and the one beat the video skips.
The loop · step 3 of 7 · Warehouse
Watch at 5:00Warehouse holds the truth
- ClickHouse
- SQL
Everything sits in one database built for big tables and fast questions. It's the source of truth the agent makes decisions on.
Why: Joins happen here, not in the agent's head. The agent gets back a small answer instead of millions of rows.
What you see
Tables named after each source: ad spend by day, sessions by referrer, search queries by week.
Watch out
Different sources name the same thing differently (campaign IDs, dates, time zones). Ask the agent to show the join it used.
He draws the first half of this on a whiteboard: sources into a warehouse, the warehouse into Claude Code, an arrow marked reading and one marked writing back to Facebook ads. The seven steps and their order are ours. 5:30
Eleven jobs, each with his prompt
Everything he runs in the video, grouped by area. Each has his prompt, as typed on screen or as said aloud (his are dictated, so they ramble), and a FakeNerd fill-in version that works with any tools. Then what came back, and what to watch.
Ads
Make a static ad
12:49His · said aloud, from captions
Use the Graphed CLI. I want to make a static ad that's a 1080x1080 pixel ratio using the ChatGPT Image 2.5 API endpoint. And that ad, I want it to say something like "marketing engineering crash course". And go to graphed.com to see what the design style needs to be for this ad.
Fill-in version
Make a 1080x1080 static ad with [image model]. Headline: "[headline]". Take the style (colors, fonts, tone) from [your website URL]. Rules: use only [brand colors]; never say [words you can't use]. Save it as a file and show it to me. Then make [3] more that change only the headline. If you can't use the model I named, stop and tell me which one you'd use instead.
His
Use the Graphed CLI. I want to make a static ad that's a 1080x1080 pixel ratio using the ChatGPT Image 2.5 API endpoint. And that ad, I want it to say something like "marketing engineering crash course". And go to graphed.com to see what the design style needs to be for this ad.
Fill-in version
Make a 1080x1080 static ad with [image model]. Headline: "[headline]". Take the style (colors, fonts, tone) from [your website URL]. Rules: use only [brand colors]; never say [words you can't use]. Save it as a file and show it to me. Then make [3] more that change only the headline. If you can't use the model I named, stop and tell me which one you'd use instead.
What came back
One finished ad in his brand style, generated at 2048×2048 and scaled down. Made with GPT Image 2, because 2.5 wasn't available.
Watch out
Read the reply for swaps. The agent changed the model and said so; you only know if you read it.
Upload it to an ad set
17:18His · typed, read off the screen
use graphed cli And I'm going to say upload the marketing engineering crash course ad to this ad set https://adsmanager.facebook.com/adsmanager/manage/ads?act=…&selected_adset_ids=…
Fill-in version
Upload [file name] as a new ad in this ad set: [Ads Manager link]. Use the token stored as [secret name]. First, look at the ad set without changing anything and tell me what's in it. Create the ad paused. Headline: [headline]. Body: [body]. Button: [Learn More] to [link] with [UTM tags]. Don't change any other ad.
His
use graphed cli And I'm going to say upload the marketing engineering crash course ad to this ad set https://adsmanager.facebook.com/adsmanager/manage/ads?act=…&selected_adset_ids=…
Fill-in version
Upload [file name] as a new ad in this ad set: [Ads Manager link]. Use the token stored as [secret name]. First, look at the ad set without changing anything and tell me what's in it. Create the ad paused. Headline: [headline]. Body: [body]. Button: [Learn More] to [link] with [UTM tags]. Don't change any other ad.
What came back
The ad, uploaded paused, with a headline, body and tracking link. The agent wrote the body copy itself because he only gave the image text. Its script skips the ad if run twice.
Watch out
Give it the copy, or read what it wrote before you turn the ad on.
Turn an ad off
19:14His · typed, read off the screen
In that ad set, turn the ad off that has this title gads_questions
Fill-in version
In ad set [name or link], pause the ad called [ad name]. Don't touch any other ad. Tell me its status afterwards.
His
In that ad set, turn the ad off that has this title gads_questions
Fill-in version
In ad set [name or link], pause the ad called [ad name]. Don't touch any other ad. Tell me its status afterwards.
What came back
"I turned off gads_questions. Its status is now PAUSED." Meta showed it as in process for a few minutes.
Watch out
Say pause, not delete. A paused ad keeps its history and can come back.
Reddit complaints to UGC scripts
17:53His · typed, read off the screen
Write some scripts for UGC, have the hooks be something like, okay, this is kind of crazy, or I wish I found this sooner, basically something like that. And then talk to one of the pain points in the outcomes. And again, this is an ad script that a UGC creator is going to read, write ten of these for me based off of the most impactful ideas.
Fill-in version
Step 1. Search Reddit for people who would buy [your kind of product]. Pull out their pain points, the outcomes they want, and their objections. Group them and count how often each comes up. Quote real posts. Step 2. Write [10] UGC ad scripts, 30 to 40 seconds each. Hooks like "[hook 1]" or "[hook 2]". Each script takes one pain point and one outcome. Put B-roll and on-screen text in [brackets]. List every claim a script makes about the product, so I can check it.
His
Write some scripts for UGC, have the hooks be something like, okay, this is kind of crazy, or I wish I found this sooner, basically something like that. And then talk to one of the pain points in the outcomes. And again, this is an ad script that a UGC creator is going to read, write ten of these for me based off of the most impactful ideas.
Fill-in version
Step 1. Search Reddit for people who would buy [your kind of product]. Pull out their pain points, the outcomes they want, and their objections. Group them and count how often each comes up. Quote real posts. Step 2. Write [10] UGC ad scripts, 30 to 40 seconds each. Hooks like "[hook 1]" or "[hook 2]". Each script takes one pain point and one outcome. Put B-roll and on-screen text in [brackets]. List every claim a script makes about the product, so I can check it.
What came back
Ten scripts, 30 to 40 seconds each, one pain point and outcome per script, stage notes in brackets. Before that, a Reddit report with clusters of pains, outcomes and objections.
Watch out
The agent warned that its counts were estimates and that some hooks made product claims to confirm before the ads go live.
Data
One question across three sources
19:47His · typed, read off the screen
Look at my Facebook ads data, how many signups have happened from Facebook ads, what Facebook ads pixel is recording, also tell me how many signups are also tell me how much traffic is coming from Google Analytics 4 with referral as Facebook and tell me how many branded searches are happening. Like, are we seeing an increase in branded searches? Use the data source Google search console for this.
Fill-in version
From the warehouse, answer three things: 1. Signups from [ad platform] by month, and what its pixel recorded. 2. Traffic in [GA4] with [source] as the referrer, by month. 3. Are branded searches ([brand name] and its misspellings) going up in Search Console? Show me the query behind each number. Mark any month that's only partly over. Flag anything that looks wrong.
His
Look at my Facebook ads data, how many signups have happened from Facebook ads, what Facebook ads pixel is recording, also tell me how many signups are also tell me how much traffic is coming from Google Analytics 4 with referral as Facebook and tell me how many branded searches are happening. Like, are we seeing an increase in branded searches? Use the data source Google search console for this.
Fill-in version
From the warehouse, answer three things: 1. Signups from [ad platform] by month, and what its pixel recorded. 2. Traffic in [GA4] with [source] as the referrer, by month. 3. Are branded searches ([brand name] and its misspellings) going up in Search Console? Show me the query behind each number. Mark any month that's only partly over. Flag anything that looks wrong.
What came back
A table of signups and spend by month. From April to August, no signups on almost $3k of Facebook spend.
Watch out
Ask what happened in the odd months. Broken tracking and a dead campaign look the same in this table.
Turn it into a dashboard
22:23His · said aloud, from captions
Build a dashboard for me, an artifact that has all this data that we just pulled using the Graphed CLI. Change the spend by month to a line chart instead of a bar chart. Add a date range picker to the dashboard.
Fill-in version
Make a dashboard from the numbers we just pulled. It should query the data live, not copy today's numbers in. Make it private: only [your team] can open it. Add a date range picker. Open it in a browser and check it shows the right numbers before you send me the link.
His
Build a dashboard for me, an artifact that has all this data that we just pulled using the Graphed CLI. Change the spend by month to a line chart instead of a bar chart. Add a date range picker to the dashboard.
Fill-in version
Make a dashboard from the numbers we just pulled. It should query the data live, not copy today's numbers in. Make it private: only [your team] can open it. Add a date range picker. Open it in a browser and check it shows the right numbers before you send me the link.
What came back
A private page on Graphed Cloud that queries the warehouse live, caches for 10 minutes and has a refresh button. The agent said it hadn't opened the page to check it.
Watch out
Open it yourself before you share it, and check who can see it.
Leads
LinkedIn post engagers to emails
20:52His · said aloud, from captions
[LinkedIn post URL] Use the Graphed CLI, extract all of the engagers from this post and then use the get leads endpoint to find their emails.
Fill-in version
Get everyone who reacted to or commented on this post: [post URL]. Remove duplicates. Find a work email for each with [enrichment tool]. Save a CSV: name, title, company, LinkedIn URL, email, where the email came from. Tell me how many you found and what it cost.
His
[LinkedIn post URL] Use the Graphed CLI, extract all of the engagers from this post and then use the get leads endpoint to find their emails.
Fill-in version
Get everyone who reacted to or commented on this post: [post URL]. Remove duplicates. Find a work email for each with [enrichment tool]. Save a CSV: name, title, company, LinkedIn URL, email, where the email came from. Tell me how many you found and what it cost.
What came back
A deduped list with emails where found and a verifier result for each. He says this one was poor; they usually find about half.
Watch out
Scraping LinkedIn is against its terms, and cold email has rules (CAN-SPAM in the US, GDPR in the EU). That's a FakeNerd note, not his.
Fill the gaps: waterfall, then guess
25:03His · typed, read off the screen
44 people were not found Hey, those 44. Let's do a waterfall email enrichment now with whatever the cheapest provider is work down that for these other 44 And then also let's just guess the emails of the other 89 and use mill and verifier to see if they're actually real
Fill-in version
For the [N] people with no email: try [provider 1] first, then [provider 2], cheapest first, and stop at the first hit. For anyone still missing, try the common formats (first@, first.last@, flast@ and so on) at their company domain and check each with [email verifier]. Keep only addresses that come back "ok". Tell me the cost before you run it.
His
44 people were not found Hey, those 44. Let's do a waterfall email enrichment now with whatever the cheapest provider is work down that for these other 44 And then also let's just guess the emails of the other 89 and use mill and verifier to see if they're actually real
Fill-in version
For the [N] people with no email: try [provider 1] first, then [provider 2], cheapest first, and stop at the first hit. For anyone still missing, try the common formats (first@, first.last@, flast@ and so on) at their company domain and check each with [email verifier]. Keep only addresses that come back "ok". Tell me the cost before you run it.
What came back
Before he asked, the agent offered to run LeadMagic on the people with no email, for about $4.60 for 133 people.
Watch out
"Catch-all" means the server accepts everything, so the address may still bounce. Treat it as unknown.
SEO
Find versus keywords
21:33His · typed, read off the screen
use the graphed CLI for this Use the data for SEO API. I want you to find all of the versus content for customer data platforms. I'm thinking like, "high touch vs x, click house vs x." Anything that would be in this stack, we're going to write some blog posts about this, but just find me all those keywords
Fill-in version
Use [keyword data tool]. Find every "[X] vs [Y]" search where both sides are tools in [your category], like [tool A] vs [tool B]. Merge "A vs B" with "B vs A". Give me US monthly volume, difficulty and cost per click. Save a CSV and tell me what the calls cost.
His
use the graphed CLI for this Use the data for SEO API. I want you to find all of the versus content for customer data platforms. I'm thinking like, "high touch vs x, click house vs x." Anything that would be in this stack, we're going to write some blog posts about this, but just find me all those keywords
Fill-in version
Use [keyword data tool]. Find every "[X] vs [Y]" search where both sides are tools in [your category], like [tool A] vs [tool B]. Merge "A vs B" with "B vs A". Give me US monthly volume, difficulty and cost per click. Save a CSV and tell me what the calls cost.
What came back
765 X-vs-Y pairs from 2,599 variants, both sides real tools, A-vs-B merged. The keyword calls cost $2.57.
Watch out
Say which country. Volumes on screen were US only.
Find page-two keywords
22:58His · said aloud, from captions
Find all the keywords that we're ranking for organically on page two of the search results for Google. Use the Google Search Console data source and the Graphed CLI data warehouse to source this data and this information for us. I'm basically looking for high impact keywords, keywords that we could potentially rank for really easily if we just write some content or designate some content to it.
Fill-in version
From Search Console, list the queries where our average position is 11 to 20 and we had [100]+ impressions in the last 90 days. Group them by the page that ranks. Flag anything that looks like bots: lots of impressions, no clicks. Rank the top 10 to work on, and say why for each.
His
Find all the keywords that we're ranking for organically on page two of the search results for Google. Use the Google Search Console data source and the Graphed CLI data warehouse to source this data and this information for us. I'm basically looking for high impact keywords, keywords that we could potentially rank for really easily if we just write some content or designate some content to it.
Fill-in version
From Search Console, list the queries where our average position is 11 to 20 and we had [100]+ impressions in the last 90 days. Group them by the page that ranks. Flag anything that looks like bots: lots of impressions, no clicks. Rank the top 10 to work on, and say why for each.
What came back
398 keywords on page two. The agent set aside one group with 8,300 impressions and zero clicks as automated queries, not people.
Watch out
When he asked for one post per industry, the agent checked 191 industries and found almost no searches. It suggested one big page instead.
Write and publish a post
24:08His · typed, read off the screen
Use the graph CLI use the SEO plugin that we have installed and I want you to write a blog post and publish it to the graph blog for this target keyword: clickhouse vs postgres
Fill-in version
Write a blog post for the keyword "[keyword]". First read the top results on Google for it and tell me what they all cover and what they miss. Then write a better one in our voice; here's a post we like: [link]. Save it as a draft in [CMS] and send me the link. Don't publish.
His
Use the graph CLI use the SEO plugin that we have installed and I want you to write a blog post and publish it to the graph blog for this target keyword: clickhouse vs postgres
Fill-in version
Write a blog post for the keyword "[keyword]". First read the top results on Google for it and tell me what they all cover and what they miss. Then write a better one in our voice; here's a post we like: [link]. Save it as a draft in [CMS] and send me the link. Don't publish.
What came back
His SEO plugin reads page one of Google, writes the post with Claude Sonnet and uploads it to his CMS. By the end of the video it's published.
Watch out
He publishes straight away. Start with drafts until you trust the voice and the facts.
His one plugin · SEO 24:08
What it does, in order
- 1Reads what ranks on page one of Google for the keyword.
- 2Writes the post with Claude Sonnet.
- 3Uploads it to your blog (his runs on Strapi).
- 4Hands back the link.
To set it up he'd say “install the Graphed SEO plugin, help me set it up to my CMS”. You can change it however you want, he says. Later he calls it as a slash command, /seo-blog.
Watch out
- It publishes, not drafts, in his setup. Point it at drafts first.
- Page one tells you what to cover, not what's true. Check the facts in versus posts about other companies' products.
- The plugin's source isn't public that we found. The steps above are from what he says and what the agent printed.
The Facebook Ads token, step by step
The agent needs a key to make changes in your ad account. He uses a Meta system user token, which belongs to the business and doesn't expire. About 10 minutes, he says. 13:47
- 01he says
Make a developer app
In Meta Business Settings, add an app. Name it anything.
- 02he says
Pick the ad use cases
Create and manage ads with the Marketing API, and with Meta Ads Manager.
- 03he says
Connect your business
Link the app to your business portfolio, confirm, create. Add a privacy policy link. About 10 minutes, he says.
- 04he says
Add a system user
A user that belongs to the business, not to a person. This is what makes the token last.
- 05he says
Give it only what it needs
Assign the ad accounts (and pages) it may touch. Nothing else.
- 06his guide + Meta docs
Generate the token
His guide sets it to never expire, with every permission ticked. Meta allows that, but calls expiring tokens best practice. Tick only the ad permissions you need.
- 07he says
Put it in the vault
Store it in a secrets manager and tell the agent its name. He pastes it into Claude Code and asks it to add it to his secrets.
Where the key lives 14:53
You can keep the token in a file on your laptop, he says, but he wouldn't: it's a security hole. He puts it in a secrets manager. Asked to list his secrets, the agent printed names only, grouped by project, and no values.
FakeNerd note
A token that never expires, with every permission, is a key to your ad spend. Give it only the ad account and ad permissions it needs. Add it to the vault yourself rather than pasting it into a chat, where it stays in the log.
His full walkthrough, with screenshots: Create a Facebook Ads developer token. Meta's own pages: system users and generating their tokens.
Read the replies
The video moves fast and the narration skips most of what the agent says back. Read off the screen, these replies are the best lessons in it.
- 116:15
It swapped the image model, and said so
Asked for GPT Image 2.5. The provider said "model not supported" to every name it tried, so it used GPT Image 2 and explained why. The narration still says 2.5.
- 218:08
It looked before it touched
Before uploading, it said: "First I'll check the ad set without changing anything." It created the ad paused, and its script won't upload the same ad twice.
- 322:10
It found money with nothing to show
April to August: no Facebook signups on almost $3k of spend. It's in the answer, and the video moves on without a word.
- 426:30
It flagged its own ad claims
"The counts are estimates… Some hooks make claims about the product… Confirm the product really does each of these before the ads go live." It also fixed one: daily sync to hourly.
- 528:00
It talked him out of 191 pages
He wanted "Google Ads vs Facebook Ads for [industry]" posts. It checked 573 versions across 191 industries; six had any searches. It suggested one page for the main query instead.
- 626:50
It said what it hadn't checked
"I did not open the page in a browser, so I have not seen how it renders." Honest, and a reminder to look yourself.
FakeNerd starter · add to your agent's rules file
## Marketing changes - Before changing anything in an ad account, look first and tell me what's there. - Create new ads and posts paused or as drafts. I turn them on. - If you can't use the model or tool I named, stop and say what you'd use instead. - List every claim an ad makes about the product, so I can check it. - Before any paid run over [$5], tell me the cost and wait. - Say what you didn't check (for example, "I didn't open the page").
## Marketing changes - Before changing anything in an ad account, look first and tell me what's there. - Create new ads and posts paused or as drafts. I turn them on. - If you can't use the model or tool I named, stop and say what you'd use instead. - List every claim an ad makes about the product, so I can check it. - Before any paid run over [$5], tell me the cost and wait. - Say what you didn't check (for example, "I didn't open the page").
What it cost
Prices the agent showed on screen. Graphed sells credits; its tools page puts one credit at 1¢, which matches the agent's own quote. Dollar figures marked “≈” are our math.
Cheap per call, but an agent on a timer makes a lot of calls. The agent you use (Claude Code, Codex) is a separate bill. He says Graphed is free to start; Graphed's setup notes for agents say the CLI needs a paid plan. Check before you plan around it.
Try it, smallest version first
Seven steps, cheapest first. Steps 1 to 4 cost nothing beyond the agent you already pay for and change nothing in your accounts. Works in Claude Code, Codex, Cloudroom or bb.
- 01
Pick one question you answer by hand
The one you dread on Mondays. Did last week's ads make money? Which posts are close to page one? Write it down in one sentence.
- 02
Export the data yourself, once
Download CSVs from Search Console (Performance → Export), GA4 and your ad account. Put them in one folder. No pipeline yet.
Search Console export help - 03
Open an agent in that folder and ask
Claude Code, Codex, Cloudroom or bb. Paste the starter below. This is the read half of the loop, for free.
bb - 04
Make the folder a tiny warehouse
Ask the agent to load the CSVs into DuckDB, a free database that's one file on your laptop, and answer with SQL from now on. Same idea as his warehouse, smaller. This step is our suggestion, not his.
Load every CSV in this folder into a DuckDB file called marketing.duckdb, one table per file. From now on, answer my questions with SQL against it and show me the query.
DuckDB - 05
Add one write, and make it a pause
Make a Meta system user token for one ad account, put it in a secrets manager, and let the agent pause ads by name. Pausing can be undone, which makes it the safe first write.
The token, step by step - 06
Put the copying and the question on a timer
A pipeline (Airbyte is the open-source one he names) fills a warehouse every hour, and your question runs every morning on a schedule. Cloudroom and bb have scheduled automations; a cron job on a server works too.
Airbyte - 07
Or buy the whole stack
His Graphed CLI bundles all eleven pieces. He gives Claude Code the npm page and says "install this". He calls it free to start; Graphed's own setup notes for agents say the CLI needs a paid plan, so check first. The SEO plugin is one more command.
npm install -g @graphed-inc/cli graphed login graphed plugins add seo
@graphed-inc/cli on npm
FakeNerd starter · paste this for step 3
You're my marketing analyst. The CSV files in this folder are exports from: - [Search Console: queries and pages] - [GA4: sessions by source] - [ad platform: spend and results by ad, by day] Answer this: [your one question]. Rules: - Read the files; don't guess. Say which file and columns each number comes from. - Mark any period that's only partly in the data. - If the sources disagree, show both numbers and say which you'd trust and why. - Finish with the 3 changes you'd make, the one you'd do first, and what you'd need from me. - Don't contact any platform or change anything. Read only.
You're my marketing analyst. The CSV files in this folder are exports from: - [Search Console: queries and pages] - [GA4: sessions by source] - [ad platform: spend and results by ad, by day] Answer this: [your one question]. Rules: - Read the files; don't guess. Say which file and columns each number comes from. - Mark any period that's only partly in the data. - If the sources disagree, show both numbers and say which you'd trust and why. - Finish with the 3 changes you'd make, the one you'd do first, and what you'd need from me. - Don't contact any platform or change anything. Read only.
Next to the others
Other pages on this site that cover the same ground from a different side.
FakeNerd's take
The warehouse idea is the lesson
Read from one place, write to the platforms, let the results flow back. That holds whatever tools you buy, and it's the part most "Claude runs my ads" demos skip.
It's a product demo, and it says so
Cody runs Graphed and every job goes through its CLI. The demo is real and useful, but the eleven-piece list is also the sales pitch. Each piece has a free or open option; start with those until you know what you need.
The replies are the best part
The agent swapped models, flagged its own claims, found months of wasted spend and argued him out of 191 pages. Read every reply. That's where you're still the marketer.
Draft before you publish
Uploading ads paused is the right default. Publishing posts and emailing scraped lists without a look is not. Add a review step until it's earned your trust.
Attribution
- Cody Schneider, “Marketing Engineering Crash Course with Claude Code” (posted Oct 14, 2026). The idea, the eleven-piece stack, the jobs and his prompts are his, retold in our words. Prompts marked as typed are read off the screen; the rest are from the captions. Numbers in “what came back” are read off the screen.
- Disclosure: the video is sponsored by Graphed, and Cody co-founded Graphed (per his LinkedIn). He calls it the sponsor on camera but doesn't say it's his. Every job in the demo runs through Graphed. Claims about Graphed's features, prices and results are his and Graphed's; nobody has checked them. See graphed.com/platform.
- Where screen and captions disagree, the screen won: the ad was made with GPT Image 2, not 2.5; Graphed's page says 750+ data sources, not 800+; its tools page says 232 tools, not about 250.
- His Facebook token guide is Graphed's, summarized. Meta's token rules are from Meta's developer docs.
- The seven-step loop, the nine-beat walkthrough, every fill-in prompt and starter, the job-market check, the dollar math, the setup order and the takes are FakeNerd's. Not sponsored by anyone on this page.