Avoiding AI extraction mistake

Written by

in

The scenario

You hand an AI assistant a pile of documents and ask it to extract every instance of something — every clause, every open question, every requirement, every data point. It comes back fast with a clean, well-organized answer: grouped into categories, formatted nicely, confident in tone.

It looks complete. That’s the problem. Looking complete and being complete are two different properties, and nothing about a tidy answer tells you which one you got.

This happened to me. I asked for every question embedded across a set of reference documents — PDFs, spreadsheets, HTML files. The first answer was a curated list, organized into neat categories. It was missing real content. When I pushed, the second answer was better but still relied on the assistant’s memory of a document it had read earlier in the conversation, rather than re-checking the actual file. Only on the third pass did I get something that was actually verified: raw tool output, cross-checked by two independent methods, with the “nothing found” claims backed by an actual command and its actual output instead of a bare assertion.

Three passes to get a reliable answer to a question that should have been answered correctly on the first try. Here’s what I learned about why that happens and how to prevent it.

Why it happens

AI assistants are, by default, optimized to produce readable output. Given a pile of raw matches, the natural move is to group them, drop the noisy ones, and present a digest — because that’s what a helpful answer usually looks like. But “readable” and “exhaustive” pull in opposite directions. Every time a model decides something isn’t worth including, that’s a judgment call happening silently, inside an answer that doesn’t announce it made one.

There’s a second failure mode that’s easy to miss: in a long conversation, an assistant has “read” a document several turns ago and formed an impression of it. When you ask a follow-up question later, it’s often faster — and more natural — for the model to answer from that impression than to physically re-open and re-check the source. That impression can be wrong, incomplete, or just stale, and the answer built on it will still sound just as confident as one built on a fresh check. Confidence is generated by the same process regardless of whether verification actually happened underneath it.

Neither of these is the assistant lying to you. It’s the assistant doing what “help me find things in these documents” defaults to, absent more specific instructions about the standard of evidence you actually need.

The core lesson

A well-organized answer is not evidence that the underlying search was complete. Formatting quality and factual completeness are produced by different parts of the process, and a confident, tidy answer can be sitting on top of a shortcut you can’t see. If you need something to be actually exhaustive — not just plausible-looking — you have to ask for that explicitly, and ask for proof, not just the answer.

Concrete techniques

These are the specific instructions that turned an unreliable answer into a verified one, in order of how much they matter:

1. Force re-verification of the source, not memory. If a task depends on something being present (or absent) in a document, say so explicitly: “Check the actual file again — don’t rely on what you recall from earlier in this conversation.” This is the single highest-leverage instruction. The gap between “I remember the PDF had no relevant content” and “I just ran a search on the PDF and got zero matches” is enormous, and it’s invisible unless you ask for the second one specifically.

2. Ask for raw output before a summary. Request the underlying search results — file names, line numbers, exact matched text — before any categorization happens. This doesn’t mean you have to read all of it yourself. It means the assistant can’t quietly filter something out under the cover of a clean category, because the evidence is sitting right there for you to spot-check.

3. Require two independent methods to agree. One extraction pass has no way to catch its own blind spots — if a particular method misses something systematically, running it twice just gets you the same gap twice. Asking for a second, different method, and asking to see that their counts match, turns “trust me” into an actual check.

4. Demand that negative results be demonstrated, not asserted. “There’s nothing relevant in that document” and “here’s the exact command I ran and here’s its output showing zero matches” are different claims wearing the same sentence. For anything you’re going to rely on, ask for the second kind.

5. Ask for a count that has to reconcile with the final list. “Give me the total number of matches first, then the full list” creates a built-in self-check. If the count says there should be more items than what actually shows up in the final answer, that mismatch is a signal to look closer — and it’s much easier to verify a discrepancy in two numbers than to notice something is silently missing from a list.

When to bother with all this

Not every request needs this level of rigor, and asking for it every time would be exhausting for both sides. A casual question doesn’t need a verification protocol. But for anything you’re going to build on, cite, make a decision from, or hand to someone else as complete — a requirements extraction, a compliance check, a literature scan, a test-data set, an audit — it’s worth spending one extra sentence up front to ask for it, rather than discovering the gap after the fact.

The one-line version

If you only take one thing from this: the phrase “don’t rely on memory — go check the actual source and show me the raw result” does more work than almost anything else you can say. It’s the difference between an answer that sounds checked and one that actually was.