Put numbers on it. You are auditing a blog for how well it answers buyer questions about a product category. You have ten target queries, drawn the way buyers actually phrase things rather than in your internal jargon, which is the same principle a structured AI visibility audit follows when it builds a prompt library first in this seven-step audit framework. You have ten candidate pages, each about 1,500 tokens.
In the long-prompt approach you assemble one request holding all ten pages and all ten queries. That is about 15,000 tokens of page content plus a few hundred tokens of instructions and queries. The model now has to answer ten questions while watching a block of text roughly the size of a short book. For each query it must find the relevant passage among ten pages, but nothing in the prompt tells it which page matters. It has to infer that from the whole block, and inference over 100 query-page pairs is where errors creep in.
In the retrieval approach you chunk each page, embed the chunks, and store them. For each of the ten queries you retrieve the top three chunks, which at roughly 500 tokens per chunk means about 1,500 tokens of context per query. Ten queries at 1,500 tokens is about 15,000 tokens in total, spread across ten small, focused calls. The total is similar; the shape is completely different. Each call sees only what matters, and the model's job drops from finding a needle in ten pages to answering one question from three excerpts.
Now push the corpus to a hundred pages. The long prompt needs about 150,000 tokens, likely over the limit for many models and certainly past the quarter-window rule. The retrieval version stays at about 1,500 tokens per query; the only thing that grows is your index, built once. That is the scaling insight the first page of search results usually misses: retrieval does not make your audit cheaper per query, it makes the cost per query constant while the corpus grows. Constant beats cheap when you plan to rerun the audit every quarter.
A simple script shows the shape of the retrieval path:
# Build once: chunk pages, embed, store
chunks = [chunk for page in pages for chunk in split(page, size=500)]
index = embed_and_store(chunks)
# Per query: retrieve 3 relevant chunks, then ask
for query in queries:
context = index.search(query, top_k=3)
answer = model.ask(query, context=context)
results.append({"query": query, "answer": answer, "sources": context.sources})
The sources field is the quiet payoff. Every answer points back to the chunks it read, so when an audit finding looks wrong you can check the retrieval instead of guessing what the model did with a 15,000-token block.