Local Places
Use this skill to run a two-step flow: resolve location first, then search.
Quick checklist
- Confirm API base URL (default
http://127.0.0.1:8000) and that GET /ping responds.
- Resolve the user location with
POST /locations/resolve.
- If multiple results are returned, show a numbered list (name + address) and ask the user to choose.
- Ask what they are looking for and any constraints (open now, min rating, price level, type, limit, radius).
- Search with
POST /places/search using location_bias from the chosen location.
- Present results and offer to fetch details via
GET /places/{place_id}.
Conversation rules
- Always ask for a location if none is set yet.
- If the user says “near me,” ask for a city/neighborhood or a specific place to resolve.
- Keep the selected location for follow-up searches until the user changes it.
- If multiple types are mentioned, pick the most important type and fold the rest into the query or
filters.keyword.
- If the user asks for more results, use
next_page_token with page_token.
Input constraints (enforce or clarify)
filters.types supports exactly one type.
filters.price_levels must be integers 0–4.
filters.min_rating must be 0–5 in 0.5 increments.
limit: 1–20 for search, 1–10 for resolve.
location_bias.radius_m must be > 0.
Output expectations
- List results with name, rating, price level (if present), address, and open-now status.
- Provide a clear follow-up prompt (refine filters, change radius, or request details).
Example flow (minimal)
- Resolve location
POST /locations/resolve
{
"location_text": "SoHo, New York",
"limit": 5
}
If multiple results, ask the user to pick one by number.
- Search nearby
POST /places/search
{
"query": "coffee shop",
"location_bias": { "lat": 40.7233, "lng": -74.0020, "radius_m": 2000 },
"filters": { "types": ["cafe"], "open_now": true, "min_rating": 4.0 },
"limit": 10
}
- Optional: details
GET /places/{place_id}
Reference
- See
references/api.md for full request/response shapes and examples.
1---2name: local-places3description: Use the local Places API (Google Maps search proxy on localhost) to resolve a user's location, have them choose the correct match, then search for nearby places with preferences (type, open now, min rating, price levels, limit). Trigger for requests like “find restaurants near me”, “coffee in SoHo”, “best gyms in Brooklyn”, or when you need place details by place_id.4---56# Local Places78Use this skill to run a two-step flow: resolve location first, then search.910Quick checklist11- Confirm API base URL (default `http://127.0.0.1:8000`) and that `GET /ping` responds.12- Resolve the user location with `POST /locations/resolve`.13- If multiple results are returned, show a numbered list (name + address) and ask the user to choose.14- Ask what they are looking for and any constraints (open now, min rating, price level, type, limit, radius).15- Search with `POST /places/search` using `location_bias` from the chosen location.16- Present results and offer to fetch details via `GET /places/{place_id}`.1718Conversation rules19- Always ask for a location if none is set yet.20- If the user says “near me,” ask for a city/neighborhood or a specific place to resolve.21- Keep the selected location for follow-up searches until the user changes it.22- If multiple types are mentioned, pick the most important type and fold the rest into the query or `filters.keyword`.23- If the user asks for more results, use `next_page_token` with `page_token`.2425Input constraints (enforce or clarify)26- `filters.types` supports exactly one type.27- `filters.price_levels` must be integers 0–4.28- `filters.min_rating` must be 0–5 in 0.5 increments.29- `limit`: 1–20 for search, 1–10 for resolve.30- `location_bias.radius_m` must be > 0.3132Output expectations33- List results with name, rating, price level (if present), address, and open-now status.34- Provide a clear follow-up prompt (refine filters, change radius, or request details).3536Example flow (minimal)371) Resolve location38```bash39POST /locations/resolve40{41 "location_text": "SoHo, New York",42 "limit": 543}44```45If multiple results, ask the user to pick one by number.46472) Search nearby48```bash49POST /places/search50{51 "query": "coffee shop",52 "location_bias": { "lat": 40.7233, "lng": -74.0020, "radius_m": 2000 },53 "filters": { "types": ["cafe"], "open_now": true, "min_rating": 4.0 },54 "limit": 1055}56```57583) Optional: details59```bash60GET /places/{place_id}61```6263Reference64- See `references/api.md` for full request/response shapes and examples.