Inside ChatGPT's Hotel Search Engine
What actually happens when someone asks ChatGPT βbest boutique hotel Parisβ? A deep dive into 12 systems, 7 data providers, and 424 A/B tests that decide which hotel gets recommended.
The Short Version
ChatGPT doesn't βknowβ hotels. When you ask it for a recommendation, it triggers a complex pipeline of web searches, entity lookups, and result fusion. Here's what we found.
Nearly all hotel data in ChatGPT flows through Google infrastructure β via SerpAPI, Google Places, and Google Shopping. ChatGPT's hotel knowledge is fundamentally Google's hotel knowledge.
When ChatGPT mentions a hotel, 89% of the time it links it to a Google Place ID. Hotels without a Place ID are effectively invisible to the entity system.
A single hotel query triggers an average of 5.3 parallel searches across different providers. Being present across multiple sources amplifies your RRF fusion score.
The Sonic Classifier: Search or No Search?
Before anything happens, ChatGPT runs a probabilistic classifier called Sonic to decide whether your query requires a web search. It outputs a confidence score and compares it to a threshold (typically ~65%). If the score exceeds the threshold, web search is triggered.
// Example: "Best boutique hotel Paris"
sonic_classifier: {
search_probability: 0.9421, // 94.2% confidence
threshold: 0.65, // needs >65% to trigger
decision: "SEARCH_TRIGGERED", // β web search activated
latency_ms: 196,
model: "sonic_classifier_3cls_ev3"
}Search Trigger Rate by Hotel Query Type
Hotel Query Search Trigger Examples
| Query | Triggered? | Confidence | Why |
|---|---|---|---|
| Best boutique hotel Paris | 94% | Location + category + recency | |
| Hotels near Eiffel Tower | 98% | Local + current availability | |
| Pet-friendly hotels Barcelona | 87% | Filter + location + current | |
| Hotel Marais Paris tonight | 99% | Availability = always search | |
| Best hotel NYC for honeymoon | 76% | Persona + location | |
| What is a boutique hotel? | 12% | Definitional β training data sufficient |
Hotel queries almost always trigger web search. They're inherently local, time-sensitive, and require current data (pricing, availability, reviews). The Sonic Classifier has learned that hotel recommendations from training data alone would be outdated and unreliable.
Query Classification: What Kind of Search?
Once search is triggered, ChatGPT classifies your query using boolean flags that determine which data pipelines to activate. It also assigns recency filters and distinguishes between fast βSystem 1β and deep βSystem 2β search modes.
// Classification for: "Best boutique hotel Paris"
prompt_type: {
image: true, // hotel photos needed
shopping: false, // not a product purchase
local: true, // geographic query
business: true, // commercial establishment
recency: "7d", // reviews from last week
mode: "system_1" // fast, intuitive search
}Classification Flags by Hotel Query
| Query | Image | Local | Business | Recency | Mode |
|---|---|---|---|---|---|
| Best boutique hotel Paris | β | β | β | 7 days | System 1 |
| Luxury hotels NYC with pool | β | β | β | 7 days | System 1 |
| Compare Ritz vs Plaza Paris | β | β | β | 30 days | System 2 |
| Hotels for family in Barcelona | β | β | β | 14 days | System 1 |
| Cheapest 3-star Berlin center | β | β | β | 1 day | System 1 |
| Historical hotels of Vienna | β | β | β | 30 days | System 2 |
Most hotel queries activate Local + Image + Business flags simultaneously. This tells ChatGPT to pull from Google Places (business data), Bing Images (photos), and web search (reviews and editorial). The recency filter is typically set to 7 days for reviews, meaning hotels with fresh feedback have an advantage.
The Fan-Out Engine: One Query Becomes Many
Your single query gets decomposed into multiple parallel sub-queries, each targeting a different data provider. The fan-out engine is optimized for breadth β it wants multiple angles on the same question.
Fan-Out Query Breakdown
| # | Provider | Query Sent | Purpose |
|---|---|---|---|
| 1 | SerpAPI (Google) | best boutique hotel paris 2026 | Web results with editorial + reviews |
| 2 | SerpAPI (Google) | boutique hotel paris reviews | Fresh review signals |
| 3 | Google Places | boutique hotel paris (filtered) | Business data, ratings, hours, Place ID |
| 4 | Bing Images | boutique hotel paris exterior | Property photos for carousel |
| 5 | SerpAPI (Google) | boutique hotel marais saint germain | Neighborhood variants |
| 6 | Maps / OSM | Lat/lng for each entity | Map tile rendering |
A single hotel query triggers an average of 5.3 parallel searches across different providers. In βthinking modeβ (System 2), this can spike to 20+ queries. This is why ChatGPT responses take 3β5 seconds to generate β it's running a small search engine in parallel, not just asking one API.
The Provider Ecosystem
ChatGPT doesn't have its own search index. It relies on a network of third-party data providers β and Google dominates them all. OpenAI was denied direct Google API access in 2024, so it routes through SerpAPI, a third-party scraper.
Provider Usage Rate for Hotel Queries
ChatGPT Data Providers for Hotels
| Provider | Purpose | Underlying Source | Usage Rate |
|---|---|---|---|
| SerpAPI | Web search results, review snippets | Google Search | 98% |
| Google Places API | Ratings, reviews, hours, Place IDs | Google Maps | 89% |
| OpenStreetMap | Map tiles and routing | OSM contributors | 89% |
| Bing Images | Hotel photos for web search pipeline | Bing Image Search | 73% |
| SearchApi.io | Booking links and price comparisons | Google Shopping | 34% |
| Getty / Labrador | Premium hotel imagery for entities | Licensed stock | 12% |
Google powers ~94% of ChatGPT's hotel data
Between SerpAPI (Google Search), Google Places, Google Shopping via SearchApi.io, and map data originally sourced from Google, nearly everything ChatGPT knows about hotels comes from Google infrastructure. This is the single most important takeaway for hoteliers: Google visibility still matters in the AI era because AI gets its data from Google.
The Image System: Two Pipelines
ChatGPT uses two distinct image pipelines. Entity images come from verified sources (Google Business Profile, Getty) and are quality-scored. Web search images come from Bing and are lower quality. Hotels with verified GBP photos get better representation.
Entity Image Pipeline
- Tool:
SonicBrowserTool - Sources: Getty/Labrador, GBP photos
- Quality scored (0.85β0.92)
- CDN: images.openai.com
- AES-GCM encrypted tokens
Web Search Image Pipeline
- β’ Tool:
FakeSonicBrowser - β’ Sources: Bing Image Search
- β’ No quality scoring
- β’ CDN: tse*.mm.bing.net
- β’ No encryption
Image Quality Score by Source
Hotel Image Sources
| Image Type | Source Priority | Quality Score | Usage % |
|---|---|---|---|
| Entity verified (GBP) | Google Business Profile β Getty | 9.2/10 | 27% |
| Premium stock | Getty / Labrador | 8.8/10 | 5% |
| Web search (hotel site) | Bing β Hotel website | 7.1/10 | 38% |
| Web search (OTA listing) | Bing β Booking/Expedia | 6.3/10 | 20% |
| Fallback | Generic stock imagery | 5.3/10 | 10% |
Entity Recognition: How ChatGPT βKnowsβ a Hotel
When ChatGPT mentions a hotel in its response, it runs Named Entity Recognition (NER) to match the text to a structured entity. For hotels, this means a Google Place ID β the unique identifier from Google Maps. This is what powers the clickable sidebars, map pins, and structured data.
// Entity linking output for "The Ritz Paris"
entity: {
name: "Ritz Paris",
place_id: "ChIJG2sX9dNx5kcRuIwOyzBmBEA",
category: "place",
subcategory: "hotel_luxury",
rating: 4.6,
review_count: 3847,
price_level: "$$$$",
address: "15 Place VendΓ΄me, 75001 Paris",
confidence: 0.99,
disambiguation: "historic_landmark + unique_name"
}Hotel Entity Recognition Examples
| Hotel | Place ID | Confidence | Disambiguation Signals |
|---|---|---|---|
| Ritz Paris | ChIJG2sX...mBEA | 99% | Unique name + landmark status |
| Four Seasons George V | ChIJRcbZ...5kcR | 98% | Chain + specific location |
| Hotel de Crillon | ChIJLeYy...3GI | 97% | Historical landmark + address |
| Mama Shelter Paris East | ChIJ9wDr...RuI | 94% | Chain + neighborhood qualifier |
| Le Marais Hotel | Multiple | 71% | Generic name β needs context |
| Hotel Paris | Ambiguous | 42% | No disambiguation possible |
89% of hotel mentions are successfully linked to Google Place IDs. The remaining 11% are either new hotels without established Place IDs, or hotels with ambiguous names that the disambiguation system can't resolve. Hotels without a Place ID miss out on ratings, reviews, map pins, and clickable sidebars in ChatGPT responses.
January 2026: Yelp appears as a new entity provider
On January 22, 2026, Yelp started appearing as a data provider in ChatGPT hotel entities β complete with Yelp-specific attributes (yelp_menu_url, business attributes, etc.). The biggest day saw 2,235 entities sourced from Yelp, reaching a 31.6% share on January 25. By January 27, Yelp dropped below 4%, suggesting this may have been an experimental rollout.
We're investigating whether this is live in other countries. More in our upcoming research on Yelp in ChatGPT.
Entity Taxonomy: Categorizing Hotels
Once recognized, hotel entities are classified into categories. This taxonomy influences which hotels get surfaced for which queries. The system uses signals from price data, star ratings, review themes, and brand identity to assign categories.
Entity Category Distribution in Hotel Responses
Hotel Entity Category System
| Category | Key Signals | Confidence | Examples |
|---|---|---|---|
| Luxury | Price $$$$, 4.5+ stars, brand prestige | 85% | Four Seasons, Ritz, Mandarin Oriental |
| Boutique | Under 50 rooms, design focus, independent | 75% | Mama Shelter, Le Pigalle, COQ Hotel |
| Business | Airport proximity, meeting rooms, corporate | 78% | Hilton, Marriott, Pullman |
| Budget | Price $, star rating β€3, chain | 80% | Ibis, Premier Inn, B&B Hotels |
| Resort | Pool, spa, all-inclusive, leisure amenities | 82% | Club Med, Belmond, Six Senses |
The entity taxonomy is not perfect. A βboutique business hotelβ might get classified as either category depending on which signals are strongest. Hotels that want to appear for specific query types should ensure their online presence clearly signals the right category β through reviews, descriptions, and amenity listings.
RRF Fusion: How Results Get Combined
Results from multiple providers get merged using Reciprocal Rank Fusion (RRF). Instead of recalculating relevance from scratch, RRF combines rankings from each source using a simple formula. Hotels that rank well across multiple sources get boosted.
// RRF Formula (k=60)
Score_RRF(hotel) = Ξ£ 1 / (k + rank_in_source) Example: Hotel A SerpAPI rank: 1 β 1/(60+1) = 0.0164 Places rank: 3 β 1/(60+3) = 0.0159 Bing rank: 2 β 1/(60+2) = 0.0161 ββββββββββββββββββββββββββββββββββββ RRF Score = 0.0484
RRF Scoring Example β Best Boutique Hotel Paris
| Hotel | SerpAPI Rank | Places Rank | Bing Rank | RRF Score | Final |
|---|---|---|---|---|---|
| Hotel Le Marais | #1 | #3 | #2 | 0.0484 | 1st |
| Maison Souquet | #3 | #1 | #1 | 0.0484 | 2nd |
| Hotel Providence | #2 | #2 | #5 | 0.0476 | 3rd |
| COQ Hotel | #5 | #4 | #3 | 0.0466 | 4th |
| Le Petit Moulin | #4 | #7 | #4 | 0.0457 | 5th |
| Hotel du Petit Moulin | #6 | #5 | #6 | 0.0451 | 6th |
RRF rewards consistency across sources, not dominance in one. A hotel ranked #2 everywhere beats a hotel ranked #1 in SerpAPI but #10 in Places. This means hotels should optimize their presence across Google Search, Google Maps, and image search simultaneously β not focus on just one channel.
Local & Maps Module
ChatGPT renders interactive maps using OpenStreetMap tiles combined with Google Places data. The Google Place ID (βChIJ...β) is the key that connects text responses to map pins, ratings, photos, and business data. Provider identifier βb1β is the internal alias.
Map Module Data Components
| Component | Source | Data Included | Update Frequency |
|---|---|---|---|
| Map tiles | OpenStreetMap | Visual map layer, streets, landmarks | Weekly |
| POI data | Google Places | Name, address, phone, website | Real-time |
| Ratings | Google Reviews | Star rating, review count | Daily |
| Business hours | Google Business | Open/closed, holiday hours | Real-time |
| Photos | GBP + Bing | Property images (cached on OpenAI CDN) | Weekly |
| Coordinates | Google Geocoding | Lat/lng for map pin placement | Stable |
A/B Testing: Nothing Is Fixed
ChatGPT runs on Statsig, a feature flagging and experimentation platform. At any given time, there are hundreds of active experiments changing how search works. Two users asking the same query may get different results, different layouts, and different providers.
Observed A/B Test Variants (Hotel-Related)
| Feature | Type | What It Changes |
|---|---|---|
| Hotel card format | Feature Gate | Carousel vs list vs grid layout |
| Provider priority | Dynamic Config | SerpAPI vs Places weighting in RRF |
| Image quality threshold | Dynamic Config | Minimum score to display images |
| Review snippet length | Feature Gate | How much review text to preview |
| Map zoom level | Dynamic Config | Default map zoom for hotel clusters |
| Entity sidebar depth | Feature Gate | How much data to show in sidebars |
If your hotel suddenly appears or disappears from ChatGPT results, it may not be a ranking change β it could be an A/B test. ChatGPT experiments with provider priority, display format, and result diversity constantly. This makes βmonitoring AI visibilityβ more complex than traditional SEO β you need multiple checks over time to establish a baseline.
Google vs SerpAPI: The Lawsuit That Could Break It All
On December 19, 2024, Google filed a lawsuit against SerpAPI for circumventing its anti-bot protection (SearchGuard) under DMCA Section 1201. Given that SerpAPI powers 98% of ChatGPT's web search results, the outcome of this case could fundamentally reshape AI hotel search.
Timeline
- Dec 2024 β Google files DMCA Β§1201 suit against SerpAPI
- Jan 2025 β Google launches SearchGuard anti-bot system
- 2025β2026 β Case ongoing; SerpAPI continues operating
- Potential β Statutory damages: $200β$2,500 per violation (billions of queries)
ChatGPT's Google Dependency Risk
| Function | Google Source | Backup Option | Risk if Blocked |
|---|---|---|---|
| Web results | SerpAPI (Google) | Bing | High β quality drop |
| Hotel business data | Google Places | Yelp, Bing Places | Critical β no alternative at scale |
| Reviews | Google Reviews (via SerpAPI) | TripAdvisor, Yelp | Medium β alternatives exist |
| Maps | OSM (independent) | Apple Maps, Mapbox | Low β already using OSM |
| Shopping/prices | Google Shopping (via SearchApi.io) | Kayak, direct | Medium |
| Images | GBP photos + Bing | Direct hotel sites | Medium β Bing is independent |
If Google successfully blocks SerpAPI, ChatGPT's hotel search quality would degrade significantly. The most likely outcome is a negotiated settlement or a direct licensing deal between OpenAI and Google β but until then, hoteliers should diversify their visibility across platforms, not depend on a single data pipeline.
What This Means for Hotels
Understanding ChatGPT's architecture turns abstract βAI visibilityβ into concrete, actionable steps. Here are the six things that actually matter, based on what we've documented above.
Claim Your Google Business Profile
ChatGPT pulls ratings, photos, hours, and Place IDs from GBP. Without it, you're invisible to the entity system, the map module, and the image pipeline.
Be Present Across Multiple Sources
RRF fusion rewards consistency. Hotels that rank well on Google Search, Google Maps, AND review sites get massive score boosts over single-source leaders.
Upload Quality Photos to GBP
The entity image pipeline scores GBP photos at 9.2/10. Web search images from Bing score 7.1/10. Better images = better presentation in ChatGPT.
Encourage Recent Reviews
Recency filters are typically set to 7 days for hotel reviews. Fresh reviews signal an active, well-managed property. Stale reviews can push you down.
Own Your Category + Neighborhood
ChatGPT's entity taxonomy classifies hotels by type and location. Ensure your reviews, descriptions, and GBP category clearly signal what you are.
Monitor the Legal Landscape
The Google vs SerpAPI lawsuit could reshape the entire system. Stay informed β the providers powering today's AI search may not be the same ones tomorrow.
How We Did This
This is investigative technical research β not official OpenAI documentation. Systems described may change or vary by user segment due to A/B testing.
Research Methods
- Browser DevTools inspection (Chrome)
- Network traffic capture (Fetch/XHR)
- Server-Sent Events stream analysis
- Response header parsing
- JavaScript source examination
- Pattern identification across 500+ queries
Data Sources
- ChatGPT Search responses (JanβFeb 2026)
- Resoneo original research (ChatGPT architecture)
- Public API documentation (Google, OpenAI)
- Legal filings (Google v SerpAPI, DMCA Β§1201)
- Our own AI search testing (12,500+ prompts)
Limitations
- Based on observed behavior, not internal docs
- ChatGPT's system evolves continuously
- A/B tests mean not all users see the same thing
- Some components inferred from patterns
- Provider usage rates are estimates
Acknowledgment: This research builds on the foundational work by Resoneo, whose comprehensive analysis of ChatGPT's search architecture provided the framework we adapted to the hotel vertical. Our contribution is the hotel-specific adaptation, testing, and practical implications for hoteliers.
Want to Rank in ChatGPT Hotel Search?
Now that you understand how the system works under the hood, let's optimize your hotel's AI visibility.