Search for how to detect AI hallucinations and Google hands you eight detectors and no usable answer.
Those tools measure whether the text looks machine-written. An article can read perfectly human and still carry three statistics nobody ever measured.
We measured this inside seodraft. I wrote a draft on invented numbers and it scored 1.89 out of 2 on brand voice, almost identical to one built on real data. Below is what we did, what it costs, and the wiring mistake that cost me an afternoon.
- Detectors answer a question that misses the point
- Empty drafts can still score high on brand voice
- A rule that counts words cannot see a synonym
- What we added and where it reads
- Why none of it blocks your draft
- The mistake we made wiring it up
- What to check in your next draft
Detectors answer a question that misses the point
A detector tells you whether a text looks machine-written, which leaves the ownership of every figure untouched.
When we searched it while drafting this post, the first eight Google results were detection tools. They all answer the same thing.
Your reader is asking something else: where did this number come from? An article with invented figures fails that question, whoever typed it.
We already wrote about why asking an agent to sound human fixes nothing. This is the practical sequel. If you want a quick pass on filler and empty phrasing before the deeper check, try the free AI slop checker.
Empty drafts can still score high on brand voice
I wrote a draft on invented numbers and it scored 1.89 out of 2 on brand voice, almost the same as one built on measured data.
The draft was engineered to pass our rules: no banned phrases, every H2 opening with its answer, three numbers spread through it. All three numbers were made up.
The rigged draft scored 1.89 out of 2 on brand voice and 0.04 on first-hand facts, against 1.91 and 0.63 for the real one.
On voice they tie. On ownership of the facts there is a sixteenfold gap.
That changed what we ask. The useful question is whose the data is.
A rule that counts words cannot see a synonym
Our cannibalization check compared word sets and scored 0.00 between two topics that are the same article.
The word-overlap check scored 0.00 between "errores al implementar un CRM en una clínica" and "fallas frecuentes al poner un sistema de gestión en un consultorio".
Same article. Not one content word shared. The blocking threshold sat at 0.70, so that pair walked straight through.
seodraft promises cannibalization never gets a rephrase workaround. Rephrasing was the workaround.
We found it by running five reworded pairs through the old check. Every one landed at or under 0.40, and three scored exactly zero.
What we added and where it reads
We added a classifier that answers typed questions with a probability, and put it in four places code cannot reach.
It generates nothing. You send it a draft or a list of topics plus a question you wrote, and it answers with a number between 0 and 1. It writes no prose.
The classifier caught that pair at 0.97, and seodraft's own reference article scored 0.90 on first-hand facts.
The four places: a new topic against the ones you have, a draft against the brief your agent wrote first, every piece entering the evidence bank, and the business profile once you call it complete.
In the evidence bank, the pieces it read as anyone's facts rise to the top of the queue with a label saying so.
Having the classifier read a whole 1,141-word article costs 0.0001 dollars, against 0.004 for one DataForSEO SERP lookup. A thousand reads cost less than two lookups.
Why none of it blocks your draft
Deterministic rules still decide the verdict alone, because a draft that passed yesterday cannot fail today.
seodraft stores the last rules result and re-checks it when you approve. If a probability could block, the same text would answer differently two days running.
So the classifier only adds advisories. It never raises an error. The final call on each claim stays with a person, the split we cover in human approval of AI content.
There is a second reason, duller. If the API goes down or you run without a key, every check returns nothing and the product works exactly as before. We tested it with the key deleted, with a 429 and with a dead socket.
This sits on the same line of thinking that led us to kill most of the web UI: whatever the user has to be able to explain, code decides.
The mistake we made wiring it up
We listed the new topics among the stored ones and the classifier stopped catching anything at all.
While wiring it up we sent the new topics inside the list of stored ones, and the classifier answered "none" with 0.95 confidence because it read every new topic as already filed.
It was right. The topic was sitting there in the stored list, and its own row was not among the options we offered.
We split the two sets, so a new topic reads as new. The same pair went from "none" at 0.95 to caught at 0.99, and the unrelated topics we tested alongside it stayed clear.
What to check in your next draft
Look at the numbers first: if your business did not measure them, replace them before touching a word of style.
A number with no owner is the one failure no formatting rule can see. A stock phrase is fixed by rewriting. An invented figure is fixed by deleting it. The rest of the review, line by line, is in our AI content quality checklist.
The concrete step is in your workspace. Open Profile, expand the evidence bank, and read the pieces flagged at the top of the queue: those are the ones the classifier read as anyone's facts.
If you have not tried it yet, connect your agent (Claude, Cursor, or ChatGPT on Business, Enterprise or Edu) to seodraft and ask for a draft. The 7-day trial is enough to see the difference between an article that follows the rules and one that also says something only you know.
