Models · For designers
Four Checks to Take Off a Person

The post that goes out with last month's price is never a failure of talent. It is a failure of the last five minutes, when somebody was meant to read it once more and did not, because there were eleven other posts.
Copy checking is the most automatable job in a marketing team and the least automated, because until recently the only options were a regular expression that catches nothing subtle or a language model that answers differently on Tuesday. A model released on September 15, 2026 answers a declared question with a typed value and a confidence number instead. Ciyo cannot run Jev — it makes no image and no video and is in neither of our model registries — but the four checks below are worth setting up whatever eventually runs them.
Why copy is the right thing to automate
This kind of model reads text and nothing else: TypeSafe's documentation states that what you send must be a string, a JSON object or an array of text values, and that images are not supported yet.
For most creative work that is a serious limit. For copy checking it is not a limit at all, because copy is already text. This is the one job in a studio where the model's boundary and the task's shape line up exactly.
So while a decision model cannot tell you whether your poster is good, it can tell you — every time, on every post, in under a second — whether the caption states a price, whether it uses a word legal struck out, and whether it carries the advert label you agreed to.
The four checks
Each of these is a separate question with its own declared answers. That matters: asking one combined question is measurably worse than asking four narrow ones, and the four are evaluated together against the same text anyway.

The claim check is the one that pays for itself
Everything else on the list protects you from embarrassment. This one protects you from a refund queue.
Do not ask whether a claim is true, because the model has no way to know. Ask whether the copy makes a checkable claim at all, and what kind. Then compare that answer with the facts you hold.
So: does this post state a price? Does it state a date or a time window? Does it promise a result? Does it name a discount? Four yes-or-no questions, answered in one call, and any post that answers yes goes to a human being with the relevant fact printed next to it. The model does not verify anything. It finds the sentences that need verifying, which is the part people skip.
questions: {
"states_a_price": { "type": "noul", "instructions": "The copy states a specific price or amount of money." },
"states_a_date": { "type": "noul", "instructions": "The copy states a date, a day, or a time window." },
"promises_a_result": { "type": "noul", "instructions": "The copy promises an outcome to the reader." },
"banned_wording": { "type": "noul", "instructions": "The copy uses any word on the forbidden list supplied in the state." },
"needs_ad_label": { "type": "noul", "instructions": "This is paid or sponsored content that requires a disclosure label." },
"tone": { "type": "score", "instructions": "How closely does this match our house voice?",
"criteria": ["off-brand", "passable", "on-brand", "exactly right"] }
}What a person still reads
The confidence value is what turns a checker into a workflow. TypeSafe publishes a routing pattern that ties the threshold to the cost of being wrong rather than to the model: below 0.6 goes to a person, above 0.6 is fine for cheap reversible actions, and anything expensive wants 0.85 or a confirmation step.
In a publishing queue that maps cleanly. Adding a tag is reversible, so a low bar is fine. Sending an email to forty thousand people is not, so it wants the high bar and a person's name against it.
Whatever numbers you choose, measure them on your own posts. The thresholds above are a documented starting point, not a finding about your brand.

The rubric is the real work
Three of the four checks are mechanical and take an afternoon. The tone check is not, and it is the one worth doing properly.
A score needs levels, and levels need definitions. “On-brand” is not a definition. “Uses contractions, addresses the reader as you, never uses superlatives, and never opens with a question” is one.
Write those definitions with whoever owns the brand voice, and expect the conversation to be uncomfortable. Most teams find out at this point that two people have been applying different rules for a year. That discovery is worth more than the automation, and it is yours even if you never run a single check.
| Check | Catches | Setup effort |
|---|---|---|
| Claim | The wrong price, last month's date, an unearned promise | An hour |
| Banned words | The word legal struck out and everybody forgot | Twenty minutes, plus the list |
| Disclosure | A paid post missing its advert label | An hour, plus knowing the rules for each channel |
| Tone | Copy that reads as a different brand | A day, most of it arguing about the rubric |
Before you put it in front of anything real
Take fifty posts you already published and label them yourself. Run the checks over those fifty and compare. That agreement rate is the only number that tells you anything; a vendor benchmark tells you about somebody else's task.
Then run it silently for a fortnight beside your existing process, and read what it flagged and what it did not. A checker that is wrong in a consistent direction is now wrong on every post rather than on a sample, and low cost makes that worse before it makes it better.
And declare an escape option on every choice you write. A pre-registered independent evaluation published on September 20, 2026 found that with no “none of these” available, none of thirty out-of-scope inputs were flagged — the model simply picked the nearest declared answer.
Copy checking questions
Can it tell me whether a claim is true?
No. It can tell you that the copy makes a claim, and what kind. Comparing that against the facts is still yours, but finding the sentences that need checking is the part people skip.
Is this better than a word list?
For banned words, barely. For tone, claims and disclosure it is a different thing entirely, because those need judgement rather than matching.
What threshold should I publish on?
The documented pattern uses 0.6 for cheap reversible actions and 0.85 for expensive ones. Measure your own curve on your own posts before trusting either number.
Does Ciyo run these checks?
No. Ciyo does not run Jev. Ciyo's agent can review a post against written criteria using GPT-6 Astra, which is a different kind of check: prose reasoning rather than a typed, repeatable value.
Keep reading
Ciyo writes about the models behind creative and agent tooling, and tests the ones it can run.