Search travel sites for hotels and vacation rentals and return a cost comparison table. Use when the user wants to find hotels, vacation rentals, or compare lodging options for a trip.
Search travel sites for hotels and vacation rentals, return a cost comparison table, then save results.
When this skill is invoked:
First, check whether travel_plans/ exists and contains any destination folders.
Then collect any remaining missing details via AskUserQuestion:
Experiences — ask the user which experiences they plan to attend, using multiSelect: true. Offer 3–4 destination-appropriate options based on the destination (e.g., for Orlando: Theme Parks, Disney World, Universal Studios, International Drive, Beaches). Always include an "Other / No preference" option. The user may select multiple.
Use the selected experiences to:
Use the Bash tool to run:
node playwright/search.js hotels --destination "<DESTINATION>" --depart <YYYY-MM-DD> --return <YYYY-MM-DD> --travelers <N> --rooms <N>
This writes results to travel_plans/[destination-slug]/hotels/processed=[YYYY-MM-DD]/results.md and updates summary.md automatically. Wait for the command to complete.
Read the written results.md file. Identify any rows marked N/A or sites that returned an error.
Silent mode: Execute all Chrome MCP browser steps without narrating individual actions (clicks, scrolls, typing). Use the tools quietly and only report the final prices found or a single error message if a site is blocked.
For each site with an N/A result, use mcp__claude-in-chrome__* tools to search that site in Chrome and retrieve results. Refer to the per-site navigation guides in sites/ for UI steps:
sites/google-hotels.mdsites/expedia.mdsites/kayak.mdsites/costco-travel.mdsites/vrbo.mdsites/airbnb.mdFor each selected option, note:
If any MCP searches succeeded, edit results.md to replace the N/A rows with the new data.
For each site, find the top 1–4 highest-quality or most preferred options. Prioritize by:
Avoid surfacing low-rated properties (below 7.0/10 or 3.5/5) unless nothing better is available.
If a site still cannot be searched after MCP attempt, leave it as "N/A" and continue.
Present the results as a markdown table (up to 8 best options across all sites, prioritized by experience alignment):
| Site | Property | Type | Rating | Per Night | Total Stay | Experience Fit | Link |
|---|---|---|---|---|---|---|---|
| Google Hotels | ... | Hotel | ⭐4.5 | $X | $X | Disney area, 0.2 mi to park | Book |
| Costco Travel | ... | Hotel | ⭐4.2 | $X | $X | I-Drive, near Universal | Book |
| VRBO | ... | Vacation Rental | ⭐4.8 | $X | $X | Disney Springs area | Book |
| Airbnb | ... | Condo | ⭐4.7 | $X | $X | Near Universal | Book |
Derive a folder-safe destination name from the destination input: lowercase, spaces replaced with hyphens (e.g. "San Diego, CA" → san-diego-ca).
Write results to travel_plans/[destination-slug]/hotels/processed=[YYYY-MM-DD]/results.md (create directories if needed):
## Hotels — Searched: [current date and time]
### Inputs
| Field | Value |
|---|---|
| Destination | [destination] |
| Check-in | [check-in date] |
| Check-out | [check-out date] |
| Guests | [number] |
| Rooms | [number] |
| Experiences | [comma-separated list of selected experiences] |
### Results
[paste the full results table here]
Update travel_plans/[destination-slug]/summary.md (create if it doesn't exist):