# AI content QA for agencies and content teams: score every draft · ScriptGrain

> An AI content QA pass for agencies and content teams, built from tools that already exist: a voice-match threshold against the client's profile, a count of the AI tells, and drift across writers. What each check catches, and what no score can.

Canonical: https://scriptgrain.com/us/ai-content-qa

# AI content QA: a voice and quality check for every draft before it ships

*By Jack Stovell [X](https://x.com/StovBuilds) · [Instagram](https://www.instagram.com/stovbuilds) · [LinkedIn](https://www.linkedin.com/in/jackstovell/) · published 2026-10-16*

AI content QA means checking every draft against the client's measured voice, counting the AI tells, and watching drift across writers, before it ships. All three checks exist today. No new tooling, no invented process. Just three questions asked of every draft, in order, before it goes anywhere near a client.

Paste the client's reference piece and a draft into the free check below. It needs no account and stores nothing you paste, and it renders right after this paragraph so you can try it on whatever you're worried about right now.

## What an AI content QA pass checks

A style guide tells a writer what tone to aim for. It doesn't tell you whether they hit it. That's the gap QA closes, and it's really three separate checks stacked on top of each other.

First: does this specific draft match the client's measured voice, numerically, not by vibes. Second: does it read like it was written by a person, or does it carry the tells that flag it as AI-generated. Third: if you've got more than one writer on the account, are they converging on the same voice or drifting apart from each other.

A style guide alone catches none of these reliably. It's a description of intent. QA is a measurement of output. A writer can follow a style guide to the letter and still score off voice against the client's actual profile, because "friendly but professional" means something different to every human who reads it. Numbers don't have that problem.

## Check one: voice match against the profile

Every draft gets scored 0 to 1 against the client's profile, built from three or more pieces of their own published writing (about 3,000 words), or from their public site with consent.

The default pass mark is 0.85, set out in the [brand voice guidelines template](https://scriptgrain.com/reference/brand-voice-guidelines-template). That's the threshold a draft needs to clear before it counts as on voice. Some clients need a lower bar; if their own writing varies a lot piece to piece, holding every draft to 0.85 is holding it to a standard the client doesn't hit themselves.

On-voice drafts typically land 0.85 to 0.95. Partial matches sit at 0.5 to 0.8. Anything under 0.45 is a different voice wearing the client's name. The score comes with named differences, not just a number: sentence length and variance, contractions, comma density, pronoun mix, formality, humor register, confidence versus hedging, and more, each one flagged where the draft departs from the profile.

Polish (1 credit up to 5,000 words) revises toward 0.9 by default and costs nothing if the draft already passes. So the workflow is blunt: score it, read the deltas, polish if needed, ship once it clears the bar.

## Check two: the AI tells

Voice match tells you whether a draft sounds like the client. It doesn't tell you whether it sounds like a machine wrote it. That's a separate check, and it matters because a draft can be perfectly on-brand and still riddled with the phrasing that makes readers twitch.

The scan counts thirty listed phrases and ten sentence shapes; density is phrase hits plus the first six shapes, per 1,000 words. Clean is under 1 per 1,000. Some is 1 to 3. Heavy is over 3. Against a reference corpus of 299 human pieces, the median density is 0.4 per 1,000, the 90th percentile 1.6, the 95th 2.4. So "some" tells aren't automatically a problem; even solidly human writing carries a few. Heavy is the number that should worry you.

Em dashes and the three rhythm meters (a uniform sentence band, no short sentences, no contractions) get reported separately, because human prose trips them too often for a count to mean much on its own. They still matter: a piece can avoid every listed cliché and still read as machine-smoothed if every sentence lands in the same narrow length band.

Run the [AI slop checker](https://scriptgrain.com/us/tools/ai-slop-checker) on anything you're unsure about. It's free, browser-based, no signup.

## Check three: drift across writers

Here's a problem a single-draft score can't catch: five writers, one client, five slightly different voices, none of them individually flagged, but the client's content slowly stops sounding like one thing.

Drift is measured by scoring each writer's recent pieces against the same reference and looking at the spread. Tight spread, writers converging. Wide spread, writers drifting apart, even if every individual piece technically clears 0.85.

Two free tools do this without an account. The [multi-client voice drift check](https://scriptgrain.com/us/tools/multi-client-voice-drift-check) takes one client reference plus up to three recent pieces. The [brand voice consistency checker](https://scriptgrain.com/us/tools/brand-voice-consistency-checker) takes one main piece plus up to three others. Both run on the same pairwise bands, so a result from one reads consistently against the other.

And to be fair, this check only matters once more than one person writes for the client. The more writers on an account, the more chances for drift, whether anyone has noticed yet or not.

## Running QA at team scale

At team scale, the checks move closer to the drafting itself.

Every generated draft carries a voice-match score. The voice monitor scores a profile's live pages once a month and emails the movement: 5 pages on Writer and Operator, 15 on Studio, 50 on Agency. Studio includes 3 seats and 10 profiles. Agency includes 10 seats, unlimited profiles, and per-member credit caps, so one enthusiastic writer can't burn through the whole team's budget in a week.

For pipelines, the API and MCP server let you gate a draft before it ships, scoring it inside the workflow rather than after the fact (`POST /v1/voice-match` or `check_voice_match`, free; `POST /v1/compare-voice`, free). That's the difference between QA as a final review step and QA as a checkpoint nothing gets past without clearing. See [ScriptGrain for agencies](https://scriptgrain.com/us/for-agencies) for how the seats and profiles map onto a team.

## What QA by number cannot catch

None of this reads for accuracy. A draft can score 0.94 on voice, come back clean on tells, and still contain a wrong fact, an unsupported claim, or wording that's fine stylistically and a genuine problem legally.

Scoring can't tell you whether the argument is good, either. It measures how something is said, not whether it should be said, or whether it's true. That part still needs a human editor who actually reads the thing.

So the honest way to describe QA by number: it's the filter that catches the mechanical problems before a human's time gets spent on the piece at all. It doesn't replace the read. It just means the read starts from a draft that's already on voice, already clean of the obvious tells, and already flagged for drift if any exists. Fair enough trade, at the end of the day.

## Questions

### What counts as an on voice score?

0.85 against the client's profile is the default pass mark, set in the brand voice guidelines template. On-voice drafts typically land 0.85 to 0.95. Some clients need a lower threshold if their own published writing varies significantly piece to piece; holding every draft to a fixed number that the client themselves doesn't consistently hit isn't a useful bar.

### How is a client's voice profile built?

From the client's own published writing: three or more pieces, roughly 3,000 words total, or from their public site with consent (ScriptGrain calls this brand mimic). The profile is read live by the scoring engine each time, not exported as a static prompt. That's what lets the same profile score drafts consistently across different writers and different months.

### What's the difference between voice match and the AI tells check?

Voice match asks whether a draft sounds like this specific client. The tells check asks whether it sounds like a machine wrote it at all, regardless of client. A draft can pass one and fail the other: perfectly on-brand phrasing that still carries heavy AI cliché density, or clean human-sounding prose that simply isn't this client's voice.

### How do you catch drift across a team of writers?

Score each writer's recent pieces against the same client reference and look at the spread between their scores. A tight spread means the team is converging on one voice. A wide spread means they're drifting apart, even where every individual draft clears the pass mark on its own. The multi-client voice drift check and the brand voice consistency checker both do this for free.

### Does passing QA mean the draft is ready to publish?

No. Voice match and the tells check are mechanical filters; they don't read for facts, claims, regulated wording, or whether the argument actually holds up. A draft can score well on every number and still need a human editor to check it's saying something true and something worth saying. QA by number narrows the job. It doesn't finish it.
