The Most Comprehensive Publicly Available Query Fan-Out Data You Can Extract From ChatGPT

Date Written: 6/12/2026
Last Updated: 6/12/2026
Written By: Nicolas Garfinkel

When ChatGPT answers a question using web search, it generates multiple search queries from your prompt (the "fan-out"), retrieves a pool of results, and cites a small subset of them in the final answer. The ChatGPT interface shows you the citations. It does not show you the fan-out queries, the full retrieval pool, or which retrieved results were passed over.

That data exists, and it is more complete than anything available from third-party AI-visibility tools, which work by inference, re-running prompts at scale and observing outputs. This is the actual record of a real conversation: every query the model generated, all 90 results it retrieved, and the 18 it cited.

I built a userscript that extracts it from any ChatGPT conversation in your own account and produces a CSV (33 columns per result) plus a formatted report. This post documents what the data contains, findings from a real audit, and how it works.

Want access to this tool? It's not publicly listed - but I am sharing the GitHub repository freely to people who reach out. Schedule a call, message me on LinkedIn, or email [email protected] and I'll get you set up.

Prefer video? Here is a full walkthrough:

Report header and At a Glance stats: 90 results retrieved, 18 cited, 20% cite rate, 40 unique domains


The test case

Prompt: "my wife got injured at the dentist. I want to hire a personal injury lawyer in the greater seattle area. can you give…", a high-intent, in-market consumer query. Focus domain for the audit: an established Seattle personal injury firm.

What the export captured:

Metric Value
Fan-out queries generated 6
Results retrieved 90
Unique domains retrieved 40
Results cited 18 (20% cite rate)
URLs carrying utm_source=chatgpt 53%
Focus domain retrievals 0

The structural point this data makes concrete: AI visibility has two gates. A page must first be retrieved (pulled into the model's working set), then cited (used in the answer). "Did ChatGPT mention us" collapses both into one question; the diagnosis and remediation differ depending on which gate fails. This dataset lets you measure each gate separately.


Finding 1: Zero retrievals for an established local firm

The script prompts for a focus domain before export and builds a dedicated section showing every retrieval and citation for that domain.

Your Domain section showing the focus firm appeared in zero of 90 retrieved results

Result: the firm appeared in 0 of 90 retrieved results for a directly relevant query in its own metro. This is a retrieval-gate failure, not a citation-gate failure, the model never saw the site, so no amount of on-page optimization for citation would have mattered. Google rankings did not predict this outcome; ChatGPT's retrieval is a different system with different winners, and this is measurable per query.

For agency work, this is the most direct evidence you can put in front of a prospect: a count, not an interpretation.


Finding 2: The model embedded brand names in its own search queries

The six fan-out queries the model generated:

The six fan-out queries ChatGPT generated, including one naming specific law firms

Five are predictable reformulations: Seattle dental malpractice lawyer variants, a Washington State Bar lookup, a statute-of-limitations query. The sixth:

"Washington dental malpractice attorney Seattle Scott Hughes SGB medical malpractice Colburn Law"

The model named specific attorneys and firms in the query itself. It did not discover Schroeter Goldmark & Bender, Scott Hughes, or Colburn Law via search; it searched to verify and source entities it already held from training data. All three were cited in the final answer.

Implication: a portion of AI search visibility is possibly determined before retrieval happens, by whether the brand exists in the model's prior knowledge strongly enough to be queried by name. That is a function of earned media, reviews, and sustained entity presence.

Secondary use: fan-out queries are model-generated keyword expansion. One of the six here (the RCW statute query) identifies a content category covered below.


Finding 3: Directories were retrieved repeatedly and cited zero times

Domain leaderboard: wsba.org with 17 retrievals and 3 citations; hughesinjury.com 4-for-4

Citation performance by domain type in this conversation:

Domain Retrieved Cited Cite rate
wsba.org (state bar) 17 3 18%
lawinfo.com, lawyers.com, martindale.com, justia.com, legalmatch.com (directories, combined) 10 0 0%
sgb-law.com (firm site) 6 4 67%
hughesinjury.com (solo attorney site) 4 4 100%
app.leg.wa.gov (statute text) 3 3 100%

Legal directories rank on page one of Google for these queries and have for years. ChatGPT retrieved them and cited none. The pattern is consistent with how answer composition works: a directory listing page ("Compare 16 local law firms") contains nothing quotable: no named entity, no specific claim, no fact. A firm's own page stating who they are, what they handle, and where, supplies citable material directly.

If you're struggling to get cited, this pattern is worth a close look. More research is needed on whether directory listings affect the citation rates of your own site, but across the conversations I've pulled, I often don't see many directory sites being cited, even though they routinely show up in the result set. Directories may still matter for entity reinforcement (Finding 2), but in this data they are not converting to citations.


Finding 4: Exact-intent title phrases cited at 5× the baseline

The export runs an n-gram analysis: bi/tri-grams from result titles and snippets, split by cited vs. uncited results, with a cite-lift multiplier against the conversation's overall 20% cite rate.

N-gram table from titles: dental malpractice attorney Bellevue phrases at 5.0× cite lift

Title phrase Cited Uncited Lift
dental malpractice attorney 2 0 5.0×
attorney bellevue wa 4 0 5.0×
seattle medical malpractice 5 6 2.3×
medical malpractice 8 24 1.3×
personal injury 3 8 1.4×

Note the vocabulary shift: the user wrote "personal injury lawyer"; the model reformulated to dental malpractice and medical malpractice. Titles matching the reformulated vocabulary cited at 100%; titles using the user's original vocabulary ("personal injury") barely exceeded baseline. The 4-for-4 domain in Finding 3 has "Medical Malpractice & Dental Malpractice Attorney | Bellevue, WA" in its title tag.

Practical reading: optimize titles against the model's reformulated queries (which the fan-out data gives you), not only against the user-facing keyword.

Caveat, which the tool itself displays: this is one conversation, n-grams measure lexical correlation in a small sample, and repeated citations of a single page inflate its phrases. Treat as hypothesis generation for testing, not as established weighting.


Finding 5: Statutory content cited at 100%

app.leg.wa.gov (raw text of RCW 4.16.350 and Chapter 7.70) went 3-for-3 on citations. Firm-authored statute-of-limitations explainers were also retrieved and cited. One entire fan-out query was devoted to the statute of limitations, for a prompt that never asked about deadlines.

The model was assembling a complete answer: candidate firms, a referral path through the bar association, and the filing deadline. Content that explains the governing statute is a citation surface in its own right; the firm that owns the clearest version of "how long do I have to file a dental malpractice claim in Washington" gets cited as an authority alongside whatever firms get listed.


What the export contains

Per conversation, one click produces:

  • Summary stats, retrievals, citations, cite rate, unique domains, active-branch vs. regenerated results, and share of URLs carrying utm_source=chatgpt (53% here; this parameter is segmentable in GA4)
  • Focus-domain section, retrieval/citation counts, share of retrievals, and the exact snippets ChatGPT extracted from your pages (these snippets are the literal text the model works with; weak snippets generally trace to weak page intros and meta descriptions), or a zero-visibility callout
  • URL source breakdown, owned sites vs. review aggregators vs. directories vs. Maps/YouTube/Reddit, each with its own cite rate
  • N-gram analysis, phrases over-indexing in cited results, from titles and from snippets, with cite lift
  • Query fan-out, every search query the model generated
  • Domain leaderboard, all domains by retrieval count, expandable to individual URLs with citation flags
  • Full results table, all rows grouped by search turn, with each turn's queries and per-result cited/utm/focus-domain flags

Full results table grouped by search turn, with fan-out queries in headers and per-result citation flags

Plus the CSV (33 columns per result), an optional AI-enrichment pass that extracts entity names, star ratings, review counts, and price signals from snippets, and a Save-as-PDF button for client deliverables.


How it works

The tool is a userscript. It runs entirely in your own browser, on conversations in your own ChatGPT account. No data is sent to me or any third party.

  1. Install Tampermonkey (Chrome, Edge, Firefox, Safari) or Violentmonkey.
  2. Tampermonkey icon → Create a new script → paste the script → save.
  3. Open any ChatGPT conversation that used web search. A floating "↓ AI Search export" button appears bottom-right.
  4. Click it. First run prompts for your focus domain (changeable later via the Tampermonkey menu). CSV downloads; report opens in a new tab; ⎙ Save as PDF for the client version.

Optional enrichment: Tampermonkey menu → 🔑 Set OpenAI key. The key is stored locally and sent only to api.openai.com; a typical conversation costs pennies. Use a spend-capped key.


Suggested workflow

  1. Define 5–10 high-intent prompts a real buyer in the category would type, conversational phrasing, not keyword-speak ("my wife got injured at the dentist," not "dental malpractice lawyer Seattle").
  2. Run each fresh and export. Note which prompts trigger web search at all.
  3. Read the focus-domain section first; a retrieval count of zero reframes the entire engagement.
  4. Mine fan-out queries for the model's vocabulary and for content gaps (e.g., the statute query).
  5. Compare the domain leaderboard against Google rankings; the citation winners are frequently different.
  6. Use the n-gram tables to rewrite title tags and page intros against the model's reformulated vocabulary, then re-run the prompt set later and diff the CSVs.

Limitations

  • Results are grouped by search turn, not individual query; each turn's results are merged in the underlying data, so per-query attribution is not possible. Any tool claiming query-level result mapping for ChatGPT is inferring it.
  • "Cited" is a proxy for "used." There is no separate read/consult signal in the data.
  • One conversation is a snapshot. Results vary by session, location, and model routing; run repeated exports before drawing conclusions.
  • N-gram output is lexical correlation, not causal weighting.

Get access to the tool

If you're interested in getting access to this tool, or in having this audit run across your category's buyer prompts, reach out. Schedule a call, connect on LinkedIn, or email [email protected].

Nicolas Garfinkel

Written by

Nicolas Garfinkel

Founder & CEO

Nicolas is the founder of Mindful Conversion, specializing in analytics and growth.