Alcott

Loading site
Skip to content

2026-09-20 · 7 min · By Alcott Dube

How to build an ai content pipeline that stays on brand

I use explicit voice rules, approved examples and automated review gates to keep generated content consistent, with human approval for claims and sensitive material.

Terracotta paper forms passing through ceramic apertures, with incompatible fragments set aside.

I build an ai content pipeline around a versioned voice specification, approved examples and review gates that block publication when rules fail. I automate language checks, assess tone separately from factual support, and require human approval before publishing.

Turn brand voice guidelines into testable rules

I start with a voice specification, not a prompt asking for something confident and human. Those adjectives leave too much room for interpretation. The specification needs to say who is speaking, who they are addressing and what the content must help that reader decide. I keep it short enough for an editor to use without consulting another document.

I separate hard rules from editorial preferences. Hard rules include prohibited phrases, spelling conventions, punctuation restrictions and claims that need evidence. Preferences describe rhythm, directness and acceptable technical detail. A prohibited phrase can block a draft automatically. A preference for short sentences needs judgement, because five short sentences in a row can sound mechanical.

For a consultancy, I might specify first-person singular, British spelling and recommendations supported by a concrete trade-off. I would ban invented client stories and unsupported outcome figures. Each rule gets an identifier, a severity and one passing and failing example. That makes feedback actionable: an editor can reject a specific behaviour rather than asking for more personality.

Choose brand voice examples the model can use

I would start with six to ten approved samples, chosen for the formats the pipeline will produce. A service page, a technical guide and a short social post solve different problems. Feeding all three into every request adds noise. I select examples by format, audience and intent, rather than assuming any approved writing will teach the right behaviour.

Each sample needs a short annotation explaining why it works. I might note that the opening gives a recommendation before background, or that a limitation appears beside the claim it qualifies. I also keep rejected examples with precise explanations. Without annotations, a model may imitate surface features, such as sentence length, while missing the reasoning that makes the voice recognisable.

I keep factual source material separate from voice samples. An old project write-up might demonstrate tone while containing prices or capabilities that are no longer accurate. The drafting instructions should explicitly prohibit treating examples as current evidence. I remove confidential details before anything enters a reusable library, and give every approved sample an owner and review date.

Three translucent screens separating irregular fragments, colour mismatches and forms awaiting release.
Separate review gates catch different failures before publication.

Define the content pipeline input and output

My drafting input would include the brief, audience, intended action, channel, length range, voice version and approved sources. Missing essentials should stop the job before generation. If the brief requests a product comparison but provides no verified product information, producing polished prose is not progress. It creates material someone must investigate or delete later.

I ask for structured output containing the draft, its claims, source references and unresolved questions. OpenAI’s Structured Outputs documentation describes enforcing a supported output schema. I use that capability to make downstream checks predictable, not as evidence that the writing is accurate. A correctly shaped response can still contain an invented statistic or cite a source that does not support it.

I store the prompt version, model identifier, settings and source versions alongside each result. Those records make changes traceable without implying that rerunning a request will reproduce identical prose. I also label retrieved documents as reference material, not instructions. A sentence inside a source telling the system to ignore its rules should never acquire authority over the workflow.

Add automated checks for banned language

I run deterministic checks before asking another model for an opinion. Code is the better tool for prohibited strings, punctuation, required fields and length limits. I keep banned terms in a versioned configuration rather than burying them inside a long prompt. The prompt discourages mistakes; the validator decides whether those mistakes can pass.

Matching needs care. I normalise case, whitespace and equivalent apostrophe characters in a checking copy while preserving the original draft. Whole-word matching prevents a short banned term from catching part of an unrelated word. Phrase rules need tests for line breaks and repeated spaces. I check both structured fields and rendered copy, because formatting can introduce or conceal a violation.

A failure report should name the rule and locate the offending passage. I allow at most two repair attempts as an initial operating limit, then route the item to an editor. Unlimited retries waste money and can damage otherwise good writing. Every repaired draft goes through the complete check sequence again, not just the rule it previously failed.

Review brand voice and factual claims separately

I use a separate review pass for qualities that string matching cannot judge: unnecessary ceremony, sales pressure, vague advice and inconsistent perspective. The reviewer receives the voice specification and relevant examples. It must point to a passage and explain the mismatch. A low score without evidence is not useful feedback, even when it looks precise.

Factual review is a different gate. I require each externally checkable claim to map to an approved source passage, not merely a plausible link. Dates, prices, product capabilities and numerical outcomes deserve particular attention. If support is missing, the choices are to remove the claim, qualify it appropriately or request evidence. Rewriting it more confidently is never a repair.

I would initially require human review when either assessment is uncertain. Using the same model family for drafting and judging can leave shared blind spots, so I would not treat reviewer approval as independent proof. I also reject an aggregate quality score that lets excellent tone compensate for a false claim. Some failures must remain disqualifying.

Build a human approval gate before publishing

I give each item an explicit status: drafted, checks failed, ready for review, approved or published. Publication accepts only an approved revision. If an editor changes that revision, approval expires and the checks run again. Otherwise, a harmless-looking last-minute edit can add a prohibited phrase or unsupported promise after the controls have already finished.

Google’s People + ai guidebook addresses mental models, feedback, control and graceful failure. I apply those principles by showing the editor what was checked, what failed and what remains uncertain. The review screen should make the original sources accessible and allow rejection without wrestling with the automation. A green indicator should describe completed checks, not imply universal correctness.

I require explicit human sign-off for pricing, legal commitments, health claims and statements attributed to a person. If a review service times out, the draft stays unpublished. I would skip automatic scheduling at first. It saves little if editors still need to inspect every item, while increasing the consequences of a routing error or stale approval.

Measure brand voice quality before expanding automation

OpenAI’s evaluation guidance supports testing model behaviour against defined criteria rather than trusting a few impressive outputs. I would begin with 30 representative briefs covering routine work and awkward cases. These should include missing evidence, conflicting instructions, prohibited wording inside quotations and requests to invent a client result. This is a starting test set, not a statistically conclusive benchmark.

I measure prohibited-language escapes, unsupported claims, unnecessary rejections, repair attempts, editor time and cost per approved item. For voice, I compare automated decisions with editor judgements on the same drafts. A rising automated pass rate means little if editors keep rewriting the opening. I would also inspect disagreements, because the rule itself may be ambiguous or inappropriate for one channel.

I rerun the test set whenever the model, prompt, examples or rules change. My release condition would be no known hard-rule escapes in that set, with uncertain cases held for review. I keep the previous configuration available for rollback. Once the basic system works, I would improve the weakest gate before adding more channels or increasing publishing volume.

Questions people ask

How do I make ai content match my brand voice?

I provide explicit rules, annotated examples and a channel-specific brief. Then I check the output against those rules instead of assuming the prompt guarantees compliance.

Can I automatically block banned words in generated content?

I use deterministic matching with explicit rules for case, whitespace and word boundaries. I block publication when a match fails, including after an editor changes the draft.

Do I need fine-tuning for a consistent brand voice?

I would test instructions, examples and review gates first. I would consider fine-tuning only after evaluations reveal persistent patterns that justify the additional maintenance.

Can ai review its own writing before publishing?

I use model-based review for tone, but I don't treat it as independent verification. Factual support, hard-rule checks and approval still need separate controls.

Where I checked my thinking

Start a project