restaurant-search

Search for Japanese restaurants using the `hpp` CLI (HotPepper Gourmet API). Use when the user wants to find a restaurant, plan a dinner, search for izakayas, or book a group meal in Japan. Triggers on requests like "find a restaurant near Shibuya", "search for izakayas in 新宿", "restaurant for 10 people in 浜松町", "dinner spot near Tokyo station".

12 stars

Best use case

restaurant-search is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Search for Japanese restaurants using the `hpp` CLI (HotPepper Gourmet API). Use when the user wants to find a restaurant, plan a dinner, search for izakayas, or book a group meal in Japan. Triggers on requests like "find a restaurant near Shibuya", "search for izakayas in 新宿", "restaurant for 10 people in 浜松町", "dinner spot near Tokyo station".

Teams using restaurant-search should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/restaurant-search/SKILL.md --create-dirs "https://raw.githubusercontent.com/jackchuka/skills/main/restaurant-search/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/restaurant-search/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How restaurant-search Compares

Feature / Agentrestaurant-searchStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Search for Japanese restaurants using the `hpp` CLI (HotPepper Gourmet API). Use when the user wants to find a restaurant, plan a dinner, search for izakayas, or book a group meal in Japan. Triggers on requests like "find a restaurant near Shibuya", "search for izakayas in 新宿", "restaurant for 10 people in 浜松町", "dinner spot near Tokyo station".

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Restaurant Search

Find Japanese restaurants using the `hpp` CLI (HotPepper Gourmet API).
https://github.com/jackchuka/hpp

## Prerequisites

- `hpp` CLI installed and `HOTPEPPER_API_KEY` env var set

## Workflow

### 1. Parse the request

Extract from the user's request:

- **Location**: Station name, area name, or coordinates
- **Party size**: Number of people (maps to `--party-capacity`)
- **Day/time**: Determines which restaurants are open (check `open`/`close` fields)
- **Genre preference**: e.g., izakaya, Chinese, Italian (maps to `--genre`)
- **Budget**: Price range (maps to `--budget`)
- **Features**: Private rooms (`--private-room`), non-smoking (`--non-smoking`), WiFi (`--wifi`), free drink (`--free-drink`), etc.
- **Keywords**: Free text like "ramen", "sushi" (maps to `--keyword`)

### 2. Resolve the area code

The API requires area codes, not free-text location names. Resolve the location:

```bash
hpp area small --keyword "<location-name>"
```

This returns small area codes (e.g., `X085` for 浜松町) along with parent middle/large area codes.

If no small area matches, try middle area:

```bash
hpp area middle --keyword "<location-name>"
```

If the user provides coordinates (lat/lng), skip area lookup and use `--lat`, `--lng`, `--range` instead.

### 3. Resolve genre codes (if needed)

If the user requests a specific cuisine type:

```bash
hpp genre
```

Common genre codes:

| Code | Genre                |
| ---- | -------------------- |
| G001 | 居酒屋               |
| G002 | ダイニングバー・バル |
| G003 | 創作料理             |
| G004 | 和食                 |
| G005 | 洋食                 |
| G006 | イタリアン・フレンチ |
| G007 | 中華                 |
| G008 | 焼肉・ホルモン       |
| G009 | アジア・エスニック   |
| G010 | 各国料理             |
| G011 | カラオケ・パーティ   |
| G012 | バー・カクテル       |
| G013 | ラーメン             |
| G014 | カフェ・スイーツ     |
| G016 | お好み焼き・もんじゃ |
| G017 | 韓国料理             |

If unsure, run `hpp genre` to get the full list.

### 4. Resolve budget codes (if needed)

If the user specifies a budget:

```bash
hpp budget
```

Common budget codes:

| Code | Range         |
| ---- | ------------- |
| B001 | ~1500円       |
| B002 | 2001~3000円   |
| B003 | 3001~4000円   |
| B008 | 4001~5000円   |
| B004 | 5001~7000円   |
| B005 | 7001~10000円  |
| B006 | 10001~15000円 |
| B012 | 15001~20000円 |
| B013 | 20001~30000円 |
| B014 | 30001円~      |

### 5. Search restaurants

Build the `hpp search` command with resolved codes and flags:

```bash
hpp search --small-area <code> --party-capacity <N> --count 10
```

Key flags to apply based on user needs:

| Need                    | Flag                                    |
| ----------------------- | --------------------------------------- |
| Party size              | `--party-capacity <N>`                  |
| Genre                   | `--genre <code>`                        |
| Budget                  | `--budget <code>`                       |
| Private room            | `--private-room`                        |
| Non-smoking             | `--non-smoking`                         |
| WiFi                    | `--wifi`                                |
| All-you-can-drink       | `--free-drink`                          |
| All-you-can-eat         | `--free-food`                           |
| English menu            | `--english`                             |
| Card payment            | `--card`                                |
| Late night (after 11pm) | `--midnight`                            |
| Lunch                   | `--lunch`                               |
| Keyword                 | `--keyword "<text>"`                    |
| Coordinates             | `--lat <lat> --lng <lng> --range <1-5>` |

Range values for coordinate search: 1=300m, 2=500m, 3=1km, 4=2km, 5=3km.

Always use JSON output (default) for parsing, then present results as a table.

### 6. Present results

Display results as a markdown table with these columns:

| Column       | Source                                      |
| ------------ | ------------------------------------------- |
| #            | Row number                                  |
| Restaurant   | `name`                                      |
| Genre        | `genre.name`                                |
| Budget       | `budget.average`                            |
| Access       | `access` (summarize to station + walk time) |
| Private Room | `private_room` (yes/no/semi)                |
| Hours        | `open` (show relevant day only)             |
| Link         | `urls.pc` (as clickable markdown link)      |

After the table, add brief recommendations highlighting the best options for the user's specific needs (e.g., closest to station, best for groups, has private rooms).

### 7. Refine (if requested)

If the user wants to narrow down, add more flags and re-search. Common refinements:

- "with private rooms" → add `--private-room`
- "under 4000 yen" → add `--budget B001,B002,B003`
- "non-smoking" → add `--non-smoking`
- "show me more" → increase `--count` or use `--start` for pagination

## Other Useful Commands

- `hpp shop --name "<name>"` — Look up a specific restaurant by name
- `hpp special list` — Browse special features/tags
- `hpp creditcard` — List accepted credit card types

## Important Notes

- Always use `--count` to limit results (default 10, max 100)
- The API returns Japanese text — present it as-is, do not translate unless asked
- Monday = 月, check `open`/`close` fields to verify the restaurant is open on the requested day
- When the user specifies a day, check the `close` field for regular holidays (e.g., 日 = Sunday)
- Coupon links are available in `coupon_urls.sp` — mention if the user asks about deals

Related Skills

p-ego-search

12
from jackchuka/skills

Search for mentions of you across Slack, Fireflies, and GitHub. Triggers on "egosearch", "/egosearch", "search for mentions of me", "who's talking about me".

project-namer

12
from jackchuka/skills

Use when naming a project, repository, tool, or product and wanting a memorable, unique name

p-slack-triage

12
from jackchuka/skills

Scan Slack for messages needing your attention, walk through them one-by-one, and draft/send replies. Covers DMs, mentions, threads, and channel activity. Use when the user wants to triage Slack, check what needs attention, or draft replies. Triggers on "triage slack", "check slack", "what needs my attention on slack", "slack replies", "review slack messages", "/slack-triage".

p-news-briefing

12
from jackchuka/skills

Use when the user asks for news, wants a briefing, says "/news-briefing", or asks to aggregate recent information on any topic. Triggers on requests like "what's happening with AI", "get me news on crypto", "news briefing on climate".

p-md-to-slides

12
from jackchuka/skills

Convert a structured Markdown deck source into a styled Google Slides presentation. Use this skill when the user has a slide.md file (or wants to write one) and wants Google Slides output — talks, LT decks, lecture slides, conference presentations, internal explainers. Trigger phrases include "md からスライド作って", "slide.md を Google Slides にして", "発表資料を Google Slides で", "convert this markdown to slides", "build a Google Slides deck from this markdown", "make slides from md", "/md-to-slides", and similar. Also use when the user references a presentation/<date>/slide.md file structure with `## Slide N — title`, `**話すこと:**`, and `**スライド要素:**` sections.

p-daily-standup

12
from jackchuka/skills

Aggregate previous business day activity and post standup update to Slack. Use when the user says "standup", "daily standup", "post status", "status update", or "/daily-standup".

p-daily-report

12
from jackchuka/skills

Use when reviewing what you worked on, creating standups, writing status updates, tracking daily/weekly progress, or asking "what did I do today"

p-daily-reflection

12
from jackchuka/skills

Reflect on past work and iterate to improve. Analyzes Claude sessions, GitHub, Slack, and Fireflies to generate a journal entry with actionable improvements. Updates persistent memory with confirmed learnings. Use when the user says "reflect", "reflection", "what can I improve", "retrospective", "review my work", or "/daily-reflection".

p-blog-writer

12
from jackchuka/skills

Write blog posts in {user_name}'s voice with theoretical depth and persuasive arguments. Iterative workflow: intake → outline → section-by-section expansion → polish. Adapts to tool announcements, opinion pieces, deep-dives, and tutorials. Use when the user says "/blog-writer", "write a blog post", "draft an article about", "help me write about", or wants to create blog content.

p-blog-post-mining

12
from jackchuka/skills

Mine development activities for blog-worthy topics and create outlines. Analyzes Claude session history, GitHub commits/PRs, Slack discussions, and Fireflies meeting recordings to find interesting stories. Use when the user wants blog ideas, content inspiration, or asks "what can I write about", "find blog material", "blog ideas from my work", "/blog-post-mining".

p-activity-digest

12
from jackchuka/skills

Summarize recent communication activity from Slack and meeting recordings. Use when the user wants to know what happened on Slack, review meeting action items, find mentions, or get a communication summary. Triggers on "summarize Slack", "meeting action items", "what was discussed", "activity summary", "search my mentions", "highlight of the day", "/activity-digest".

gws-meeting-scheduler

12
from jackchuka/skills

Schedule meetings between people using the `gws` CLI (Google Calendar). Use when the user wants to find a meeting time, schedule a meeting, check availability, or book time with someone. Triggers on requests like "schedule a meeting with X", "find time with Y", "book a 1:1", "when can I meet with Z", "set up a sync".