Last updated: September 2026
Detect AI-written posts with Jev
One Noul question, a rubric that names the actual tells, and a threshold chosen from what happens next. It returns a float from 0 to 1, and TypeSafe's published input price makes it a rounding error per post.
This is the rubric behind the free scorer below. You can try it without writing any code at /tools/ai-slop-score.
Why this is a Noul
Reading as machine written is a property a post either has or does not, and it is independent of everything else you might ask. It is not a rung on a ladder, so it is not a Score. It is not one option among mutually exclusive categories, so it is not a Choice. It is a Noul, and a Noul returns exactly one float from 0 to 1.
A Noul has no confidence field
The float is the probability. Several published Jev write-ups show a Noul response with a separate confidence value. It does not exist in the API. Only Choice and Score return aconfidence field.The rubric
A Noul takes an optional pair of descriptions telling the model what true and false look like. This is where most of the quality of the answer comes from. A bare question like "is this AI written" gets you a vibe. Naming the tells gets you something you can threshold.
slop: noul('This reads like it was generated by an AI rather than written by a person.', {
true: 'Em dashes, triadic lists, "it is not just X, it is Y", uniformly long sentences, words like delve or landscape.',
false: 'Uneven rhythm, specific detail, an identifiable voice.',
}),Both sides matter. Describing only the positive case pushes the model toward flagging anything tidy. Giving it a picture of human writing as well is what keeps a well edited post from scoring like a generated one.
What the rubric is looking for
And what pulls the score back down
Calling it
Jev takes a state and a map of questions and answers them in one parallel pass. Asking for slop alone costs the same round trip as asking for six more things, so in practice you bundle.
import { TypeSafeClient, noul } from '@typesafe-ai/sdk';
const client = new TypeSafeClient({ timeout: 4000 });
const { answers } = await client.systemOne({
state: { post: draft, platform: 'X (Twitter)' },
questions: {
slop: noul('This reads like it was generated by an AI rather than written by a person.', {
true: 'Em dashes, triadic lists, "it is not just X, it is Y", uniformly long sentences, words like delve or landscape.',
false: 'Uneven rhythm, specific detail, an identifiable voice.',
}),
},
});
// answers.slop.noul is a float from 0 to 1. There is no answers.slop.confidence.
if (answers.slop.noul > 0.5) {
warnTheAuthor();
}Set TYPESAFE_API_KEY in your environment and the SDK picks it up. Routes that do not have a direct key can reach the same model through Vercel AI Gateway or OpenRouter, covered in getting Jev API access.
Where this gets it wrong
Worth being blunt about, because the pages selling AI detection usually are not.
- It scores register, not origin. A careful human writer who likes parallel structure and long sentences will score high. The rubric cannot tell discipline from generation.
- Short text is thin evidence. A twelve word post does not contain enough rhythm to judge. Treat anything under a couple of sentences as unscoreable rather than clean.
- Editing defeats it. A generated draft that a person has rewritten is, for stylistic purposes, human writing. That is arguably the correct answer, but it is not the one people expect from a detector.
- Non-native English scores high. Simpler, more uniform sentence construction reads as generated to a rubric built on rhythm. This is the failure mode most likely to be unfair to a real person.
Do not use this as evidence against someone
A probability about writing style is a useful filter for your own drafts and a reasonable input to a moderation queue. It is not proof of authorship, and no threshold makes it proof. Route high scores to a human, never to an automatic penalty.Frequently asked questions
Can Jev detect AI-written text?
Jev can score how strongly a piece of text reads as machine written, returned as a Noul float from 0 to 1. That is a probability about style, not a forensic determination of authorship. No detector, Jev included, can prove who or what wrote a passage.
What does a Noul return for this question?
A single float from 0 to 1. There is no separate confidence field on a Noul, because the float is already the probability. Only Choice and Score questions return a confidence value.
What threshold should I use for AI-slop detection?
It depends on what happens next. Surfacing a soft warning to the author is cheap to get wrong, so a bar around 0.5 is reasonable. Blocking or hiding someone else content is expensive to get wrong, so that needs a much higher bar plus human review.
Why do human writers get flagged as AI?
Because the rubric scores register, not origin. Plenty of people naturally write in tidy parallel structures with long uniform sentences. They will score high. That is the honest limitation of every stylistic detector and the reason this should never be used as evidence against a person.
Is there a free tool to check a post?
Yes. There are two free scorers: /tools/ai-slop-score, and /tools/will-it-go-viral which includes an AI-slop Noul among seven questions. Neither needs an account.
Keep exploring
Free scorers you can run now, and the rest of the Jev cluster.
AI Slop Score
Free scorer. Paste a post, see how machine written it reads.
Will It Go Viral
Seven Jev questions on one draft, AI-slop among them.
Building a post scorer on Jev
The seven-question design behind both tools.
Choice, Score and Noul
Why this is a Noul and not a Score.
Setting a confidence threshold
How to pick the number you act on.
Check a post before it goes out
Both scorers are free and need no account. When you are ready to schedule and publish what survives, that is what the rest of OpenTweet does.
7-day free trial. Cancel anytime.