The GPT Researcher documentation page "Context Filter," rewritten on September 26, 2026 by its creator Assaf Elovic, describes the step that chooses, among the scraped pages, the passages the writer model will actually read. It presents this as the main lever on report quality after the research itself.

For each sub-query, pages are capped at 50,000 characters and split into 1,000-character chunks. The filter keeps at most ten chunks (twenty-five in keyword mode), then the sub-queries' contexts are joined and passed to the writer. Chat on an existing report reuses the same function.

Five modes are available. By default, GPT Researcher uses Jev, a TypeSafe model that doesn't generate text but answers typed questions with calibrated probabilities. Each chunk receives a usefulness score from 0 to 3 on a four-level scale; only chunks at 1.5 or above are kept. Calls go out in parallel, sixty-four at a time, for about 1.7 seconds of median filtering time and half a cent per report. Without a TypeSafe key, or on error, the system falls back to a pure-Python, dependency-free BM25 ranking that keeps chunks reaching half the top chunk's score. No setting leaves a run without context.

The benchmark replays 28 real tasks, 20 SimpleQA questions and 8 open-ended questions, on exactly the pages that were recorded, with the same writer model. Only the filter varies. Jev reaches 73% relevant passages against 46% for embeddings, and wins 15 head-to-heads against 3, with 10 ties, at the same cost. The BM25 fallback reaches 51% and wins 14 against 6, a result judged only directional. Without a filter, open-ended reports gain in scope, but cost 65% more on average.

Two findings structure the page. First, the threshold matters more than the ranking: without a threshold, Jev drops to 50% and BM25 loses to embeddings. Second, the gain is a noise reduction: Jev sends 4.5k tokens instead of 7.6k, for an equivalent amount of relevant text. SimpleQA, saturated at 18-20 out of 20, doesn't discriminate at all.

The page lists its limitations: 28 tasks, a single report type, writing and judging by the same model family. Collection, replay, and judging scripts are published, along with per-run metrics, so anyone can redo the measurement.