Skip to content
brainNotFound

AI & Automation

Building an AI Content Pipeline That Doesn't Publish Slop

Where language models genuinely help a publishing workflow, where they quietly destroy it, and how to wire the difference.

VoidReturn2 min read
Concentric arcs over a dark grid, labelled 202 ACCEPTED

Every publisher has now run the experiment: point a model at a keyword list, generate two hundred articles, watch the traffic graph. It works for about a quarter, and then it does not, and the cleanup costs more than the content ever earned.

That does not make the tooling useless. It makes the placement of the tooling the entire question. Here is the split that has held up.

Where models genuinely help

  1. Research compression. Summarising twenty sources into a working brief with the disagreements flagged.
  2. Structural editing. "Which of these sections repeats itself?" is a question models answer well.
  3. Metadata drafting. Titles and descriptions against a character budget, ten variants in a second.
  4. Mechanical transforms. Alt text drafts, internal-link suggestions from an existing corpus, schema generation.
  5. Coverage analysis. Comparing your article against the top results and listing what is missing.

The common thread: every one of these produces an input to a human decision rather than output that ships unread.

Where they quietly destroy things

Wholesale drafting is the obvious failure, but the expensive one is subtler: generated internal linking at scale. A model that invents plausible anchor text pointing at plausible URLs will produce hundreds of confident 404s, and you will not notice for a quarter.

The second failure is voice. Models converge on a register — balanced, hedged, faintly enthusiastic. Publish enough of it and your archive reads like everyone else's, which is the opposite of the reason to have an archive.

The pipeline

Concretely, this is the shape I build for clients. Four stages, one human gate that cannot be automated away.

StageAutomatedHuman
BriefSource gathering, gap analysis, outline draftApproves angle
DraftSection scaffolds, code samples, data pullsWrites the argument
PolishMetadata variants, alt text, link candidatesSelects and edits
PublishSchema, sitemap, revalidation, distributionSigns off
Stage by stage
Link suggestions that cannot hallucinatetypescript
const candidates = await client.fetch<LinkTarget[]>(
  `*[_type == "post" && _id != $id]{ _id, title, "slug": slug.current }`,
  { id: post._id },
);

// The model may only choose from candidates it was given.
const chosen = await suggestLinks({ body: post.body, candidates });
const resolved = chosen.filter((c) =>
  candidates.some((candidate) => candidate._id === c._id),
);

What to measure

Not volume. Two numbers tell you whether the pipeline is working: time from brief to publish, and the share of published articles that still get traffic six months later. Automation that improves the first while wrecking the second is a machine for generating future work.

The goal is not to publish more. It is to spend the same hours on the parts of publishing that only a person can do.

If you want the technical foundation underneath this — the schema, the references, the revalidation — start with Portable Text That Ranks.

// related

Keep reading.

All AI & Automation