JJCall
Blog
July 19, 2026Jakub Jamný

How I built an SEO agent that does most of a senior specialist’s job

A production AI agent with 42 tools that audits pages, tracks rankings and ships fixes as GitHub pull requests on a daily, weekly and monthly cron. What it does, how it’s built, and the three things it taught me.

Most SEO work is not creative. It is the same checks, run over and over. Is every title unique. Does each page have one clean heading structure. Is the schema still valid. Did a deploy quietly break the sitemap. Which keywords slipped this week, and why. A good specialist does all of this well, but it is repetitive, and repetitive work is exactly what an autonomous system should own.

So instead of hiring that work out, I built an agent to do it. Not a chatbot that answers SEO questions, but a system that runs on a schedule, inspects a real site, decides what to fix, and opens the fix as a pull request. It covers roughly ninety percent of what I used to do by hand, it runs for about twenty-eight dollars a month, and the code is open source on GitHub. The full breakdown lives on the agent’s page.

What the agent actually does

It has 42 tools it can call, grouped by the job in front of it. On a single run it can:

  • Pull the real numbers. Query Google Search Console for keywords, impressions and coverage, and inspect individual URLs for their indexing status.
  • Run a full technical audit. Meta tags, heading structure, schema, Core Web Vitals, security headers, hreflang and sitemap validation, across the whole site in one pass.
  • Watch the competition and the trend. Track keyword rankings over time and compare against competitors, so a drop is noticed the week it happens, not the quarter it happens.
  • Fix things, safely. When it finds something worth changing, it writes the change and opens a GitHub pull request, so a human still approves before anything lands.

When it needs attention it posts to Discord. It runs daily, weekly and monthly on cron, and each cadence does a different depth of work, from a quick health check to a full monthly review.

The part that matters is the loop

A one-off audit is easy. Plenty of tools generate a list of problems and stop there. The reason this agent replaces real work is the closed loop around every recommendation it makes.

It records what it suggested, tracks whether the change was actually applied, and then measures what happened to rankings over the following weeks. That turns a static report into a system that slowly learns which of its own suggestions moved the needle and which did nothing. Without the loop you have a tool that gives advice. With it you have something closer to a colleague who remembers what they told you last month and checks whether it worked.

A static SEO toolA closed-loop agent
OutputA list of problemsThe fix, opened as a pull request
MemoryForgets after each runRemembers what it suggested
FeedbackNoneMeasures whether the change worked
Over timeThe same advice, repeatedLearns which advice moves the needle

How it’s built

The agent runs on the Vercel AI SDK with a mix of models: Claude Sonnet for the reasoning that needs to be right, and Gemini for the high-volume, cheaper calls where a lighter model is enough. It is a Next.js application orchestrated with Vercel Workflow, so the long, multi-step runs survive restarts and can be retried step by step instead of starting over.

The forty-two tools are where the real design work lives. Each one is small, single-purpose, and has a clear contract for what goes in and what comes out. That is deliberate. A model is only as good as the tools you hand it and the guardrails you put around them.

Three things it taught me

Tool design beats model choice. Most of the quality came from writing precise, single-purpose tools, not from swapping in a bigger model. When output was wrong, the fix was almost always a sharper tool, not a smarter one.

Autonomy needs a gate. The agent proposes changes as pull requests instead of writing to production directly. That single decision is what makes it safe to run unattended, because a human still stands between the agent and anything irreversible.

Observability is not optional. An agent you cannot see is an agent you cannot trust. Reporting to Discord and tracking every action is what turned a clever script into something I actually leave running without checking on it.

Why this matters if you run a business

The SEO agent is one example, but the pattern is general. Take one clear, repetitive bottleneck, wrap it in an agent that runs in production, reports what it does, and keeps a human at the one point that matters. That is the same thing whether the task is SEO, invoices or inbound leads.

If that sounds like a problem you have, the quickest way to find out whether it is worth automating is to talk it through.

Frequently asked questions

Does it really replace a senior SEO specialist?

It covers roughly ninety percent of the repetitive, recurring work, the audits, checks and monitoring that run the same way every time. The strategy a specialist owns still belongs to a human. It takes the grind so the judgment gets the attention.

Is it safe to let it change a live site?

It never writes to production directly. Every change is a GitHub pull request, so a human approves before anything lands. That single gate is what makes it safe to run unattended.

Could this pattern work for something other than SEO?

Yes. Take one clear, repetitive task, wrap it in an agent that runs in production, reports what it does and keeps a human at the one point that matters. The task changes, the shape does not.

Contact

Let’s talk.

Currently open to

  • Fixed-scope AI agent sprints (4 to 8 weeks)
  • Managed AI automation I build and run for you
  • Advisory for non-technical founders building with AI

Every message comes straight to me, not into a ticketing system. I read them all and reply myself.