{
  "markdown": "<p align=\"center\">\n  <a href=\"https://dispatchseo.com\">\n    <img src=\"src/app/icon.png\" width=\"116\" alt=\"DispatchSEO logo\">\n  </a>\n</p>\n\n<h1 align=\"center\">DispatchSEO</h1>\n\n<p align=\"center\">\n  <a href=\"LICENSE\"><img alt=\"License: AGPL-3.0\" src=\"https://img.shields.io/badge/license-AGPL--3.0-7C5CFC?labelColor=1F2328&style=flat-square\"></a>\n  <a href=\"docs/AGENTS.md\"><img alt=\"Built for Claude Code, Codex, and Cursor\" src=\"https://img.shields.io/badge/built%20for-Claude%20Code%20%2B%20Codex%20%2B%20Cursor-D97757?labelColor=1F2328&style=flat-square\"></a>\n  <a href=\"https://dispatchseo.com/docs#choose-your-install\"><img alt=\"Self-host in one command\" src=\"https://img.shields.io/badge/self--host-one%20command-2496ED?logo=docker&logoColor=white&labelColor=1F2328&style=flat-square\"></a>\n  <a href=\"https://dispatchseo.com/discord\"><img alt=\"Join the Discord\" src=\"https://img.shields.io/badge/Discord-join%20the%20server-5865F2?logo=discord&logoColor=white&labelColor=1F2328&style=flat-square\"></a>\n</p>\n\n<div align=\"center\">\n  <strong>\n  <h2>Turn your AI agent into your SEO manager</h2><br />\n  <a href=\"https://dispatchseo.com\">DispatchSEO</a>: an open-source alternative to SEObot and Outrank.<br /><br />\n  </strong>\n  Works today with <b>Claude Code</b>, <b>Codex</b>, and <b>Cursor</b> - all first-class, including the unattended overnight builder.<br /><br />\n  Other SEO tools learn about your product by crawling your homepage. Your agent already knows it,<br />so DispatchSEO gives that agent the missing half: keyword research, content that ships as pull requests, and rank tracking.\n</div>\n\n<div align=\"center\">\n  <br />\n  <img alt=\"Claude Code\" src=\"docs/brand/icons/claude.svg\" width=\"32\">\n  &nbsp;\n  <img alt=\"Codex\" src=\"docs/brand/icons/openai.svg\" width=\"32\">\n  &nbsp;\n  <img alt=\"Cursor\" src=\"docs/brand/icons/cursor.svg\" width=\"32\">\n  &nbsp;\n  <img alt=\"MCP\" src=\"docs/brand/icons/mcp.svg\" width=\"32\">\n  &nbsp;\n  <img alt=\"GitHub\" src=\"docs/brand/icons/github.svg\" width=\"32\">\n  &nbsp;\n  <img alt=\"Google Search Console\" src=\"docs/brand/icons/search-console.svg\" width=\"32\">\n  &nbsp;\n  <img alt=\"Google\" src=\"docs/brand/icons/google.svg\" width=\"32\">\n  &nbsp;\n  <img alt=\"Docker\" src=\"docs/brand/icons/docker.svg\" width=\"32\">\n</div>\n\n<p align=\"center\">\n  <br />\n  <a href=\"https://dispatchseo.com/docs#choose-your-install\"><img src=\"docs/buttons/install.svg\" alt=\"Install now\" height=\"46\"></a>\n  &nbsp;\n  <a href=\"https://dispatchseo.com/docs\"><img src=\"docs/buttons/docs.svg\" alt=\"Read the docs\" height=\"46\"></a>\n  &nbsp;\n  <a href=\"https://www.youtube.com/watch?v=1gCXPxPqfy0\"><img src=\"docs/buttons/demo.svg\" alt=\"Watch the demo\" height=\"46\"></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://dispatchseo.com\">Website</a>\n  &nbsp;&middot;&nbsp;\n  <a href=\"https://dispatchseo.com/discord\">Discord</a>\n  &nbsp;&middot;&nbsp;\n  <a href=\"https://github.com/NeoZi12/dispatchseo/discussions\">Discussions</a>\n  &nbsp;&middot;&nbsp;\n  <a href=\"https://dispatchseo.com\">Hosted version</a>\n</p>\n\n<p align=\"center\"><i>Self-hosted has zero feature limitations. Everything the paid<br />cloud does, this repo does today, in your own accounts, at $0.</i></p>\n\n<p align=\"center\">\n  <a href=\"https://www.youtube.com/watch?v=1gCXPxPqfy0\">\n    <img src=\"https://img.youtube.com/vi/1gCXPxPqfy0/maxresdefault.jpg\" alt=\"DispatchSEO preview video - the dashboard, the queue, and a pipeline-built pull request, walked through end to end\">\n  </a>\n  <br>\n  <sub>▶ Watch the preview</sub>\n</p>\n\n<br />\n\n## ⚡ How it works\n\n1. **Your AI researches.** The Claude app at claude.ai, or a coding agent\n   (Claude Code, Codex, Cursor), connects to DispatchSEO over MCP,\n   reads the served playbook, and mines keywords from your Search Console\n   data, Google Autocomplete, and what it already knows about your product.\n   Ideas land in a queue with the reasoning attached.\n2. **You approve, or don't.** Each idea is a card on the dashboard: the\n   keyword, why it's winnable, the angle. Approve, reject, or reorder.\n   Prefer full autopilot? Flip on auto mode and skip the queue entirely.\n3. **The pipeline builds.** Every morning a scheduled job picks the oldest\n   approved idea and builds it into a real pull request against your site's\n   repo: a guide or a small free tool, checked against the live SERP and run\n   through a sameness reviewer so page twelve doesn't read like page three.\n4. **It tracks what happened.** Daily rank checks, hourly Search Console\n   snapshots, index verification, and a journey view that tells you which\n   SEO stage you're actually in. When a scheduled job breaks, you get a red\n   banner and an email instead of silence.\n\nThe backend is deliberately boring: state, scheduling, and an approval gate.\nThe thinking happens in your agent, where your product knowledge already\nlives.\n\n<table>\n  <tr>\n    <td colspan=\"2\"><img src=\"docs/screenshots/home.png\" alt=\"The dashboard Home: the agent's daily briefing in plain language, the journey stage, publishing pace, and live Search Console stats for a connected site\"></td>\n  </tr>\n  <tr>\n    <td><img src=\"docs/screenshots/queue.png\" alt=\"The queue: keyword ideas with volume and difficulty, each waiting for approval or set to auto\"></td>\n    <td><img src=\"docs/screenshots/guide-pr.png\" alt=\"A pull request the pipeline built: target keyword, SERP gate verdict, archetype, and information-gain asset, all named in the description\"></td>\n  </tr>\n  <tr>\n    <td><img src=\"docs/screenshots/search-traffic.png\" alt=\"Search traffic: clicks and impressions from Google Search Console, snapshotted hourly\"></td>\n    <td><img src=\"docs/screenshots/rankings.png\" alt=\"Keyword rankings: daily position checks with 30-day trend sparklines\"></td>\n  </tr>\n</table>\n\n## 🤖 Which coding agent\n\nDispatchSEO talks to your agent over MCP, so \"which agent\" is a real question\nwith a real answer — including the parts that aren't finished yet.\n\n| Agent | Connect + every tool | Unattended overnight builder |\n|---|---|---|\n| **Claude Code** | ✅ | ✅ |\n| **Codex** | ✅ | ✅ |\n| **Cursor** | ✅ one-paste connect, all 61 tools | ✅ via its API key (any plan mints one) |\n| Gemini CLI · Copilot · any MCP client | ✅ | ❌ |\n\nConnecting is one paste and gets you the whole tool set: research, the queue,\napprovals, backlinks, reports, and building a guide when you ask for one. The\novernight builder is the separate thing — scheduled jobs that run an agent with\nnobody watching — and all three do that. Every workflow carries every agent\nand asks the dashboard which to run, so switching agent takes effect on the\nnext scheduled run with no repo change.\n\nThe honest difference is who pays: Claude Code runs on a subscription you\nalready have, Cursor runs on your Cursor plan's API key, and Codex is\nmetered by OpenAI per run.\n\nYou can also skip coding agents entirely. Add DispatchSEO to the ordinary\nClaude app at claude.ai as a custom connector and your Claude does the research\nand the writing on the subscription you already have, then hands the article\nback for the backend to check, finish and publish. It won't build interactive\ntools or run the overnight builder, and claude.ai has to be able to reach your\ninstall, so that path wants a public URL rather than a laptop. ChatGPT can't\nconnect yet.\n\n[docs/AGENTS.md](docs/AGENTS.md) has the details, the support tiers, and how to\nadd an agent.\n\n## ✅ What you need before you start\n\n- **Somewhere to publish.** Either WordPress you host yourself, connected once\n  from Settings with an application password and posted to directly, or your\n  site's source in a GitHub repo, where content arrives as pull requests. Wix,\n  Squarespace, Shopify, Webflow and Ghost have neither door and won't work.\n- **An AI to drive it.** Your AI is the engine, and it can be the ordinary\n  Claude app at claude.ai or a coding agent. Claude Code runs on the Claude\n  subscription you already pay for; Codex and Cursor do everything Claude Code\n  does here, including the overnight builder. Codex is metered by OpenAI per\n  run, and Cursor builds draw on your Cursor plan's included usage. See the table above.\n- **A machine with Docker** (~1 GB RAM). A laptop works for a test drive, but\n  a machine that stays on is much better for daily use - a $5 VPS, a Raspberry\n  Pi, a desktop that never sleeps. Schedules only run while the machine is awake.\n- **Google Search Console access** to your site.\n\nThat's the whole list. No API keys to buy, and no account on our side.\n\n## 📖 Documentation\n\nEverything is at **[dispatchseo.com/docs](https://dispatchseo.com/docs)** - every\npage, every setting, every tool.\n\n| | |\n| --- | --- |\n| **New here** | [What DispatchSEO is](https://dispatchseo.com/docs/introduction) · [How it works](https://dispatchseo.com/docs/how-it-works) · [Cloud or self-hosted](https://dispatchseo.com/docs/choosing-how-to-run-it) |\n| **Install** | [Quickstart](https://dispatchseo.com/docs#choose-your-install) - your own computer, a VPS, or from source |\n| **Set up** | [Install Claude Code](https://dispatchseo.com/docs/install-claude-code) · [Install Codex](https://dispatchseo.com/docs/install-codex) · [Install Cursor](https://dispatchseo.com/docs/install-cursor) · [The setup wizard](https://dispatchseo.com/docs/setup-wizard) · [Search Console](https://dispatchseo.com/docs/search-console) · [Keyword data](https://dispatchseo.com/docs/keyword-data) · [Publishing](https://dispatchseo.com/docs/publishing) · [Connect your site](https://dispatchseo.com/docs/connect-your-site) |\n| **Use it** | [Day to day](https://dispatchseo.com/docs/day-to-day) · [The dashboard](https://dispatchseo.com/docs/dashboard) · [Automations](https://dispatchseo.com/docs/automations) · [Agent commands](https://dispatchseo.com/docs/agent-commands) |\n| **Reference** | [Concepts](https://dispatchseo.com/docs/concepts) · [MCP tools](https://dispatchseo.com/docs/mcp-tools) · [Environment variables](https://dispatchseo.com/docs/environment-variables) · [Schedules](https://dispatchseo.com/docs/schedules) · [Architecture](https://dispatchseo.com/docs/architecture) |\n| **Help** | [Troubleshooting](https://dispatchseo.com/docs/troubleshooting) · [Common questions](https://dispatchseo.com/docs/faq) · [Security](https://dispatchseo.com/docs/security) · [Upgrading](https://dispatchseo.com/docs/upgrading) |\n\n**Pointing an agent at this?** Add `.md` to any docs URL for clean markdown, or\nfetch the entire documentation set in one request:\n**[llms-full.txt](https://dispatchseo.com/llms-full.txt)**. There's an index at\n[llms.txt](https://dispatchseo.com/llms.txt) and a [SKILL.md](SKILL.md) that\nwalks an agent through connecting a site.\n\n**Stuck during setup?** The\n[troubleshooting page](https://dispatchseo.com/docs/troubleshooting) covers the\nerrors people actually hit. If yours isn't there, ask in the\n[Discord](https://dispatchseo.com/discord) or in\n[Discussions](https://github.com/NeoZi12/dispatchseo/discussions) - questions get\nanswered and usually turn into a docs fix.\n\n## 🗓️ Using it day to day\n\nOnce the wizard is done, the loop is small on purpose:\n\n| When | You do | It does |\n| --- | --- | --- |\n| Once a week, 5 minutes | Open the dashboard, work through the queue - approve, reject, reorder | Refills the queue with researched ideas and the reasoning behind each one |\n| Every morning | Nothing | Builds the oldest approved idea into a pull request on your repo |\n| When a PR lands | Review and merge (or let auto-merge do it) | Logs the page, requests indexing, starts tracking its keyword |\n| Whenever you want | Ask your agent: *\"research keywords for me\"*, *\"what should I write next?\"*, *\"how are we ranking?\"* | Answers from live data over MCP - same state the dashboard shows |\n\nThe dashboard's Home page always names the next action, so you don't have to work\nout what to do when you open it.\n\n## 🧰 What's in the box\n\n- **MCP server** with [the full tool set](https://dispatchseo.com/docs/mcp-tools): the\n  queue, keywords, rankings, pages, GSC stats, backlink prospects, trend\n  topics, site profile. Anything the dashboard can do, your agent can do over\n  MCP; parity between the two is a hard rule in this codebase.\n- **Trend radar**: scan for rising topics in your niche, expand a topic into\n  concrete guide angles, and queue the good ones.\n- **Guide and tool builders**: guides publish at most one per day, flat and\n  permanent (so a queue of thirty approved ideas doesn't become thirty posts\n  in a week); free-tool ideas build on approval.\n- **Backlink playbook**: a prospect list prefilled with your product's copy,\n  tracked per submission.\n- **Multi-site**: one deployment manages any number of sites. Each project\n  gets its own MCP token, its own data, its own settings.\n- **A password-gated dashboard** for the one human in the loop.\n\n## 💵 What it costs to run\n\nNothing, unless you want paid data. The tiers stack:\n\n| Tier | Price | What you get |\n| --- | --- | --- |\n| Search Console only | **$0** | Rankings from GSC, keyword ideas from Autocomplete plus your own impression data |\n| + SerpApi free key | **$0** | Live SERP checks, real positions weekly (250 free searches/month) |\n| + DataForSEO | pay per call | Search volume, keyword difficulty, domain rating |\n\nFree mode finds keywords you can win. Paid mode also knows which ones are\nworth winning.\n\n## ☁️ Cloud version\n\nThere's a hosted version for people who'd rather not run a machine: we host it,\nbundle the SERP + volume data into one bill, and replace the Google\nservice-account ritual with one click. It's at\n[dispatchseo.com](https://dispatchseo.com). Self-hosting stays feature-complete\neither way - the cloud sells convenience, not capability.\n\n## 🧑‍💻 Developing from source\n\n```bash\ngit clone https://github.com/NeoZi12/dispatchseo\ncd dispatchseo\npnpm install\ncp .env.local.example .env.local\npnpm dev\n```\n\nThis is the contributor path, not the way to self-host - that's the one-command\nDocker install behind the button at the top. Fill in `.env.local` (Supabase +\nthe three secrets) before starting, then open the dashboard on\n**localhost:3000**.\n\n`pnpm build` is the typecheck - run it before opening a PR. There is no\nseparate lint or test setup.\n\n## 🏗️ Architecture, briefly\n\nNext.js App Router, Postgres for state (a bundled container when self-hosted,\nSupabase in the cloud version), `mcp-handler` for the MCP server at `/api/mcp`.\nSchedules and builds run in-stack (cron + builder containers) or on GitHub\nActions. One deployment is multi-tenant: the MCP bearer token selects the\nproject, crons loop over all projects, the dashboard switches with a cookie.\n\n[Architecture](https://dispatchseo.com/docs/architecture) covers this properly.\n[CLAUDE.md](CLAUDE.md) has the full conventions; it's written for agents, which\nturns out to make it decent documentation for people.\n\n## 🤝 Contributing\n\nIssues before PRs, and you must understand every line you submit, including the\nAI-assisted ones. Details in [CONTRIBUTING.md](CONTRIBUTING.md). Questions go to\n[Discussions](https://github.com/NeoZi12/dispatchseo/discussions) or the\n[Discord](https://dispatchseo.com/discord); vulnerabilities go through\n[private reporting](SECURITY.md).\n\n## 📄 License\n\n[AGPL-3.0](LICENSE). Use it, self-host it, fork it. If you run a modified\nversion as a service, share the source. That's the whole deal.\n\n---\n\n<p align=\"center\">\n  <sub>Built by <a href=\"https://github.com/NeoZi12\">NeoZi12</a> · If DispatchSEO is useful to you, a ⭐ helps other people find it.</sub>\n</p>\n",
  "bytes": 15465,
  "sha": "fb43de8577aace06ab8c6f69ded271fac1fbe46352bf25b22089554fb6a0dde3",
  "repo_slug": "neozi12/dispatchseo",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_neozi12_dispatchseo_b0441f56/readme"
}