Writing on a subscription, not an API key

A scheduled agent running on an existing Claude subscription asks the platform what to write, writes it, and posts it back — so no model API key lives on the platform and there is no per-post charge here.

What it is

Two endpoints. GET returns the assignment: the keyword, its volume and intent, the working title, any human-written outline, the SERP brief, the house voice, the link menu, the numeric requirements and a nine-step procedure. POST accepts the finished post, runs the full publish gate on it, saves it as a draft, starts the hero and records the work at zero cost. A PATCH exists so the routine can land in-flight images.

Also called: no API key · Claude routine · scheduled writing agent · assignment desk

See it
Writing on a subscription, not an API key
Apr
May
Jun
Jul
Ivy Brubaker — 40×64 Shop
Framing
Ivy Brubaker — Riding Arena
Concrete
Delia Yoder — Barndominium
Trim
Delia Yoder — Equipment Storage
Framing
Ronan Petsch — 40×64 Shop
Concrete
Framing crewConcrete crewTrim crew
The assignment JSON: keyword, volume, brief shape and angle, outline, voice, link menu, requirements and the nine-step howTo. Sample data — no customer information appears here.
How it works
  1. 1The routine fetches GET /api/cron/blog-assignment; if the backlog is full, unreviewed drafts are at the cap or nothing is unlocked, it returns work: false with the reason.
  2. 2The procedure tells it to research through the inquiry desk before writing, and exactly how to submit.
  3. 3POST validates word count, plan blocks, H1 usage, and internal and external link counts, returning 422 with the specific problems so the routine can fix and resubmit — two attempts, then stop.
  4. 4A submitted post keeps its existing slug, because the slug may already be on the calendar and referenced elsewhere.
  5. 5The ledger records the write at zero cents, because the cost landed on the subscription rather than the platform's card.
  6. 6Only one writer is live at a time — the in-process writer refuses to run whenever writerMode is 'subscription'.
Why we built it

The design constraint is stated at the top: "Keith doesn't want an Anthropic API key on the platform — he'd rather the writing run on his Claude subscription. A subscription can't be handed to a Vercel function… so the writer moves OUT of the request path instead." The boundary is the interesting part: "Everything that ISN'T the model call stays exactly where it was. The queue rules, the house voice, the link menu, the publish gate, the ledger and the hero pipeline all still live here in the platform — the routine supplies nothing but the prose… a routine that goes rogue still cannot publish anything the gate would reject." And the exclusivity rule: "Two writers on one queue would happily produce the same post twice."

The problem
  • Writing required a platform-billed API key.
  • A remote agent has no memory of the business and no database access.
  • Two writers on one queue would duplicate work.
Sound familiar?
What you get
No model API key on the platform and no per-post charge there
The rules, voice and gate stay in the repo where they can be reviewed
Exactly one writer is live at a time, by configuration
What's inside

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →