The pipeline is easy to sketch: pick a keyword, check who ranks, have a model write a few thousand words with sources, and post the draft to your CMS. An agent can build a local version of that in a weekend. What a prompt can't supply is keyword data, which Skribra buys from DataForSEO, Search Console access through Google's OAuth for the refresh loop, and the rankings themselves, which depend on article quality and a site's authority more than on the machinery. Treat any replacement as a drafting tool you edit, not traffic on autopilot.
Before you buildSkribra has no free plan, only a 3-day trial. Search Console is free and shows which of your pages already slip, so look there before paying anyone to write more.
Build me a local SEO article pipeline to replace Skribra for one blog. Requirements: - Node.js 22 + TypeScript: a CLI (`seo`, installed with `npm link`) and a small Fastify page on http://127.0.0.1:5300 for reviewing drafts. - Storage: better-sqlite3 in ./data/seo.db with keywords (term, intent, status), articles (keyword, title, markdown, sources, status: draft, approved or published) and a publish log. Site URL, tone notes, product description and words per article (1,500 to 2,500) live in ./config.yaml. - Keywords: `seo keywords add "<term>"` or `seo keywords import file.csv`. If DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD are set in .env, fetch volume and difficulty; otherwise keep the list manual. Skip a keyword whose normalised term matches an existing article title. - Research: for each keyword call a search API (BRAVE_API_KEY) for the top 8 results, fetch each page and extract its headings with `@mozilla/readability`, then pass the outline and source URLs to the model. - Writing: `@anthropic-ai/sdk` drafts an outline, then each section, in the tone from config.yaml. Every factual claim carries a [n] link to a fetched source, and a draft with fewer than 3 distinct sources is rejected. - Review: the page lists drafts with a rendered preview, source list and word count, and offers Approve, Edit (a textarea) and Reject. Nothing publishes without Approve. - Publish: WordPress REST (`/wp-json/wp/v2/posts`) as a draft using WP_USER and WP_APP_PASSWORD, or Markdown with front matter written to PUBLISH_DIR for a static blog. After publishing, ping IndexNow. - Refresh: `seo refresh` reads Search Console through its official API (a Google OAuth client, read-only scope), lists pages whose clicks fell over 28 days, and drafts new titles and meta descriptions for you to approve. - Single user. No accounts, no telemetry, local-first. Outbound calls: your model, search, CMS and Google only. - Out of scope: backlink schemes, publishing without approval, images, several sites. README: the .env keys, creating the Google OAuth client, hosting the IndexNow key file, and a warning that unreviewed AI articles can break Google's spam policy on scaled content.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Skribra.
Add keyword clustering to the SEO pipeline in this folder. Requirements: - `seo cluster` fetches the top 10 search results for each keyword and groups keywords whose result lists share 4 or more URLs. - Each group picks a pillar keyword (the one with the highest volume, or the shortest term when volume is missing) and marks the rest as supporting. - Store clusters in SQLite and show them on the review page. - Never queue two keywords from one cluster as separate pillar articles. - Update the README.
Add internal link suggestions to the SEO pipeline in this folder. Requirements: - After an article is approved, compare it with every published article (embeddings from your model provider, or TF-IDF if no key is set) and list the 5 closest. - Propose one link in the new article to each of them, and one link from each of the 5 older articles back to the new one, as exact sentence edits to approve. - Show each proposal as a before and after diff; apply only the ones you tick. - Update the README.
Add competitor pages to the SEO pipeline in this folder. Requirements: - `seo competitor add <name> <url>` fetches the competitor's homepage and pricing page and stores the extracted facts, each with its source URL and fetch date. - From that one research pass, draft three pages: "<you> vs <name>", "<name> alternatives" and "<name> pricing", through the normal review flow. - Refuse to state a price that has no stored source, and flag facts older than 90 days. - Update the README.
The appeal is a blog that runs without a weekly writing slot: keywords picked, posts drafted and published, older ones refreshed. Skribra's own FAQ says new domains take months to rank, so what you buy is consistency, not guaranteed traffic.
Estimate · The cost is model tokens and search calls per article: a handful a month stays in single dollars, while thirty a month on a top model can reach tens. DataForSEO is pay as you go. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Starter | $19 | — | 5 articles a month, 1,700 to 3,300 words each, keyword research and intent matching, publishing to WordPress, Webflow, Notion or a webhook, IndexNow indexing, JSON-LD schema and internal links. |
| Growth | $39 | — | 12 articles a month, a higher-tier writing model, faster turnaround, priority support. |
| Pro | $75 | — | 30 articles a month, all five maintenance agents on every article, the top writing tier, multi-project use. |
| BYOK | custom | — | You supply your own OpenAI key and pay token costs yourself; up to 10 projects and 30 articles a month per project, all maintenance agents, lifetime updates and support. |
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Keyword research with volume and difficulty scores from DataForSEO, Maintenance agents that re-title, re-link and refresh live articles from Search Console data.
About $19 a month on the Starter plan, $228 a year (checked 2026-10-19).
Keyword research with volume and difficulty scores from DataForSEO; Maintenance agents that re-title, re-link and refresh live articles from Search Console data; One-click publishing to WordPress, Shopify, Webflow and Notion; IndexNow pings the moment an article goes live; Competitor pages (versus, alternatives, pricing, reviews) built from one round of research. If any of those matter to you, keep paying.
Yes: ALwrity (open source), GPT Researcher (open source), Google Search Console (free).