Most of my SEO work now runs through agents and APIs instead of exports and copy-paste. That's true in two places: at Bonsai Media Group, where I lead SEO, and on my own portfolio of sites.

This is the stack, organized by what each piece does. I've left prices out except where I've actually measured them, because a stack post full of guessed subscription prices isn't useful to anyone.

Agents

Kai (my personal agent, on OpenClaw)

Kai is the agent I talk to day to day, over Telegram. It runs a nightly memory consolidation so context carries from one day to the next instead of resetting every session. From February to June 2026 that nightly review also published a journal: 22 entries from its own logs, with client names redacted.

Codex and Claude Code

These do the heavy building and analysis. They're good at different things, so I route work between them on purpose instead of picking a favorite. I published that routing as an open-source skill, codex-claude-tandem. I also published reading-discipline, a skill that stops agents from judging a file by pattern-matching on it instead of actually reading it.

I design the workflows, direct the agents, and decide what goes out.

Data sources

Google Search Console API

Clicks, impressions and queries. This is the ground truth for organic performance and the first thing any report should be checked against.

DataForSEO

Keyword data, SERPs and trends. It's metered per call, which makes cost visible. Verification scans on my rank tracker cost $0.37 to $1.67 each. My personal content pipeline's only metered spend is DataForSEO, under $3 a month at full cadence.

Semrush

Competitor analysis and keyword gaps.

Rank tracker (built)

Combines Search Console, Semrush and DataForSEO, with cost caps. It runs on demand, not on a schedule, which matches how often the data actually changes a decision.

The AI engines themselves

For AI visibility work, the engines are the data source. A September 2026 pilot asked 60 buyer questions, 4 times each, across 6 AI engines: 1,440 answers for about $8 in API cost.

Stores

Plain files over SaaS databases

Agents work best on data they can read directly. At the agency, I migrated our Notion workspace (8,311 pages) to Obsidian, and verified all 66,010 table cells against the export. Plain Markdown files are something every agent can read and write without an integration.

SQLite

My personal content pipeline keeps its memory in a SQLite file: what's been researched, briefed, drafted, gated and published.

Publishing

Cloudflare Pages

Hosts my six Astro sites (aimarketingpicks, remoteworkpicks, soflotimes, anonark, quicksummit, blacktiewhiteglove). This site, mikekhaytman.com, is plain hand-written HTML on the same platform.

The content pipeline

Built in July 2026 and autonomous since: research, brief, draft, quality gate, publish, deploy. It uses codex exec as the LLM engine and DataForSEO for data, and has published about 70 articles across the six sites. Its pre-publish gate rejected all 68 articles in the old pre-written backlog for unsourced claims, derivative content and stale facts. That gate is the most valuable part of the system.

Tools I built

Claim ledger for content

Every factual claim in a draft is traced to a source before a human sees it. On one measured batch, first-pass accuracy was 97.78% (14 errors in 633 claims), reported as an upper bound. Review packets carry planted defects so a skimming reviewer gets caught.

FactLayer

An app where each factual claim carries its source one click away, checked by a 20-rule validator.

Reporting checks

Checks that run before a client deck goes out. One caught a bot-impression burst that would have shown an RV brand's +8.4% impressions as −15.1%, a 24-point error.

Gmail Mission Control

An in-house Gmail tool that replaced the agency's shared-inbox subscription. It went from idea to v0.8 in six days.

How I sort tools

Every tool is either: 1. Data source (pulls information in) 2. Store (holds information) 3. Agent (processes and acts on information) 4. Communication (tells humans what happened)

If a tool doesn't fit one of those categories, I don't use it.

Anything an agent can't read or write, through an API or a plain file, is a dead end for automation. That one test rules out a lot of software.

Tools that try to be everything (store plus communication plus some analysis) are hard to automate around. Pieces that each do one thing well are easier to wire together and easier to replace.

What breaks first

Usually not the tools. These run out first:

What you actually need

Serious SEO work doesn't need an expensive stack. It needs:

Most stack posts leave out that last one, and it matters most.