Cody Schneider is annoyingly good at compressing an entire marketing playbook into one post.
I mean that as a compliment. Some people write threads that feel useful until you try to do anything with them. Cody does the opposite. He will casually drop the kind of idea that makes you stop, open a notebook, and rethink the way you are operating.
One of those ideas hit me this week:
use Keywords Everywhere API or DataForSEO API to find bottom-of-funnel generic keywords related to your brand
That came from this Cody Schneider post on X. He was talking about Google Search Ads, but the underlying move is bigger than ads.
He followed it with another post about an agent using the Ahrefs API to research bottom-of-funnel keywords and generate leads on day one: x.com/codyschneider/status/2058911033004032235.
And then there is the real nerd snipe: his post about giving Claude Code access to SEO data and CMS context. Keywords Everywhere. DataForSEO. GA/GSC data. CMS access. That is the shape of a real marketing agent, not a prompt toy.
Cody is building Graphed with Max Chehab, and if you care about AI agents doing actual marketing work, he is one of the people worth watching. He is a genius at seeing the boring workflow hiding inside the flashy AI demo.
This post is our attempt to turn that spark into something we can actually run for local business clients.
Build an agent that keeps working after you close your laptop.
Start with the free setup checklist. It helps you avoid the usual traps: no place for state, secrets mixed with prompts, automations that send before you approve them, and logs you cannot debug later.
- VPS, Codex, Hermes, and Discord setup steps
- Approval gates before email, tickets, or posts change
- Reusable skills, scripts, and operating checklists
- A preorder path if you want the full walkthrough

The problem with most local SEO work
We work with local businesses that already have websites. Often they are WordPress sites. They have service pages, a Google Business Profile, a few blog posts, some plugin settings, and a lot of good intentions.
Then the owner asks a fair question:
"Why is Google not showing us?"
The default agency answer is usually some blend of:
- publish more blog posts;
- build more location pages;
- add more keywords;
- get more backlinks;
- fix technical SEO;
- post on GBP;
- wait.
Some of that may be true. But it is too vague to operate.
For a local service business, we need a better first move. Not "write content." Not "do SEO." Not "use AI."
We need to know:
- What money services does this business actually want?
- What city or service area matters?
- What does Google already associate with the site?
- Which existing pages are close to ranking or getting clicks?
- Which important pages are not indexed, canonicalized correctly, or internally linked?
- Which bottom-of-funnel queries have enough buyer intent to deserve work?
- What is the smallest page, indexing, or local-proof improvement we can ship and measure?
That is the workflow we are turning into a Hermes skill.
The BOFU SEO Sweep
We created a reusable internal skill called bofu-seo-sweep.
The command we want to be able to run is simple:
The skill does not start by writing pages.
It starts by checking reality.
That last line matters.
The point is not to generate 40 AI pages and hope Google sorts it out. The point is to pick one high-confidence move, ship it, verify it, and come back in 7, 14, and 28 days.
Why GSC comes before keyword tools
Cody's keyword API idea is powerful because it gives you a way to find commercial terms fast.
But for an existing local business website, Google Search Console is still the starting line.
If GSC shows a service page already getting impressions for "clinical massage richmond va" in position 11, that is different from finding a brand new keyword with 30 searches a month.
The first one has proof. Google is already testing the site for that intent.
That kind of query can become a practical action:
The keyword API still matters. It tells us whether the query has search demand, CPC, and commercial weight. But GSC tells us whether the site already has a foothold.
For client work, that difference is everything.
The PCBRVA pilot
We are using pcbrva.com as the first teaching case.
PCBRVA is a good test because it is exactly the kind of local WordPress site where "just make more content" is the wrong first answer. The business needs massage and bodywork pages that Google can crawl, understand, and match to Richmond and Mechanicsville buyer intent.
The public smoke check already tells us a few useful things:
- the site is WordPress;
- the sitemap is live at
https://pcbrva.com/sitemap.xml; - the homepage canonical points to
https://pcbrva.com/; - robots.txt is not obviously blocking important pages;
- the homepage title targets massage in Mechanicsville and clinical bodywork near Richmond.
So the obvious public problems are not obvious enough.
That means the next step is GSC.
We want to know which pages Google has seen, which pages it is ignoring, which queries already have impressions, and which service terms are close enough to be worth improving.
For PCBRVA, the June operating plan is simple: run the read-only sweep, classify the current page/indexing backlog, then ship one focused SEO slice at a time. The first practical candidates are the prenatal, lymphatic drainage, Mechanicsville massage, clinical bodywork, Reiki, and crawl-hygiene clusters. We will not bulk-publish. We will pick the page or blocker with the best evidence and verify the live result.
The keyword matrix
For PCBRVA, the first keyword seed list probably looks something like this:
That is only the seed list. The sweep expands it with modifiers:
Then we join the keyword data back to the site data.
The output should not be a giant keyword dump. It should be an execution table:
Those numbers are examples, not claims. The point is the shape of the decision.
A useful SEO workflow should make the next action obvious.
What we will ship first
After the sweep, the first implementation slice will be one of four things:
- Fix an indexing or sitemap issue.
- Refresh one existing service page that already has impressions.
- Create one missing service/location page backed by keyword data.
- Add internal links, proof, FAQs, or local trust signals to support a near-win page.
That is it.
One slice. One page or one blocker. One measurement window.
This is the part I think a lot of AI SEO workflows miss. The model can generate endless options. That does not mean the business should execute endless options.
The value of the agent is not that it writes faster. The value is that it can hold GSC, WordPress, sitemap, keyword API, and client context in one place long enough to make a cleaner decision.
The blog post is also part of the system
We are not just doing this privately and calling it consulting.
The workflow itself becomes content.
That is why this post exists. We want to show the operating model in public:
- we found a sharp idea from Cody Schneider;
- we credited the source;
- we turned it into a Hermes skill;
- we selected a real client site;
- we defined the data we need;
- we limited the first execution to one measurable slice;
- we will come back with the results.
That is more useful than pretending we already know the outcome.
The first post is the plan. The next post should be the audit. After that, the validation follow-up.
What the deliverables look like
For the PCBRVA run, the sweep should produce these files:
The client-safe summary should be plain English:
Again, that example depends on the actual data. We do not want to fake certainty before the sweep runs.
Why this is better than "AI blog posts"
A local business does not need 30 generic posts about "the benefits of massage" or "how to choose a painter."
It needs the right pages to be crawlable, indexed, locally relevant, and matched to buyer intent.
For a massage practice, that might mean a clinical massage page with better local proof.
For a painting company, it might mean a commercial painting page, a cabinet painting page, or a service-area page that actually deserves to rank.
How we will use this for PCBRVA and Widespread Solutions
This is not just a theory post. We are applying the same skill to two real June client plans.
PCBRVA
PCBRVA is the massage and bodywork case. The sweep should help us decide which wellness/service page deserves the first refresh or indexing fix.
The likely sequence:
- Confirm the right GSC property and pull page/query data.
- Compare discovered-but-not-indexed pages against real service value.
- Validate terms like prenatal massage, lymphatic drainage, clinical massage, Reiki, and massage in Mechanicsville/Richmond.
- Refresh or repair one page first.
- Verify title, H1, canonical, sitemap inclusion, internal links, and rendered content.
- Monitor the page over 7, 14, and 28 days.
Widespread Solutions
Widespread is the residential and commercial painting case. The sweep gives us a way to stop guessing which service page matters most.
The likely sequence:
- Confirm GSC property, sitemap host, and crawl/indexing status.
- Validate Richmond-area service demand for interior painting, exterior painting, house painting, commercial painting, cabinet painting, deck staining, and pressure washing.
- Join keyword demand to existing page fit.
- Start with the homepage and quote path, then move through the highest-intent painting service pages.
- Decide whether historic restoration or new-construction content deserves a page only after the data supports it.
- Verify every shipped slice live before calling it done.
For both clients, it starts with the same discipline:
That is the whole spirit of the BOFU SEO Sweep.
Credit where it is due
Cody Schneider deserves real credit for the spark here.
The specific posts that pushed this workflow forward:
- BOFU keyword research with Keywords Everywhere or DataForSEO
- AI agent researching BOFU keywords and generating leads
- Claude Code as an SEO operator with keyword, analytics, and CMS context
And his company:
The reason I like Cody's work is that he does not treat AI marketing like a magic trick. The good ideas are usually practical: connect the data, find commercial intent, execute faster, measure the result.
That is the version of AI marketing I want to build around.
Next step
Next we run the actual BOFU SEO Sweep against the two June client plans:
- PCBRVA first, because the massage/bodywork backlog already has clear service clusters and GSC/indexing questions.
- Widespread Solutions second, using the same read-only sweep and one-slice execution rule for painting, cabinets, pressure washing, and quote-path improvements.
The question is not "can AI write a local SEO article?"
Of course it can.
The better question is whether an agent can help us choose the right page, based on GSC, keyword data, and WordPress reality, then make one measurable improvement for a real local client.
That is what we are testing.