Skip to content

~/writingai-writing-workflow-blind-critics

An AI writing workflow with three blind critics

I built a scheduled AI writing workflow where three blind critics must rank a draft above two rival articles before it can publish. Its first run lost.

Jon Phillips5 min readShipped#ai#automation#seo
A black parcel sealed with green tape, lit by three desk lamps on a dark concrete floor

The blog on BTC DCA Engine now writes on a schedule, and a draft only goes live if three critics rank it above the articles it has to compete with. I have been building this with Codex and trading ideas about the design with Claude. Its first scheduled run was Friday, and the critics rejected the draft.

How the loop works

The whole thing runs in GitHub Actions, so my laptop can be closed. On a publishing day it takes the next topic I approved from a calendar and gathers fresh evidence: live search results, keyword data, primary sources and a calculation from the app's own API. A writer model drafts the article from that evidence, inside a word budget.

Six steps in a loop: research, draft, layout check, three blind critics, publish and live check, with a revise arrow from the critics back to the draft

Before any critic reads it, the page has to pass a layout check at four screen widths, in light and dark mode.

Then three critics score it. They are blind: no access to the repository, no tools, and no history of what the writer was trying to do. Each one gets my draft, two rival articles that already rank for the topic, and a decoy. The decoy is my own draft with every figure replaced by a vague phrase. If the critics cannot tell the real article from the one with no numbers in it, the numbers were not doing any work.

To win, the draft has to beat both rivals by at least 5 points in two of the three passes, beat the decoy by at least 20, and still win when the labels are shuffled. A loss sends the criticisms back to the writer for another round, up to four. The loop stops early if a revision barely improves the score or only makes the article longer.

Four black parcels in a row under three spotlights; only one is sealed with green tape

A win deploys the article, checks the live page, and emails me that it published. Anything else emails me what failed. A separate watchdog looks every 15 minutes and emails me if a run has not started 20 minutes after its slot, or has been running for an hour.

The first run lost, and that was the useful part

Friday's draft lost round one. Before this week, a failed run threw its work away. Now a recovery path picks up the same research and the critics' notes and revises without being able to publish. The revision grew from 1,442 to 1,731 words and scored 92, 90 and 88. A second step then released that exact draft, without asking the writer or the critics again, so a winner cannot be rerolled into something worse. The result is Bitcoin College Savings: CD and 529 Model Limits.

I am testing two shapes of this: one that runs entirely in the cloud, and a hybrid where some of the writing, review and publishing runs locally. I am also comparing agents on the same job. I will write up which one I keep, and for which projects.

A review scorecard for Matchless Web

When I redesigned Matchless Web, the review management page did not make the move. It is back, with a free Reputation Scorecard. You type your business name, pick it from a Google lookup, and about 30 minutes later you get an email showing your reviews and rating next to the competitors around you. If you run a local business, try it on your own.

The Reputation Scorecard form on the Matchless Web review management page

The lookup runs on the server, so the Google key never reaches the browser. The scorecard tool has no public API for this, so my server does what the tool's own widget does. That took some finding: the tool refuses a submission that arrives the instant its token is issued. Zero seconds was refused and three was accepted, so the server waits about three and a half. One more catch: a Google listing with no street address does not appear in the lookup, and mine is one of them. The form says so and offers to run those by hand.

Heavy Artillery gets a home base

Heavy Artillery keeps its national pages and now says where it is: Clinton, Mississippi. It has a page for the Jackson metro, a page for people looking for an AI automation consultant, and an About page. Its Google Business Profile is created, verified and live.

Next I will post to that profile regularly and set up the brand's social channels. After that I plan to run small ad tests on Meta and Google for both of my agency sites. I want to try some new strategies on myself before I try them on a client.

Four Ahrefs projects

I set up search tracking for four sites, the same way each time: read the results pages for the terms that matter, group keywords one tag per page, pick the competitors that actually hold those results, and write down a starting point.

  • jonphillips.dev: 49 keywords in 12 groups and 9 competing blogs. A site with no links at all ranks sixth for one term I want, which tells me the page matters more than the domain there.
  • Simple Email Signature: 52 keywords and 10 competitors for the signature generator, plus 15 questions tracked weekly in AI answers.
  • A local lawn and landscape company: 61 keywords across 10 locations. One page had 19,051 search impressions and 1 click, sitting around position 31. That page is where the work starts.
  • A local diesel and tire shop: 50 keywords tracked from its own city. The first import landed in the wrong state, so every location now names its state.

Each week I compare rank movement with Search Console, read what the AI answers say, and pick one to three page changes.

New posts on my other sites

Jon Phillips, laughing over a cup of coffee

Jon Phillips builds websites, web apps and automations at Matchless Web in Clinton, Mississippi.

~/writing · keep reading