{"@context":"https://schema.org","@type":"BlogPosting","headline":"How Claude Searches Hotels","description":"Captured event streams across several Claude hotel conversations. With Connector Discovery off (the default), almost everything goes through one Google Places call. Turn it on and Claude branches into a small curated OTA-connector picker (Booking.com / Tripadvisor / Trivago and a few others) — no ads by design, so the curation logic itself becomes the product.","datePublished":"2026-05-01","dateModified":"2026-05-04","url":"https://nicolassitter.com/research/how-claude-searches-hotels-2026","category":"research","keywords":["Claude hotel search","Claude places_search","Anthropic hotel","Claude tool use","Google Places Claude","Claude connector discovery","Claude Booking.com"],"articleSection":"Research","wordCount":4400,"readTime":"18 min","articleBody":"Published · May 1, 2026\n\n# How Claude Searches HotelsA captured event stream, anatomy-style\n\n**No connectors → Google Maps.** When Claude has no connectors enabled (the default state for most users today), the hotel pipeline is strikingly simple: a Google Places call, a thinking step that ranks by Google rating and review volume, a map render. We logged several captures across budget tiers, languages, brand filters and date-anchored stays. The pipeline barely moved.\n\nTurn connectors on and the pipeline branches — Claude proactively offers a curated handful of OTAs (Booking.com, Tripadvisor, Trivago, and others) as options. We captured that flow too. See [further down](#connectors-on).\n\n## Starting with the simplest capture\n\nAcross April 2026 we logged the streaming event protocol of several Claude conversations. The simplest one we ran was:\n\n\\> best 3-star hotels in marseille\n\nClaude emitted seven content blocks: a brief text, a short thinking trace, a tool call to `places_search`, a longer thinking trace ranking the candidates, a tool call to `places_map_display_v0`, and a final text reply. We saw the full prompt, the tool inputs, the tool outputs, and the model’s internal reasoning. We’ll walk through this capture first, then look at what changed across the other prompts further down.\n\n## The pipeline (3 steps)\n\nStep 1 · tool: places\\_search\n\n### One call to Google Places\n\nClaude rewrites the user’s natural query into a Google Places query and calls a single tool:\n\n{\"queries\":\\[{\"query\":\"best 3-star hotels Marseille France\",\"max\\_results\":8}\\]}\n\nThe response is 8 hotels with: `name`, `address`, `latitude/longitude`, `rating`, `rating_count`, `place_id` (Google CID), `weekday_hours`, `price_level` (mostly null), 5 sample `reviews` verbatim, and `phone_number`. No bookable inventory. No live availability. No price.\n\nStep 2 · thinking\n\n### Filter 8 → 5, by rating + review volume + variety\n\nClaude’s thinking trace is explicit about what it ranks on:\n\n> ALEX Hôtel & Spa stands out with its 4.5-star rating and substantial review count, plus the added appeal of its spa facilities and proximity to the train station, while Hôtel 96 edges ahead with the highest rating at 4.8 stars and a desirable location near the Calanques… I’ll select around 5–6 of these top performers to showcase with personalized insights.\n\nNo model-side ranking signal beyond what Google already gave it. Claude is re-ranking on rating, rating\\_count, and what it calls “variety of personality” (different neighbourhoods, different traveller profiles). The 8 candidates from Google become 5 picks.\n\n**Memory effect observed:** Claude’s thinking referenced the user’s profession (“given Nicolas’s expertise in the hospitality industry — he’ll appreciate accurate, practical recommendations”). Persisted user context shapes the answer style.\n\nStep 3 · tool: places\\_map\\_display\\_v0\n\n### Render a map with notes\n\nClaude passes the 5 selected hotels — place\\_id, lat/lon, name, plus a one-line `notes` field per hotel — to a map widget. The widget enriches them with photos, website URL, and a Google Maps deep link. The user sees a map with five pins and a side panel.\n\n![Claude.ai chat showing a map of Marseille with five hotel pins and a side panel listing ALEX Hôtel & Spa (4.5 stars, 1,295 reviews), Hôtel Carré Vieux Port (4.3 stars, 1,528 reviews), and Hôtel Maison Montgrand (4.1 stars, 776 reviews) under the title '3-star hotels in Marseille'.](/_next/image?url=%2Fimages%2Fclaude-marseille-hotel-search.png&w=1920&q=75&dpl=dpl_4uWMtQQ1L7zC4NGGWt1a3cpj6GCe)\n\nThe rendered map widget. Three pins visible (4.5★ ALEX, 4.3★ Carré, 4.1★ Maison Montgrand) with the title Claude generated: “3-star hotels in Marseille.”\n\n## What this pipeline tells us\n\n### Single provider: Google Places\n\nNo Yelp, no TripAdvisor, no entity linker, no rank fusion. The `place_id` format is Google CID; `types` is the Google Places taxonomy. ChatGPT’s pipeline (see the [anatomy article](/research/anatomy-chatgpt-hotel-search-2026)) blends 5+ providers; Claude is using one.\n\n### Ranking signal = Google rating × review count\n\nClaude’s thinking explicitly cites high-star + high-volume as the filter. So for the foreseeable future, “winning” in Claude hotel answers means winning on Google Maps. Same playbook hotels already had — just amplified by an extra surface.\n\n### Reviews are surfaced verbatim\n\nThe tool returns 5 sample reviews per hotel (real Google reviews, full text). They shape Claude’s commentary — the line about “rooms are small but clean” for Hôtel Amoi maps directly to a review snippet. Bad reviews in the sample set propagate into the recommendation.\n\n### No live pricing, no booking — in default mode\n\nThe Places response had `price_level: null` on every hotel. Claude has an Apps surface (Booking.com, Tripadvisor, Trivago and a few others), but it’s gated behind the Connector Discovery setting, which ships off. With the toggle off, the booking step always happens elsewhere. With the toggle on, Claude curates a small connector picker — covered in the [Turn connectors on section](#connectors-on) further down.\n\n### Memory personalisation is real\n\nPersisted user context (“Nicolas’s expertise in hospitality”) visibly altered the response style — Claude framed the answer as professional shorthand, not tourist copy. Same model, different output for different users with different memories. Worth knowing if you benchmark Claude across accounts.\n\n## Other captures, same pipeline\n\nBeyond Marseille we ran several more captures with different prompt shapes — budget tiers, dates, a French prompt, brand filters — to see how the pipeline reacted. Same conversation-log technique. Here’s what we asked and what Claude reached for first:\n\n#\n\nPrompt (paraphrased)\n\nFirst tool\n\nCalls\n\n1\n\nbest 3-star hotels in Marseille\n\n`places_search`\n\n1\n\n2\n\nbudget hotels in Boston (~$200/night)\n\n`places_search`\n\n3 parallel\n\n3\n\ndog-friendly boutique hotel in Barcelona\n\n`places_search`\n\n3 parallel\n\n4\n\ndesign hotels in Reykjavík with sauna\n\n`places_search`\n\n3 parallel\n\n5\n\n_un hôtel boutique à Bordeaux mais pas Saint Pierre_ (asked in French)\n\n`places_search`\n\n3 + 2 (two rounds)\n\n6\n\n4-star hotels near Shibuya, May 15–18\n\n`places_search`\n\n1\n\n7\n\nMarriott or Hilton in Lisbon for a business trip\n\n`web_search`\n\n2 sequential\n\n8\n\nMarriott or Hilton near Shibuya, May 15–18\n\n`places_search`\n\n2 + 2 (two rounds)\n\n9\n\nMarriott in Reykjavík\n\n`places_search`\n\n1\n\n### What each capture looked like\n\n#### #2 Boston — budget hotels\n\n“budget hotels in Boston, around $200 per night”\n\nThree parallel `places_search` calls, sharded by price tier. Every hotel in the Places response had `price_level: null`. Claude’s reply still gave specific $150–$250-range estimates; the thinking trace flagged these as “approximate price ranges based on typical patterns” rather than tool data.\n\n#### #3 Barcelona — dog-friendly boutique\n\n“dog-friendly boutique hotel in Barcelona for next week”\n\ndog friendly luxury hotel Barcelona\n\npet friendly boutique hotel Barcelona Eixample\n\ndog friendly design hotel Barcelona Gothic Quarter\n\nPlaces has no pet-friendly attribute. Claude inferred dog policy from review text — “Dog friendly for a €15 fee” from a Villa Emilia review made it verbatim into the answer.\n\n#### #4 Reykjavík — design hotels with sauna\n\n“design hotels in Reykjavík with sauna”\n\ndesign hotels Reykjavik with sauna\n\nboutique hotels Reykjavik spa sauna\n\nReykjavik Edition hotel sauna\n\nThe reply opened by disambiguating the Marriott-affiliated Design Hotels™ brand from design-forward boutiques generally. Brand recognition came from review text — an ION City review explicitly says “Member of Design Hotels™” in a guest write-up.\n\n#### #5 Bordeaux — French prompt, “not Saint Pierre”\n\n“un hôtel boutique à Bordeaux mais pas Saint Pierre”\n\nround 1\n\nboutique hotel Chartrons Bordeaux\n\nboutique hotel Triangle d’Or Bordeaux\n\nboutique hotel Bacalan Bordeaux\n\nround 2 (name verification)\n\nYndo Hotel Bordeaux\n\nLa Course hotel Chartrons Bordeaux\n\nAsked in French, searched in English, replied in French (map title too). Le Boutique Hôtel and Hôtel de Tourny were returned by Places but dropped from the answer for being too close to Saint Pierre. Yndo and La Course were pulled from training and verified via the second-round search.\n\n#### #6 Tokyo — 4-star hotels near Shibuya, May 15–18\n\n“4-star hotels near Shibuya in Tokyo, May 15–18”\n\n4-star hotels near Shibuya Tokyo\n\nOne query was enough — Claude didn’t shard. Places returned hotels in both Shibuya and Shinjuku; the Shinjuku ones were dropped at synthesis time. Star-tier verification came from review text: a Granbell review saying “this is a 3-star hotel, not a 4” pushed it down the ranking. Places has no star field. The dates appeared in the map title and the closing “want me to check rates?” offer; the search call had no date parameter.\n\n#### #7 Lisbon — Marriott or Hilton, business trip\n\n“a hotel in Lisbon for a business trip, Marriott or Hilton”\n\n\\# tool: web\\_search (not places\\_search)\n\nMarriott properties Lisbon business hotel\n\nHilton properties Lisbon business hotel\n\nThe only capture that didn’t touch Places. The reply quoted “17,000 square feet of flexible event space” pulled from marriott.com directly, with an inline citation to that page. No map. None of the other captures surfaced citations.\n\n#### #8 Tokyo — Marriott or Hilton near Shibuya\n\n“Marriott or Hilton near Shibuya, May 15–18”\n\nround 1\n\nMarriott hotel Shibuya Tokyo\n\nHilton hotel Shibuya Tokyo\n\nround 2\n\nConrad Tokyo near Shibuya\n\nSheraton hotel Shibuya Ebisu\n\nSame prompt structure as Lisbon (chain-or-chain) but with a specific neighbourhood anchor — this time Claude stayed in Places. Places has no chain-affiliation field; non-chain hotels that came back (Cerulean Tower, Shibuya Excel Tokyu) were dropped using Claude’s own brand knowledge. The map included a non-hotel Shibuya Crossing pin as a reference point.\n\n#### #9 Reykjavík — Marriott\n\n“a Marriott in Reykjavík”\n\nMarriott hotel Reykjavik Iceland\n\nTwo results came back. The Reykjavik EDITION was identified as Marriott’s flagship (EDITION is recognised from training as a Marriott sub-brand; Places didn’t label it as such). ION Adventure was identified as a Bonvoy partner via Design Hotels — partly from a review quoting “my Marriott Bonvoy Platinum status, which is honored at this hotel”. The map showed only the EDITION; the prose mentioned both with caveats.\n\nA couple of thoughts, not conclusions. Most of the variation across these captures sat _around_ the Places call — how it got sharded into parallel queries, what got pruned at synthesis time, what got filled in from review text or training when Places didn’t carry the attribute. The Places call itself stayed steady.\n\n## Turn connectors on, and the pipeline branches\n\nEverything above describes Claude with **connector discovery off**— the default. Connector discovery is a setting (Settings → Connectors → Discovery) that lets Claude proactively suggest external apps it could call. None of our nine captures invoked one because the toggle was off. So we tried something else: we asked Claude to book a hotel, and watched what happened.\n\n### Step 1 — Default mode: Claude offers to turn discovery on\n\nAsked “Can you book me a hotel in Paris?” with discovery off, Claude doesn’t book and doesn’t go silent. It surfaces an inline opt-in prompt: “Turn on connector discovery — Claude will help you find available connectors in your directory.” Decline and it falls back to gathering travel preferences (when, who, what) for a Places-style search.\n\n![Claude.ai chat showing the user asking 'Can you book me a hotel in Paris?' with Claude returning an inline opt-in panel titled 'Turn on connector discovery — Claude will help you find available connectors in your directory. Change anytime in Settings.' with Not now and Turn on buttons.](/_next/image?url=%2Fimages%2Fclaude-connector-discovery-prompt.png&w=1920&q=75&dpl=dpl_4uWMtQQ1L7zC4NGGWt1a3cpj6GCe)\n\nDefault behaviour. Booking request → opt-in prompt for connector discovery, then fallback to a preference-gathering chat (“When are you traveling?”).\n\n### Step 2 — The setting itself: off by default\n\nIn Settings → Connectors there’s a Discovery toggle: “Let Claude surface connectors from the directory that may be relevant to your conversation.” It ships off. Connectors the user has already configured (GitHub, Attio, Gmail, etc.) stay configured per-tool, but Discovery is the gate for proactive surfacing.\n\n![Claude Settings → Connectors page showing the Discovery toggle (off) with the description 'Let Claude surface connectors from the directory that may be relevant to your conversation', with already-connected integrations listed below (GitHub, Attio, Gmail, Google Calendar).](/_next/image?url=%2Fimages%2Fclaude-connector-discovery-setting.png&w=3840&q=75&dpl=dpl_4uWMtQQ1L7zC4NGGWt1a3cpj6GCe)\n\nThe Discovery toggle ships off. This is the reason all nine of our earlier captures hit Google Places — not a property of Claude’s pipeline, a property of the default permission state.\n\n### Step 3 — With Discovery on: Claude curates a connector list\n\nFlip the toggle, ask the same booking question, and Claude returns a panel titled “Connectors that could help — A few good options for finding cheap central Paris hotels for this week.” The list this week is a small curated set headed by **Booking.com**, **Tripadvisor**, and **Trivago**, plus a _Browse all connectors_ escape hatch. Each shows a one-line value prop and a Connect button (Trivago is greyed because the user had disabled it for this chat).\n\n![Claude.ai panel titled 'Connectors that could help (Beta)' listing a curated set of travel booking connectors including Trivago (turned off for this chat), Booking.com (Find hotels, homes and more), and Tripadvisor (Find your perfect hotel based on Tripadvisor reviews), with a 'Browse all connectors' link and a 'None of these' button.](/_next/image?url=%2Fimages%2Fclaude-connector-discovery-options.png&w=1920&q=75&dpl=dpl_4uWMtQQ1L7zC4NGGWt1a3cpj6GCe)\n\nThe connector picker. A small curated set of OTAs plus a Browse-all escape. Claude positions itself as the curator, not the booking engine — the user still has to Connect each one explicitly.\n\nThe actual finding\n\nThe Places-only behaviour we documented isn’t how Claude searches hotels — it’s how Claude searches hotels _in default mode_. The pipeline has a second branch that fires when the user turns on connector discovery, and on that branch Claude becomes a curator picking which OTAs to surface. Right now the curator shows three or four names. That’s the actual product.\n\n## The future of apps and connectors\n\nToday, the curated list shows three or four OTAs. That works at this scale. But Claude has been explicit it won’t run sponsored ads, so when the supply of connectors grows — and it will — the question becomes: _how does Claude pick which three or four to show?_ Without an auction, the curation logic itself is the product.\n\n-   **No ads means no auction. So what’s the signal?**Anthropic has said it won’t sell placement. So when there are 30+ travel connectors competing for the slot, something else has to decide. User history (which OTAs has the user logged into elsewhere?), geography (Booking.com leans EU, Expedia leans US), query specificity (luxury vs budget vs alternative-stays), or Anthropic-side partnership tiers. Probably some mix. None of it is public yet, and the choice will shape who actually gets in front of the user.\n-   **Chains are next.**Marriott Bonvoy, Hilton Honors, IHG One Rewards, Accor ALL — every loyalty programme is a candidate connector. Once one ships, the others have to follow. That’s a parallel layer of supply: brand connectors that route the user straight into the chain’s own booking flow, bypassing the OTAs entirely.\n-   **Direct-booking platforms are next-next.**Direct-booking platforms like The Hotels Network are the natural next entrant — a connector that surfaces “book direct on the hotel website” as an option, bypassing both OTAs and chain loyalty flows. That makes the field three layers deep: OTAs, chain loyalty programmes, and independent direct-booking platforms. All competing for the same three or four visible slots.\n-   **The OTAs still missing today.**Expedia, Hotels.com, Airbnb, Agoda, Kayak — none in this week’s curated set. Either they don’t have a Claude connector live yet, or the curation logic preferred others. Once they’re all in the directory, the visible-list problem gets harder.\n-   **The default list is the product. Browse-all is the long-tail fate.**Whatever Claude shows in the default panel determines who gets the click. There’s a _Browse all connectors_ escape, but realistically that’s where everyone who isn’t in the default three or four ends up. So the optimisation game stops being “buy placement” (impossible — no ads) and starts being “ship a connector that earns selection” — quality, latency, completeness of data, brand recognition with the user. No marketplace mechanic yet. It’s closer to App Store editorial than to Google Ads.\n\n## How this differs from ChatGPT\n\nChatGPT’s hotel pipeline is a 12-system, 5-provider stack with entity linking, RRF fusion, and a Yelp/TripAdvisor blend. Claude’s, today, is a single Google Places call followed by an LLM-side re-rank. Different optimisation surfaces:\n\nDimension\n\nClaude (Apr 2026)\n\nChatGPT (Apr 2026)\n\nData providers\n\n1 (Google Places)\n\n5+ (Google, Yelp, TripAdvisor, etc.)\n\nRanking signal\n\nGoogle rating + review count\n\nRRF fusion + entity linking\n\nReviews surfaced\n\nVerbatim, 5 per hotel\n\nSynthesised across providers\n\nLive pricing\n\nIn connectors (Discovery off by default)\n\nIn Apps / Ads\n\nBooking integration\n\nCurated connector picker (Booking.com / Tripadvisor / Trivago and others), gated behind Discovery toggle — no ads, selection logic not public\n\nChatGPT Apps\n\nSponsored ads\n\nNone — Anthropic has stated they won’t run ads\n\nYes (since March 2026)\n\nMap render\n\nYes (Google embed)\n\nYes\n\nMemory personalisation\n\nYes, observed\n\nYes\n\nImplication for hotels\n\nFor Claude visibility in default mode, Google Maps presence is the lever — rating, review count, complete profile, photos, accurate name and address. The Apps surface (Booking.com, Tripadvisor, Trivago and a few others) only fires when the user turns on Connector Discovery, and there it’s a small curated list rather than an open auction. Anthropic has been explicit it won’t run sponsored ads, so the equivalent of ChatGPT’s ad slots isn’t expected to appear — the optimisation game is “be one of the curated connectors” rather than “buy placement.”\n\n## Caveats and open questions\n\nA handful of prompts from one Claude account, captured at the end of April 2026. Things worth keeping in mind:\n\n-   Small sample. We were watching how the pipeline reacts to different prompt shapes, not estimating frequencies.\n-   Single account with persistent memory. Claude’s thinking traces repeatedly referenced the user’s hospitality background; a fresh account would likely look different.\n-   The original captures had Connector Discovery off, which is the default. We followed up by enabling it and capturing the connector picker (see the [connectors-on section](#connectors-on)). That captured the second branch of the pipeline; we still haven’t observed what happens after the user clicks Connect on, say, Booking.com — that’s the next test.\n-   Tool routing is moving. Lisbon used `web_search`; Tokyo+chains stayed on Places. The trigger between the two isn’t obvious from this small set.\n\n## Frequently Asked Questions\n\n### Summarize with AI\n\n### Related research\n\n[\n\nAnatomy of a ChatGPT Hotel Search\n\n12 systems, 5 providers, RRF fusion — the long-form contrast.\n\n](/research/anatomy-chatgpt-hotel-search-2026)[\n\nHow Mistral Searches Hotels\n\nBrave web search only — even simpler than Claude.\n\n](/research/how-mistral-searches-hotels-2026)","author":{"@type":"Person","name":"Nicolas Sitter","url":"https://nicolassitter.com/about","sameAs":["https://www.linkedin.com/in/nicolassitternolleau/","https://github.com/Nicositter88","https://hotelrank.ai"]},"publisher":{"@type":"Person","name":"Nicolas Sitter","url":"https://nicolassitter.com"},"image":"https://nicolassitter.com/api/og/how-claude-searches-hotels-2026","mainEntityOfPage":{"@type":"WebPage","@id":"https://nicolassitter.com/research/how-claude-searches-hotels-2026"},"tags":["Claude","Anthropic","Hotel Search","Tool Use","Pipeline Anatomy","Connectors"],"sameAs":["https://hotelrank.ai/research/how-claude-searches-hotels-2026"],"alternateFormat":{"html":"https://nicolassitter.com/research/how-claude-searches-hotels-2026","json":"https://nicolassitter.com/api/post/how-claude-searches-hotels-2026","rss":"https://nicolassitter.com/rss.xml"},"datasets":[{"name":"summary","contentUrl":"https://nicolassitter.com/data/how-claude-searches-hotels-2026/summary.csv","encodingFormat":"text/csv"}]}