agentsclimarketplace

Apify hotel price monitoring

Skill johnisanerd/claude-skill-hotel-price-monitoring/apify-hotel-price-monitoring

Claude/agent skill: scheduled hotel rate snapshots for rate drop alerts and competitor watching. Installs via npx skills add.

Install
npx -y skills add johnisanerd/claude-skill-hotel-price-monitoring --skill apify-hotel-price-monitoring

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • 19 days oldThe repository was created 19 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Run hotel price monitoring on Google Hotels with the Apify Google Hotels Search Scraper Actor (johnvc/google-hotels-search-scraper). Poll the same destination and stay dates on a schedule, snapshot rate_per_night and total_rate per property with numeric extracted values, then diff snapshots keyed on property_token to alert on drops, watch competitor hotel rates, or chart how prices move as the stay date approaches. Use when the user wants hotel price monitoring, wants to track or watch hotel prices over time, monitor competitor hotel rates for a property or market, build a rate drop alert pipeline, or asks whether hotel prices go down closer to the date. Pay-per-page billing plus a small per-run setup fee, MCP-ready for Claude and other AI agents.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

7.6 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it

Hotel Price Monitoring: Rate Snapshots From Google Hotels

Turn Google Hotels into a hotel price monitor. Each poll takes a destination and stay dates and returns every listed property with numeric nightly and total rates. Snapshot the run, diff it against the last one on property_token, and you have rate-drop alerts, competitor rate watching, or a price history for one market.

When to use this skill

  • The user wants hotel price monitoring for a destination, a set of stay dates, or specific properties.
  • They want to watch competitor hotel rates (a hotelier checking the market around their property).
  • They want alerts when a rate drops below a threshold before a trip or an event.
  • They ask "do hotel prices go down closer to the date": monitor the same stay across days and answer with data.

Not for: one-off exports of a single search (use the scrape-hotel-prices skill), booking or reservations (the Actor is read-only), or flight fare tracking (use the Google Flights Data Scraper).

What each snapshot returns (one object per results page)

Each dataset item is a page of results with search_metadata (total_results, properties_count, pages_processed, pagination_limit_reached) and a properties array. Per property: name, type, rate_per_night and total_rate (display lowest plus numeric extracted_lowest and before-tax variants), overall_rating, reviews count, amenities, gps_coordinates, check_in_time, check_out_time, and property_token, the stable key you diff on. When present: hotel_class, location_rating, deal plus deal_description, a per-vendor prices array with cancellation flags, and a reviews_breakdown by topic. Sponsored listings arrive separately in ads.

Prerequisites

The Actor

Run it with the Apify CLI

One monitoring poll, one page, fixed stay dates:

apify actors call "johnvc/google-hotels-search-scraper" -i '{"search_type":"search","q":"hotels near Moscone Center San Francisco","check_in_date":"2026-10-05","check_out_date":"2026-10-08","currency":"USD","max_pages":1}' \
  --json \
  --user-agent apify-awesome-skills/apify-hotel-price-monitoring \
  2>/dev/null

Read a finished run's snapshot later, for example from a scheduled run:

apify datasets get-items <DATASET_ID> --format json --user-agent apify-awesome-skills/apify-hotel-price-monitoring 2>/dev/null

Every call carries the three flags this repo expects: --json (or --format json), --user-agent apify-awesome-skills/apify-hotel-price-monitoring, and 2>/dev/null.

Run it from Claude or another AI agent (MCP)

The Actor is MCP-ready. Add the hosted server URL:

https://mcp.apify.com/?tools=actors,docs,johnvc/google-hotels-search-scraper

Then ask, for example: "Check hotel prices near the Louvre for November 12 to 14 and tell me which of yesterday's hotels got cheaper." MCP setup docs: https://docs.apify.com/platform/integrations/mcp

Workflow

  1. Fix the monitor definition. One Actor input per monitor: q (destination or market), check_in_date and check_out_date, party size, and an explicit currency. Keep every field identical across polls; only then are two snapshots comparable.
  2. Bound each poll. max_pages: 1 covers about 20 properties and is enough for most competitor sets. Narrow the market with server-side filters (hotel_class, guest_rating, max_price) instead of adding pages.
  3. Poll on a schedule. Wrap the same input in an Apify Schedule or a cron job. Daily is the usual cadence; hourly only for short event windows.
  4. Store and diff. Flatten each page object's properties into rows keyed on property_token, keep extracted_lowest from rate_per_night and total_rate plus the run timestamp, then compare with the previous snapshot: new lows, threshold crossings, and week-over-week drift.
  5. Alert and report. Send drops past the user's threshold, and chart a property's rate across snapshot dates to answer "when should I book".

Inputs

  • q (string): destination, market, or landmark query
  • check_in_date / check_out_date (YYYY-MM-DD): the monitored stay, required with a query
  • adults, children, children_ages: party, keep constant across polls
  • currency (ISO 4217): set it explicitly so snapshots compare cleanly
  • hotel_class, guest_rating, stars, min_price, max_price: narrow to the competitor set
  • gl, hl: country and language codes
  • max_pages (default 1): pages per poll, the cost bound per snapshot

Cost

Billing is pay per event: a per-run setup fee plus a per-page fee, about $0.04 for a one-page poll at the time of writing. A daily one-page monitor is roughly $1.20 a month; three markets daily is under $4 a month. Estimate with the live prices in references/gotchas.md before scheduling.

Honest limits

  • This is a polled monitor, not a push feed: freshness equals your poll interval.
  • Rates apply to the exact stay dates and party in the input; a monitor with rolling dates (always 30 days out) needs the dates recomputed before each poll.
  • Listing sets shift between polls: hotels enter and leave page one, so a missing property_token does not always mean sold out.
  • The Actor returns current prices only. Price history exists only in the snapshots you keep.
  • Read-only data: it cannot hold, book, or confirm any rate.

Troubleshooting

  • A tracked property vanished from the snapshot: it may have dropped off the fetched pages; raise max_pages by one or query the hotel name directly.
  • Rates jump wildly between polls: confirm currency, party fields, and dates are identical across polls before trusting the diff.
  • Empty properties: dates in the past or check_out_date not after check_in_date are the usual cause in long-running monitors.
  • pagination_limit_reached true: expected on one-page polls; only raise max_pages if your competitor set is bigger than one page.

See references/gotchas.md for cost guardrails and error recovery, and references/actor-index.md for the Actor routing table.

Related travel-data Actors

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.