seodraft

The harness

  • MCP server
  • The rules
  • Git delivery
  • Editorial calendar
  • All features

What it knows

  • Measured topics
  • SERP brief
  • Evidence bank
  • Cannibalization stop
  • Internal links

Free tools

  • AI crawler checker
  • Sitemap checker
  • Readability checker
  • AI slop checker
  • Meta description checker
  • FAQ schema generator
  • All tools

Learn

  • Claude SEO
  • All courses
AgentsPricingBlog

EN/ES

Log inCreate account
Create account
seodraft

Your agent writes. The rules decide. You approve.

EN/ES

Product

  • Features
  • MCP server
  • Editorial calendar
  • SERP brief
  • Evidence bank
  • Git delivery

Agents

  • Slack (eve)
  • Claude
  • ChatGPT
  • Cursor
  • Grok Bot
  • Codex & VS Code
  • Setup guides

Free tools

  • AI crawler checker
  • Sitemap checker
  • Readability checker
  • AI slop checker
  • Meta description checker
  • FAQ schema generator
  • All tools

Compare

  • Outrank
  • Surfer SEO
  • Jasper
  • Frase
  • Writesonic
  • Copy.ai
  • All alternatives

Company

  • Blog
  • Pricing
  • AI info
  • Write skill
  • llms.txt
  • Log in
  • Create account

Learn

Claude SEOAll courses
Featured onFeatured on CodeHypeVerified on directreeFeatured on SaaSearch

Privacy·Terms·Support·© seodraft

October 6, 2026· Written by Chorch

seodraft is now in Slack, powered by Vercel's eve

Deploy seodraft for Slack: an open-source eve agent on Vercel that plans topics, writes against the rules and asks before any approval or paid call.

On this page

  1. What the agent does in a Slack thread
  2. seodraft stays the system of record
  3. Twelve seodraft calls wait for a button
  4. Each person signs in with their own seodraft account
  5. Deploying it takes one button and one connector row
  6. Scheduled runs are the known limit today
  7. Choose between Slack and the agent you already use

In short

seodraft for Slack is an open-source SEO content agent built on Vercel's eve. You deploy it to your own Vercel account with one button and mention it in Slack: it plans topics, writes the next article against seodraft's rules and repurposes approved articles. Each person signs in with their own seodraft account, and approvals and paid calls wait for a button.

Today seodraft is in Slack. seodraft for Slack is an open-source SEO content agent that you deploy to your own Vercel account, built on eve, Vercel's agent framework.

@mention it in a channel and it plans your topic bank, writes the next scheduled article, runs seodraft's rules and turns the approved article into LinkedIn posts, X posts and newsletter sections.

Chorch built it around something he said while rebuilding seodraft: "casi todo el trabajo se lo lleva el usuario con su agente a donde quiera que conecte", almost all the work happens wherever the user connects their agent. For a lot of teams, that place is a Slack channel.

Below you will find what the agent does in a thread, the 12 seodraft calls that wait for an approve or deny button, and how sign-in works without a single API key. We also cover the one thing it cannot do yet. Start with what happens when you mention it.

  • What the agent does in a Slack thread
  • seodraft stays the system of record
  • Twelve seodraft calls wait for a button
  • Each person signs in with their own seodraft account
  • Deploying it takes one button and one connector row
  • Scheduled runs are the known limit today
  • Choose between Slack and the agent you already use

What the agent does in a Slack thread

The agent takes a request in Slack and runs the same seodraft workflow your own agent runs over MCP.

Ask it what is next and it calls next_write, proposes a brief with three accepted pieces of evidence, writes the body and runs the rules. When you say ship it, the approval shows up as a button in the thread.

you:   @seodraft what's next on the calendar?
agent: next_write → "How long does a Shopify migration take?" (scheduled Tuesday).
       Brief: intent, template, angle, 3 accepted evidence pieces, outline. Write it?
you:   go
agent: upsert_post (brief, then body) → run_gate passed. Here's the article.
you:   ship it
agent: [Approve / Deny] approve_post
       Approved and delivered as a draft to your-org/your-site.

The order matches what we use on this blog. The current workflow saves the brief before the body and requires every evidence item in the brief to reach the article, and the agent posts a short summary of the brief in the thread before it writes a line.

After approval it offers to repurpose the article. Each social surface has its own editable style skill, checked by a banned-words lint and a reviewer that reads the post with fresh context.

seodraft stays the system of record

Everything the agent works on lives in your seodraft workspace, and the agent has no database of its own.

The profile, the evidence bank, the topic bank, the calendar, the briefs, the drafts, the rules and the delivery settings stay in seodraft. The agent reads the editorial standard with get_skill at runtime, so a change to the rules reaches Slack the moment it ships.

This is the same bet we described in Agent-first: why seodraft killed most of its web UI. Chorch put it this way: "cada día los productos estarán más pensados para agentes que para humanos", products will be designed more for agents than for humans every day.

The Slack agent is one more client of the same MCP server. A draft started in Slack can be finished from Claude or Cursor, because both read the same workspace.

Twelve seodraft calls wait for a button

The agent pauses for an approve or deny button before 12 of seodraft's tools run, and everything else runs without a prompt.

Pauses for approvalWhy
approve_post, approve_profile, deliver_draft, archive_topicThey record the human's decision or write to the site's git repository
archive_post, merge_topics with confirm: trueThe dry run is free, so only the confirming call stops
add_topics, complete_onboarding, propose_topics, refresh_metrics, research_topic, suggest_topicsThey can spend the user's DataForSEO balance

Reads, upsert_post, run_gate and scheduling never ask. Before a paid call, the agent says in one line what it does and the price its tool description names, which runs from about USD 0.004 to USD 0.12.

seodraft also refuses a paid run that would break its per-run or rolling 24-hour ceiling, whatever the agent decides. The list lives in APPROVAL_REQUIRED_TOOLS in agent/connections/seodraft.ts, and you can edit it in your fork.

Each person signs in with their own seodraft account

Every Slack user authorizes their own seodraft account through Vercel Connect, so the agent sees only the workspaces that person can open.

The first time someone needs seodraft, the agent sends them a private sign-in link. The token is resolved on every call and never reaches the model.

The template runs with zero static keys. Slack and seodraft authenticate through Vercel Connect, while Vercel Blob and the model use the project's OIDC token. DataForSEO credentials, when a workspace uses them, are entered in the seodraft web app and never pass through Slack.

Chorch's rule for this kind of work is "lo mejor es crear buenos procesos, rápidos y económicos para que los agentes trabajen mejor": build good, fast and inexpensive processes so agents work better. One sign-in per person and no keys to rotate is the cheapest process we could find.

Deploying it takes one button and one connector row

The Deploy with Vercel button provisions a Slack connector, a seodraft connector and a Blob store in one pass.

You need a seodraft account with at least one workspace, a Vercel account and a Slack workspace where you can install an app. seodraft is not in the Vercel Connect catalog yet, so in the seodraft.app row you choose Add, then OAuth, then Managed, and enter https://seodraft.app as the server URL.

Vercel Connect discovers the endpoints and registers the OAuth client with seodraft on its own. The repo is ch0rch/seodraft-content-agent, an Apache-2.0 fork of Vercel Labs' eve Content Agent Template, and the eve agent page has the deploy button and the setup steps.

Scheduled runs are the known limit today

The agent cannot write on a schedule yet, so every article starts from a message in Slack.

seodraft issues user tokens only, and eve schedules run as the app. A cron job therefore has no person to act as when it calls seodraft.

We launched the agent today, so we have no usage numbers to share yet.

Choose between Slack and the agent you already use

Deploy the Slack agent when your team talks about content in Slack, and keep using your own agent when you write alone.

Both read the same workspace and pass the same rules, so you can run them side by side. If you are curious how an agent works next to a founder day to day, read the founder's personal agent inside seodraft. If you ship your own MCP server, how to distribute an MCP server through registries covers what we learned listing ours.

Your next step: open the eve agent page, press Deploy and mention the bot in a channel. If you do not have a workspace yet, create your seodraft account: your agent writes, the rules decide, and you approve.

Frequently asked questions

What is seodraft for Slack?
It is an open-source SEO content agent built on Vercel's eve that you deploy to your own Vercel account. In Slack it plans your topic bank, writes the next scheduled article against seodraft's rules, and turns approved articles into LinkedIn posts, X posts and newsletter sections.
Do I need API keys to deploy it?
No. Slack and seodraft authenticate through Vercel Connect, and Vercel Blob and the model use the project's OIDC token. DataForSEO credentials, when a workspace uses them, are entered in the seodraft web app and never pass through Slack.
Can the Slack agent publish to my site?
It can deliver, and only you publish. Approving an article in the thread delivers a file marked draft: true to your site's git repository, and you publish it from your CMS. Approving, delivering and every paid call wait for an approve or deny button.
Can it write on a schedule?
Not yet. seodraft issues user tokens only and eve schedules run as the app, so a cron job cannot call seodraft on its own. Every article starts from a message in Slack for now.

How this post was made

Chorch's AI agent drafted this post inside seodraft, which holds it to his evidence and checks every draft with deterministic rules. These are the steps and what each one produced.

  1. 1

    Started from Chorch's evidence

    Four accepted pieces from seodraft's evidence bank: three things Chorch said in conversation while rebuilding seodraft, and one record of how seodraft's workflow orders the brief and the body.

  2. 2

    Planned before writing

    A case study in seven sections, saved in seodraft before the body and built from the template's public repository: its README, architecture notes, skills and approval policy.

  3. 3

    Checked by the rules

    Passed seodraft's rules on the second run. The first run flagged the links to product pages because the rules only resolve blog posts, so the seodraft copy links them by full URL.

About the author

Chorch · Founder of seodraft

Chorch builds seodraft. He has spent more than fifteen years building digital businesses, and he answers seodraft's support himself at chorch@seodraft.app.

XLinkedInGitHub

All posts

Your agent writes. The rules decide. You approve.

Turn the Claude or ChatGPT you already pay for into an SEO agent: measured topics, your own evidence, and rules that check every draft.

Create account

7 days free, no card needed. Then $9/month if you subscribe.

Log inCreate account
Create account
Create account

7 days free, no card needed. Then $9/month if you subscribe.

  • Log in
  • Create account