By clsandoval
Restaurant ranker — fuses editorial prestige, Google reviews, and live booking-demand into one Bayesian ranking with honest uncertainty. Read-only, never books.
Use when probing restaurant booking platforms (TableCheck, SevenRooms, Chope, CoverManager, Hungry Hub, Eatigo, Weeloy, Inline, OpenTable, Resy, Tock) to read table availability for a trip — which dates / times / party sizes are open vs booked out — across a city's restaurants. Read-only: reads the calendar, never makes or confirms a reservation. Drives the real booking widget via the agent-browser CLI, one verified recipe per platform, one browser session per restaurant for sequential/parallel fan-out. Part of the restaurant-ranker plugin.
Use when a website you need to READ is walled by anti-bot defenses — Cloudflare Turnstile, DataDome, ALTCHA proof-of-work, PerimeterX "Press & Hold", CDP/headless detection, or container TLS-MITM — and a plain HTTP/JSON request or ordinary headless browser gets blocked, 403'd, or served a challenge. Launches a stealth Chromium via CloakBrowser (patchright + xvfb + humanize) that clears these walls, then reads the page's own availability/JSON read-only. This is the escalation tier behind the booking-probe skill's per-engine recipes, AND the playbook for cracking a NEW booking engine that has no recipe yet. Read-only: read the data, never submit or transact.
Rank a city's restaurants from one prompt — "rank the best restaurants in {city}", "which restaurants in {city} are worth it", "best places to eat in {city}", "top restaurants in {city}". Fuses editorial prestige + Google reviews + LIVE booking-demand into a Bayesian ranking with honest uncertainty intervals. Read-only — reads reservation calendars to measure demand, never books anything. Orchestrates the full pipeline: corpus → reviews → booking → model → render.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Restaurant ranker fuses editorial prestige, Google reviews, and live booking-demand into a single Bayesian ranking that shows its own uncertainty and never fabricates confidence. It is read-only — it reads availability and reviews to rank, and never books anything.
One prompt — rank the best restaurants in <city> — drives a 5-step pipeline:
web_search gathering of editorial prestige venues)<slug>-board.md with 94% HDI + coverage flags)Output: a <slug>-board.md in the caller's CWD — one markdown file to read and feel the city.
No tab-switching, no raw list of 30 places, no fabricated confidence.
This plugin ships with a local dev marketplace so it loads in-repo without any publish step.
restaurant-ranker/.claude-plugin/marketplace.json.restaurant-ranker from that marketplace.The marketplace entry uses "source": "./", so the plugin root is this directory.
System python3 is 3.10 and cannot run model.py — import pymc and import numpy both
fail on it. You must build a uv-managed Python 3.12 venv once before the first run.
# Install uv if absent (uv 0.11.18 verified on the reference machine)
command -v uv >/dev/null || { curl -LsSf https://astral.sh/uv/install.sh | sh; export PATH="$HOME/.local/bin:$PATH"; }
# Create the 3.12 venv
uv venv /tmp/ranker-venv --python 3.12
# Install the model stack
uv pip install --python /tmp/ranker-venv/bin/python pymc arviz numpy h5netcdf
All other steps (corpus helpers, reviews, booking, render) use system python3 and need no venv.
Only Step D (model.py) requires the venv interpreter: /tmp/ranker-venv/bin/python.
Set these as shell env vars (the plugin never hardcodes paths or keys; never commit a key):
export GOOGLE_MAPS_API_KEY=<your-key> # Reviews enrichment (Google Places)
Graceful degradation: if GOOGLE_MAPS_API_KEY is absent, the reviews channel is skipped
rather than erroring out. The model runs on prestige + booking-demand alone, and the board flags
the skip in the honesty note. The ranking is still valid; it just has one fewer signal.
Optional enrichment keys:
export FOURSQUARE_API_KEY=<your-key> # Foursquare enrichment
export ORS_API_KEY=<your-key> # OpenRouteService (routing/isochrones)
export MAPBOX_TOKEN=<your-token> # Mapbox alternative for routing
Manila ships out of the box. Open a Claude Code session and type:
rank the best restaurants in manila
The orchestrator skill (skills/restaurant-ranker/SKILL.md) drives the 5-step pipeline and
produces manila-board.md in your CWD. See skills/restaurant-ranker/SMOKE.md for the
step-by-step smoke check and expected artifacts.
To rank a city not yet in skills/restaurant-ranker/cities/, author
skills/restaurant-ranker/cities/<slug>.json following
skills/restaurant-ranker/cities/_SCHEMA.md (CONFIG-02 — no code change needed, only the JSON config). Then invoke:
rank the best restaurants in <city>
The core flow uses HTTP-only probers for SevenRooms, Eatigo, and CoverManager — no browser
required for those engines. agent-browser, cloakbrowser, patchright, and xvfb are
only needed if a venue's booking platform uses hard anti-bot protection (Turnstile, DataDome,
ALTCHA). Most cities' booking coverage is achieved without them. See
skills/booking-probe/references/engine-routing.md for when escalation applies.
restaurant-ranker only reads availability, reviews, and prestige signals. It performs no action that moves money or commits a reservation. There is no booking-write code path, by design.
npx claudepluginhub clsandoval/restaurant-ranker --plugin restaurant-rankerDispatch autonomous work to Claude Managed Agents, generate podcasts locally, and run investigations. One plugin: /autopilot (remote), /podcast (local), /investigate (local).
Turn any spec, plan, or design doc into a podcast-style audio conversation using ElevenLabs TTS
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Frontend design skill for UI/UX implementation
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Memory compression system for Claude Code - persist context across sessions
Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, ad creative, and growth
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.