Skip to main content
skill CX Codex

grubhub — Claude Code skill: restaurant search

Find nearby restaurants, browse menus and prices, and check delivery or pickup estimates. Useful when comparing places before ordering.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add imoonkey/openweb --skill grubhub -a claude-code
Open on GitHub

What grubhub does

Search by latitude and longitude to get nearby restaurants, including names, ratings, fees and other details. Add a search term to narrow the results by a dish or cuisine. Once you have a restaurantId, you can retrieve the menu or check opening status, the order minimum, and delivery or pickup estimates.

Responses use camelCase fields. Prices are in USD, and time estimates are returned as minute ranges, so delivery fees and order minimums can be compared as separate amounts. Restaurant search requires coordinates; menu and delivery lookups require the restaurant’s restaurantId. Search results support pagination with pageNum and pageSize.

What it helps with

  • find restaurants near given coordinates
  • narrow restaurant results by dish or cuisine
  • view menu categories and item prices
  • compare delivery fees and order minimums
  • check delivery and pickup time ranges

Example prompts for the agent

  • Find pizza places near latitude 40.7484 and longitude -73.9857, then compare delivery fees.
  • Show the menu and item prices for restaurant 64436.
  • Check opening status, order minimum, and delivery estimates for restaurant 64436.

How to install grubhub

1Skills CLI (Vercel)

npx skills add imoonkey/openweb --skill grubhub -a claude-code

2Manually: put the files in place

~/.claude/skills/grubhub/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/grubhub/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about grubhub

How do I install grubhub in Claude Code?

Run npx skills add imoonkey/openweb --skill grubhub -a claude-code. The skill file is at ~/.claude/skills/grubhub/SKILL.md.

What does grubhub do?

It searches for restaurants by location, retrieves menus with prices, and checks delivery or pickup details.

What do I need to retrieve a restaurant menu?

Search using latitude and longitude first, then pass the restaurant’s restaurantId to the menu lookup.

Source text

SKILL.md · MIT
# Grubhub

## Overview
Grubhub is a food delivery platform (archetype: Food Delivery). Search restaurants, browse menus with prices, and check delivery time/fee estimates.

Responses are **adapter-trimmed** (camelCase, prices in USD dollars). Fields are clean and ready to use.

## Workflows

### Find restaurants and browse menu
1. `searchRestaurants(latitude, longitude, searchTerm)` → `restaurants[]` with `restaurantId`, `name`, ratings, fees
2. `getMenu(restaurantId)` → `categories[].items[]` with names and prices

### Check delivery details
1. `searchRestaurants(latitude, longitude)` → `restaurants[].restaurantId`
2. `getDeliveryEstimate(restaurantId)` → open/hours, delivery fee, pickup estimate, minimum order

## Operations

| Operation | Intent | Key Input | Top-level Shape | Notes |
|-----------|--------|-----------|-----------------|-------|
| searchRestaurants | find restaurants near a location | latitude, longitude, searchTerm? | `{ totalResults, restaurants[] }` | paginated via `pageNum`/`pageSize` |
| getMenu | browse restaurant menu | restaurantId ← searchRestaurants | `{ restaurantName, categories[] }` | items in `categories[].items[]` |
| getDeliveryEstimate | check delivery time and fees | restaurantId ← searchRestaurants | `{ open, openDelivery, deliveryFee, orderMinimum, … }` | money in USD; ranges in minutes |

## Field Reference

### searchRestaurants — `restaurants[]`
- `restaurantId` — unique ID (use with getMenu and getDeliveryEstimate)
- `name` — restaurant name
- `rating` — average rating (0-5 scale, null if too few)
- `ratingCount` — number of ratings
- `priceRating` — price tier (1-4, dollar signs)
- `cuisines` — array of cuisine strings
- `logo` — logo URL (nullable)
- `deliveryFee` — delivery fee in USD
- `deliveryEstimateMin` / `deliveryEstimateMax` — delivery time range in minutes (nullable)
- `address` — street address (nullable)
- `distance` — miles from delivery location (nullable)
- `totalResults` — total matching restaurants (top level)

### getMenu — `categories[]`
- `restaurantName` — restaurant name (top level)
- `categories[].name` — category name (e.g. "Appetizers", "Pizza")
- `categories[].items[].itemId` — menu item ID
- `categories[].items[].name` — item name
- `categories[].items[].description` — item description (nullable)
- `categories[].items[].price` — price in USD
- `categories[].items[].popular` — popular flag

### getDeliveryEstimate
- `restaurantId` — restaurant ID
- `open` / `openDelivery` / `openPickup` — availability flags
- `deliveryEstimateMin` / `deliveryEstimateMax` — delivery time range in minutes
- `pickupEstimateMin` / `pickupEstimateMax` — pickup time range in minutes (nullable)
- `deliveryFee` — delivery fee in USD
- `orderMinimum` — minimum order in USD
- `salesTax` — sales tax rate (e.g. 8.875 for 8.875%)

## Quick Start

```bash
# Search for pizza near Midtown Manhattan
openweb grubhub exec searchRestaurants '{"latitude": 40.7484, "longitude": -73.9857, "searchTerm": "pizza"}'

# Get a restaurant's menu
openweb grubhub exec getMenu '{"restaurantId": "64436"}'

# Check delivery estimate
openweb grubhub exec getDeliveryEstimate '{"restaurantId": "64436"}'
```

© imoonkey · MIT · imoonkey/openweb

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set12

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor