How BirchSeek works
Research runs automatically. Topic, draft and publish always wait for you. The brief is the one gate you can hand back.
01
Connect your site and search data
Setup
One-time connection
Start with your site's URL, grant read-only access to its Google Search Console property if the site has one, and pick where finished articles go: WordPress, Ghost, Webflow, Shopify, Wix, Notion, GoHighLevel, a GitHub repo, or a webhook endpoint you control. dev.to and Hashnode are available as cross-posting targets once the article is live on your own site. The Medium connector still runs, but only for an account that already holds an integration token, because Medium issues no new ones.
The Search Console scope we request covers queries, positions, impressions, and clicks.
The publishing connection ends with a live access check against the platform's own API: repository push access and pull-request reads for GitHub, an authenticated read for the CMS connectors, a signed ping for webhooks. None of these checks create a post - which is also why GitHub's pull-request write permission stays unproven until your first publish, as GitHub exposes no read-only way to test it. Then you enter the brand context BirchSeek writes against: what you sell, who reads you, your tone, and the things you never say.
02
Pick topics from your Search Console
Gate 1
You queue every topic
BirchSeek reads your Search Console for the queries you nearly win. Page two is the core of the list: positions 11 to 20, measured over the last 30 days. A second pass over 90 days adds the demand a page already winning in the top ten attracts but cannot serve from one article - those sibling queries run from 11 down to 30, whether they sit on that same page or are close relatives of it elsewhere on your site.
Search Console is not the only source. The model proposes further phrases from your brand context, which is what a project with no Search Console property gets instead. Every Search Console row is scored 0 to 100 from its impressions and its distance from page one, and from nothing else: the click-through rate is stored beside the row and no scorer reads it. A model then re-ranks the whole list, weighing demand, proximity to page one, weak competition, fit and novelty. You see the query, your current position, its impressions, the score, and the model's one-line reason on the rows it gave one for.
- best crm for agenciespos 14.21,240 imprscore 82
- notion vs airtable for opspos 11.6860 imprscore 76
- how to migrate from hubspotpos 17.92,110 imprscore 71
03
Sign off on the brief
Gate 2
The one gate you can automate
For each queued topic, BirchSeek researches the live results: what ranks, what intent the query carries, what the ranking pages cover and what they miss.
The brief is one page: target query and secondary keywords, search intent, the outline, the angle, and the sources the draft will lean on. You approve it or send it back with notes.
This is the only gate a project may set to automatic. Set that way, research hands straight to drafting and nothing else changes: the draft still waits for you. Topic, draft and publish cannot be set to automatic at all, and the API refuses to store any other setting for them.
04
Review the draft like an editor
Gate 3
You approve every draft
Every factual claim gets its own numbered card in a rail beside the draft: the claim sentence, the URL, a status, and the excerpt the writer says supports it where the writer wrote one - that field is optional. The rail's header counts them: 14 claims, 13 sourced. Verified means a fetch reached that page and a test confirmed the claim there, and the record says which. Three tests run, but they resolve to four different facts: the writer's excerpt was found in the page's text; or no excerpt was written, so the claim's own wording was found there instead; or a passage of the page overlapped closely enough to pass; or a model read the page and called the claim supported. Only the first two locate anything on the page, and only the first locates an excerpt. Amber when nothing confirmed it, red when the page could not be read at all. A claim whose source does not check out holds the draft in the review inbox instead of your approval queue, flagged, until you cut it or send the draft back.
A quality score sits beside the citations, over five dimensions: humanity (an AI-pattern lint for banned phrases and repetition), specificity, structure balance, readability, and SEO (keyword coverage, heading structure, meta lengths).
You read it in a publication-grade preview, edit the markdown inline, and set the title tag, meta description, and FAQ pairs. Approve it, or request a new draft with notes.
The REST API is enabled by default in WordPress 5.6 and later.1
example.com/rest-api-handbook
Writer's excerpt. The REST API is available by default on every site running 5.6 or newer.
Verified: this excerpt was found in the page's text
Most teams publish their first article within a week of connecting.2
example.org/2025-content-report
Writer's excerpt. Median time from setup to first published post was six days.
Unconfirmed: nothing on the page matched it
05
Publish when you approve
Gate 4
You approve every publish
An approved draft moves to Ready to publish, where you pick the target and confirm the options.
For GitHub, BirchSeek writes the MDX file with your frontmatter, branch, and path, then opens a pull request: preview deploys run and you merge when ready. For WordPress, Ghost, Webflow, Shopify, Wix, Notion and GoHighLevel, it creates a draft over the official APIs and you publish from your CMS. For webhooks, it delivers a signed JSON payload and shows you the receipt.
By default every publish to your own site ends with a Sources list: each verified claim, then a link to the page it was checked against. It is built once, before any connector sees it, so the committed MDX file, the CMS draft and the webhook's markdown all carry the same block, and it lists nothing that was not verified. One project setting, append_sources_section, switches it off for a site that prints its own reference list; there is no screen for it yet, so it travels in the settings object on a PATCH to the project. An off-domain placement builds its own copy and that one is not yours to switch off. A syndicated copy on dev.to, Hashnode or Medium carries the block too, under a canonical link back to your page, and the setting does not reach it: those three platforms have no citation field, so the body is the only place the evidence can travel.
- GitHubPull request openedbirchseek/best-crm-for-agencies
- WordPressDraft createdpost 1284
- GhostDraft createdtag: birchseek
- WebhookDelivered200 OK · 412 ms
How much time the approvals take
Four decisions per article, not three: the topic, the brief, the draft and the publish. Reading a draft is the one that costs real time.
Call it a minute each for the topic, the brief and the publish, and five to fifteen minutes to read a draft properly: 8 to 18 minutes an article. Thirty starts is the whole billing period, so 30 × 8 = 240 minutes at the fast end and 30 × 18 = 540 at the slow one. Four to nine hours a month at full cadence, and less than that in any month you do not spend all thirty.
Setting the brief gate to automatic takes a minute off each article: 7 to 17 minutes, or three and a half to eight and a half hours across thirty.
Start with BirchSeek.
30 cited articles a month.