VerifAI Scan · engine v4.2

AI-generated text detector

Upload a document and our engine estimates the probability it was written by an AI. Private analysis: processing happens on your device.

How it really works

Why this page proves something

It looks like a product: you upload a file, watch a progress bar, and get a report with its percentage. But it analyzes nothing. The file is never read and never leaves your browser, the delay is artificial (and longer for a bigger file, so it seems to be working hard), and the verdict comes from a random number generator.

That's exactly the article's point: if you can't audit the process, you have no way to tell a real analysis from this. An online black box could hand you this very report and you wouldn't notice the difference.

And to be fair: maybe a real service does have an actual language model behind it. I'm not denying that. But that doesn't save it, because current evidence tells us an LLM is a non-deterministic entity (the same input can yield different verdicts on each run) and unviable for this kind of analysis. A genuine model on the other end doesn't turn its output into a reliable measurement.

The entire “engine,” uncut, is this:

// Looks like a real detector endpoint. It claims to analyze your document...
async function analyze(file: File): Promise<Report> {
  // ...but it never reads the file. It just waits, scaled to the size,
  // so a bigger upload "feels" like more work was done.
  await waitProportionalTo(file.size);

  // And the verdict? Pure chance.
  const aiProbability = Math.round(Math.random() * 100);
  return {
    aiProbability,
    verdict: aiProbability >= 65 ? "likely AI" : "likely human",
    confidence: 50 + Math.round(Math.random() * 49),
  };
}
Read the article: AI as an evaluator →