agentsclimarketplace

Apify gas price monitoring

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

Claude/agent skill: scheduled fuel price snapshots for tracking changes. Installs via npx skills add.

Install
npx -y skills add johnisanerd/claude-skill-gas-price-monitoring --skill apify-gas-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

Monitor gas prices across ZIP codes and cities with the Apify Fuel Prices Scraper Actor (johnvc/fuelprices). Poll a watchlist of locations on a schedule and get one row per station with cash and credit prices plus posted timestamps, ready to diff against your last snapshot for price-change alerts, cash versus credit spreads, and station-level competitive tracking. Use when the user wants gas price monitoring, fuel price monitoring, price-change alerts for fuel, tracking gas prices across multiple ZIP codes or cities, watching diesel or E85 prices for a fleet, or a live feed for a fuel price dashboard. Pay-per-result billing, 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

6.6 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it

Gas Price Monitoring: Track Per-Station Prices Across Locations

Monitor gas prices with the Apify Fuel Prices Scraper. Poll a watchlist of ZIP codes or cities on a schedule, snapshot one row per station with cash and credit prices and their posted timestamps, and diff snapshots to catch price moves, spreads, and undercutting.

When to use this skill

  • The user wants gas price monitoring or fuel price monitoring across one or more locations.
  • They want price-change alerts, a fuel price dashboard feed, or a recurring competitive scan of nearby stations.
  • They manage a fleet or delivery routes and want to watch diesel or E85 prices along them.
  • They ask to "track gas prices", "watch fuel prices", or "tell me when prices change".

Not for: historical backfill (live prices only, history starts when your polling starts), national or state averages (per-station only), or one-off single lookups (use the gas-prices-api skill).

What each snapshot returns (one row per station)

id, name, priceUnit, starRating, ratingsCount, address_line1, address_line2, address_locality, address_region, address_postalCode, price_cash, price_cash_postedTime, price_credit, price_credit_postedTime, and distance (returned null on ZIP searches in testing). id is the join key between snapshots; the postedTime fields tell you whether a price actually moved since your last poll. Prices of 0 or null mean no recent report for that payment type.

Prerequisites

The Actor

Run it with the Apify CLI

One monitoring poll of a ZIP, fresh prices only:

apify actors call "johnvc/fuelprices" -i '{"search":"75201","fuel":1,"maxAge":2}' \
  --json \
  --user-agent apify-awesome-skills/apify-gas-price-monitoring \
  2>/dev/null

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

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

Every call carries the three flags this repo expects: --json (or --format json), --user-agent apify-awesome-skills/apify-gas-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/fuelprices

Then ask, for example: "Check diesel prices in ZIP codes 75201 and 76102 and tell me which stations dropped since yesterday." MCP setup docs: https://docs.apify.com/platform/integrations/mcp

Workflow

  1. Define the watchlist. One Actor input per location: search (ZIP, city, or "lat, lon") plus the fuel code to track (1 Regular, 2 Midgrade, 3 Premium, 4 Diesel, 5 E85, 12 Unleaded88). Separate fuels are separate calls.
  2. Keep polls fresh. Set maxAge (1 to 3 days) so stale stations drop out instead of polluting diffs; it also trims billed rows.
  3. Estimate cost per poll and per month, then confirm with the user. See references/gotchas.md.
  4. Poll and snapshot. Run one call per watchlist entry, stamp rows with your own poll time, and store them keyed on id.
  5. Diff and alert. Join the new snapshot to the previous one on id, compare price_cash and price_credit, and use the postedTime fields to separate real price moves from unchanged reports. Treat 0 or null prices as no data, not as a price drop.
  6. Schedule it. Wrap the same inputs in an Apify Schedule or a cron job; daily is enough for most retail fuel tracking.

Inputs

  • search (string, required): ZIP code, city name, or "lat, lon" GPS coordinates, one location per call
  • fuel (integer, default 1): 1 Regular, 2 Midgrade, 3 Premium, 4 Diesel, 5 E85, 12 Unleaded88
  • maxAge (integer, days, default 0): freshness window for a monitoring poll; 1 to 3 days recommended
  • lang (string, default "en"): only English is supported
  • output_file (string): optional CSV filename for the copy written to run storage, must end in .csv

Cost

Billing is per station row returned, so cost per poll is (stations per location) times (locations). A single ZIP poll is usually a cent or two; a daily 10-ZIP watchlist runs on the order of a few dollars per month. Estimate with the live per-result price in references/gotchas.md before scheduling.

Honest limits

  • This is a polled snapshot, not a push feed: your poll interval is your freshness, and history starts when your polling starts. No backfill.
  • Per-station only: compute city or corridor averages yourself from the rows.
  • Cash and credit report independently; a station can update one and not the other. Alert on each side separately.
  • Station sets can shift slightly between polls; a station missing from one snapshot is not proof it closed.
  • Coverage is US-first with some Canadian locations.

Troubleshooting

  • Diffs full of "changes" that are not real: you compared prices without checking postedTime; only flag rows whose postedTime advanced.
  • Stations flapping in and out of snapshots: raise maxAge slightly, or key your store on id and tolerate gaps.
  • Empty poll for a small town: use the nearest ZIP code instead of the town name.

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

Related location-data Actors

Gives 0 of the 12 instructions most monitoring observability skills give in ~1.5k tokens

Counted across 481 of the 483 authors here whose files we hold, read 2026-08-06

  • link every alert to a runbookin 43 of 481, across 35 files
  • use structured json loggingin 36 of 481, across 31 files
  • alert on user-facing symptomsin 20 of 481, across 15 files
  • emit structured JSON logs with stable event namesin 18 of 481, across 13 files
  • propagate trace context across boundariesin 16 of 481
  • use histograms for latency trackingin 14 of 481, across 9 files
  • use OpenTelemetry for distributed tracingin 13 of 481, across 8 files
  • include a correlation ID on every log linein 13 of 481, across 8 files
  • Define service level objectivesin 10 of 481, across 7 files
  • Call useAzureMonitor before importing other modulesin 9 of 481, across 2 files
  • stop and ask for clarification if inputs are missingin 9 of 481, across 2 files
  • define on-call questions before adding telemetryin 9 of 481, across 4 files

Said here and by no other author read

  • Define a watchlist of locations and fuel codes
  • Run one Actor call per watchlist entry
  • Set maxAge between 1 and 3 days
  • Estimate polling costs and confirm with the user
  • Stamp snapshot rows with poll time
  • Store rows keyed on station id

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

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.