Anatomy of a ChatGPT Hotel Web Search — How LLMs Rank, Cite & Retrieve [Nov 2025]
This teardown shows, line by line, how a simple query — “best hotels in New York” — triggers a dual search system that fuses editorial authority (Condé Nast, TripAdvisor) with structured Google Maps entities. Each hotel is now a verified data object (an "Entity"), complete with Place ID (from Google, lol), rating, and coordinates.
AI and SEO expert at the forefront of AI Search. He analyses models daily and runs hospitality-focused experiments on a database of over 1M prompts, citations and mentions.
![Anatomy of a ChatGPT Hotel Web Search — How LLMs Rank, Cite & Retrieve [Nov 2025]](https://cdn.sanity.io/images/g4atoftp/production/d7dc579aef8546dadc6d2670f614c512787f5308-3446x1808.png?rect=0,43,3446,1723&w=1200&h=600)
Introduction
This document provides a full technical teardown of a GPT-5 live search "event stream" in November 2025, focusing on a user query:
“best hotels in NYC”
It reveals how the system processes intent, executes web and entity searches, fuses results from editorial and structured data sources, and renders final map-aware, just like a ... Google Map.
ChatGPT likely released on October 18th an update that we could call the "Entity" update, attempting to unify mentions ("XX" is actually the brand XX, "YY" is hotel YY). Profound speaks about it here.
Interestingly, we actually demonstrate that for hotels ChatGPT uses, bluntly ... Google Maps.
Fun fact: We actually do the same at Hotelrank, reconciling mentioned hotels with their Google Maps entity (but we did so way before October 18th :) ).
How can I see all this data?
- Go to your browser (not app) => https://chatgpt.com
- Open your developer tools (cmd+shift+I on Chrome and Mac)
- Perform the search "best hotels in New York" (or any search actually)
- Look at the "conversation" in Network => Fetch / XHR
- Look at the EventStream Response. You have all the lines.
- Sorry I'm lazy do it for me
- Ok just download this extension with Chrome: here
PHASE 1 — Initialization and Session Context (Lines 1–5)
event: delta_encoding
data: “v1”
- TECHNICAL ANALYSIS
- Protocol: Server-Sent Events using delta encoding (v1).
- Purpose: Enables incremental updates and efficient real-time streaming.
- Significance: Confirms the harmonized SSE pipeline seen in all modern GPT-5 search sessions.
- INSIGHT
- All ChatGPT search sessions now begin with delta_encoding:v1, confirming the start of the live-streaming pipeline.
System and User Message Creation (Lines 6–13)
data: {“message”:{“author”:{“role”:“system”}}, “metadata”:{“is_visually_hidden_from_conversation”:true}}
data: {“message”:{“author”:{“role”:“user”},“content”:{“parts”:[“Can you recommend hotels in New York?”]}}}
- TECHNICAL ANALYSIS
- The system message initializes context, hidden from the interface.
- The user message carries the natural-language query (weight = 1.0).
- Metadata includes request_id, turn_exchange_id, and timestamps.
- INSIGHT
GPT-5 logs each interaction as an event stream for latency tracking and diagnostic correlation.
PHASE 3 — Search Intent Classification (Lines 14–18)
“search_prob”: 0.972,
“complex_search_prob”: 0.022,
“no_search_prob”: 0.005,
“classifier_config_name”: “sonic_classifier_3cls_ev3”
- TECHNICAL ANALYSIS
- Classifier: sonic_classifier_3cls_ev3.
- Decision Source: Automatic classifier.
- Outcome: simple_search_prob = 97.2% triggers web.run.... which means a web search is run. There is some evidence that ChatGPT evaluates all these probabilities and DOESN'T perform a search if too low.
Empirically, we see that Web Searches are triggered a lot for hotels, probably because of the price and availability. - Complexity: Simple (2,2%, that's not a lot!)
- INSIGHT
- GPT-5’s three-class Sonic classifier distinguishes no-search, simple, and complex queries. This query is identified as a location-based search... which makes sense.
PHASE 4 — Web Search Execution (Lines 19–90)
“tool”: “web.run”,
“sonicberry_model_id”: “current_sonicberry_paid”,
“queries”: [“best hotels in New York”, “top hotels”]
- TECHNICAL ANALYSIS
- Search Tool: web.run => Searches on the Web
- Engine: sonicberry_paid (paid tier for prioritized crawling and entity enrichment) => Because I'm using my account in a Temp Chat. But it's the same for free tiers.
- One query (my prompt) becomes 2 search queries
- INSIGHT
This is important. ChatGPT actually performs a web search that transforms the initial query into 2 queries:- "best hotels in New York"
- "best hotels" (that's a bit too broad in my view ...)
These are called "fan-out queries", originally from Google (see here). This was seen this summer as evidence that ChatGPT was using the Google Index. But things are actually more complicated (see Ahrefs).
PHASE 5 — Search Result Aggregation (Lines 91–200)
Here is an excerpt of the different domains.
“domain”: “www.cntraveler.com”, “title”: “The 47 Best Hotels in New York City”
“domain”: “www.tripadvisor.com”, “title”: “THE 10 BEST Hotels in New York City 2025”
“domain”: “www.theplazany.com”, “title”: “The Plaza Hotel: Luxury Hotel Near Central Park”
“domain”: “www.reddit.com”, “title”: “Looking for the best hotel : r/FATTravel”
.....
- TECHNICAL ANALYSIS
- Results are grouped by domain, for deduplication
- Includes editorial, user-generated, OTAs (Online Travel Agencies) and direct brand sources.
- Some entries carry publication timestamps for freshness validation
- That's important, as it has been proven that LLMs favor recency (even if artificially done). See the research paper here.
- INSIGHT
- GPT-5 combines editorial authority (Condé Nast, ...) with verified hotel listings (TripAdvisor) and UGC (hello Reddit).
PHASE 6 — Response Generation Setup (Lines 201–230)
“message”:{“id”:“0ba68976…”,“status”:“in_progress”,“content”:{“parts”:[””]}}
“marker”: “user_visible_token”
- TECHNICAL ANALYSIS
- Creates assistant message container.
- The first visible token indicates start of live text emission.
- URL safety moderation runs asynchronously before each block of text.
- INSIGHT
- Safety gating occurs inline, ensuring only policy-compliant URLs are displayed in final responses.
But I guess no one cares about that part.
PHASE 7 — Entity-Aware Content Generation (Lines 231–700)
Example 1 — The Plaza, New York
“entity_data”: {
“id”: “ChIJYaVdffBYwokRnTOoCzCq9mE”,
“address”: “768 5th Ave, New York NY 10019”,
“rating”: 4.5,
“review_count”: 6767,
“price_str”: “$1,687”
}
Example 2 — Four Seasons Hotel New York Downtown
RAW DATA
“entity_data”: {
“id”: “ChIJiz9V4xhawokRorqq7eXaNxM”,
“address”: “27 Barclay St, New York NY 10007”,
“rating”: 4.7,
“review_count”: 1275,
“price_str”: “$1,892”
}
Example 3 — The Langham, New York, Fifth Avenue
RAW DATA
“entity_data”: {
“id”: “ChIJMYIE-KlZwokRt7ks1WKMXNU”,
“address”: “400 5th Ave, New York NY 10018”,
“rating”: 4.6,
“review_count”: 1695,
“price_str”: “$1,050”
}
- TECHNICAL ANALYSIS
- Entity type: local_business (hotel)
- Includes verified address, geo ID, reviews, and pricing
- Ranking is likely influenced by reviews too
- Visual data comes from both publisher and brand sources.
- Safe URLs validated (theplazany.com)
- INSIGHT
GPT-5 now produces entity-grounded hotel cards with verified metadata and visuals, similar to Knowledge Graph panels. And look at that id... it's the Google Place ID !!
PHASE 8 — Map and Multi-Entity Synthesis
“entities”: [
{“name”:“The Plaza”,“latitude”:40.7646,“longitude”:-73.9743},
{“name”:“Four Seasons Hotel New York Downtown”,“latitude”:40.7126,“longitude”:-74.0091},
{“name”:“The Langham, New York, Fifth Avenue”,“latitude”:40.7501,“longitude”:-73.9837}
]
- TECHNICAL ANALYSIS
- Entities are merged into a unified geospatial layer.
- Coordinates ARE Google Maps identifiers.
- Generates user-accessible map or route links dynamically.
- INSIGHT
- This confirms GPT-5’s geospatial awareness, integrating map intelligence directly.
PHASE 9 — Response Finalization
“status”: “finished_successfully”
“message_stream_complete”: true
- TECHNICAL ANALYSIS
- Closes delta stream.
- Consolidates citation and attribution metadata.
- Ensures all moderation checks are complete.
- INSIGHT
Each hotel mention concludes with verifiable source attribution and clean content metadata.
GEO and Data Strategy Takeaways
1. Entity GEO is now more important than keyword GEO.
This means that your online presence is key. Have you checked your hotel Google My Business recently?
2. Live business metadata such as price and reviews influence ranking.
The more reviews you have, the more mentions (I will showcase some data in another article). Are you pushing for reviews from guests?
3. Citation compression merges multiple verified mentions.
But you can also understand which sources, not available directly inside the interface of ChatGPT, influenced this decision. Hotelrank helps you surface these.
4. ChatGPT is becoming a map
But this was already our first ever blog post.
