mapbox-search-patterns
Expert guidance on choosing the right Mapbox search tool and parameters for geocoding, POI search, and location discovery
What this skill does
# Mapbox Search Patterns Skill
Expert guidance for AI assistants on using Mapbox search tools effectively. Covers tool selection, parameter optimization, and best practices for geocoding, POI search, and location discovery.
## Available Search Tools
### 1. search_and_geocode_tool
**Best for:** Specific places, addresses, brands, named locations
**Use when query contains:**
- Specific names: "Starbucks on 5th Avenue", "Empire State Building"
- Brand names: "McDonald's", "Whole Foods"
- Addresses: "123 Main Street, Seattle", "1 Times Square"
- Chain stores: "Target"
- Cities/places: "San Francisco", "Portland"
**Don't use for:** Generic categories ("coffee shops", "museums")
### 2. category_search_tool
**Best for:** Generic place types, categories, plural queries
**Use when query contains:**
- Generic types: "coffee shops", "restaurants", "gas stations"
- Plural forms: "museums", "hotels", "parks"
- Is-a phrases: "any coffee shop", "all restaurants", "nearby pharmacies"
- Industry terms: "electric vehicle chargers", "ATMs"
**Don't use for:** Specific names or brands
### 3. reverse_geocode_tool
**Best for:** Converting coordinates to addresses, cities, towns, postcodes
**Use when:**
- Have GPS coordinates, need human-readable address
- Need to identify what's at a specific location
- Converting user location to address
## Tool Selection Decision Matrix
| User Query | Tool | Reasoning |
| ------------------------------- | ----------------------- | ------------------------ |
| "Find Starbucks on Main Street" | search_and_geocode_tool | Specific brand name |
| "Find coffee shops nearby" | category_search_tool | Generic category, plural |
| "What's at 37.7749, -122.4194?" | reverse_geocode_tool | Coordinates to address |
| "Empire State Building" | search_and_geocode_tool | Specific named POI |
| "hotels in downtown Seattle" | category_search_tool | Generic type + location |
| "Target store locations" | search_and_geocode_tool | Brand name (even plural) |
| "any restaurant near me" | category_search_tool | Generic + "any" phrase |
| "123 Main St, Boston, MA" | search_and_geocode_tool | Specific address |
| "electric vehicle chargers" | category_search_tool | Industry category |
| "McDonald's" | search_and_geocode_tool | Brand name |
## Parameter Guidance
### Proximity vs Bbox vs Country
**Three ways to spatially constrain search results:**
#### 1. proximity (STRONGLY RECOMMENDED)
**What it does:** Biases results toward a location, but doesn't exclude distant matches
**Use when:**
- User says "near me", "nearby", "close to"
- Have a reference point but want some flexibility
- Want results sorted by relevance to a point
**Example:**
```json
{
"q": "pizza",
"proximity": {
"longitude": -122.4194,
"latitude": 37.7749
}
}
```
**Why this works:** API returns SF pizza places first, but might include famous NYC pizzerias if highly relevant
**Critical:** Always set proximity when you have a reference location! Without it, results are IP-based or global.
#### 2. bbox (Bounding Box)
**What it does:** Hard constraint - ONLY returns results within the box
**Use when:**
- User specifies an area: "in downtown", "within this neighborhood"
- Have a defined service area
- Need to guarantee results are within bounds
**Example:**
```json
{
"q": "hotel",
"bbox": [-122.51, 37.7, -122.35, 37.83] // [minLon, minLat, maxLon, maxLat]
}
```
**Why this works:** Guarantees all hotels are within SF's downtown area
**Watch out:** Too small = no results; too large = irrelevant results
#### 3. country
**What it does:** Limits results to specific countries
**Use when:**
- User specifies country: "restaurants in France"
- Building country-specific features
- Need to respect regional boundaries
- Or it is otherwise clear they want results within a specific country
**Example:**
```json
{
"q": "Paris",
"country": ["FR"] // ISO 3166 alpha-2 codes
}
```
**Why this works:** Finds Paris, France (not Paris, Texas)
**Can combine:** `proximity` + `country` + `bbox` or any combination of the three
### Decision Matrix: Spatial Filters
| Scenario | Use | Why |
| ---------------------------------- | ----------------------------------- | --------------------------------- |
| "Find coffee near me" | proximity | Bias toward user location |
| "Coffee shops in downtown Seattle" | proximity + bbox | Center on downtown, limit to area |
| "Hotels in France" | country | Hard country boundary |
| "Best pizza in San Francisco" | proximity + country ["US"] | Bias to SF, limit to US |
| "Gas stations along this route" | bbox around route | Hard constraint to route corridor |
| "Restaurants within 5 miles" | proximity (then filter by distance) | Bias nearby, filter results |
### Setting limit Parameter
**category_search_tool only** (1-25, default 10)
| Use Case | Limit | Reasoning |
| --------------------- | ----- | ----------------------- |
| Quick suggestions | 5 | Fast, focused results |
| Standard list | 10 | Default, good balance |
| Comprehensive search | 25 | Maximum allowed |
| Map visualization | 25 | Show all nearby options |
| Dropdown/autocomplete | 5 | Don't overwhelm UI |
**Performance tip:** Lower limits = faster responses
### types Parameter (search_and_geocode_tool)
**Filter by feature type:**
| Type | What It Includes | Use When |
| ---------- | ------------------------------------------ | --------------------------------- |
| `poi` | Points of interest (businesses, landmarks) | Looking for POIs, not addresses |
| `address` | Street addresses | Need specific address |
| `place` | Cities, neighborhoods, regions | Looking for area/region |
| `street` | Street names without numbers | Need street, not specific address |
| `postcode` | Postal codes | Searching by ZIP/postal code |
| `district` | Districts, neighborhoods | Area-based search |
| `locality` | Towns, villages | Municipality search |
| `country` | Country names | Country-level search |
**Example combinations:**
```json
// Only POIs and addresses, no cities
{"q": "Paris", "types": ["poi", "address"]}
// Returns Paris Hotel, Paris Street, not Paris, France
// Only places (cities)
{"q": "Paris", "types": ["place"]}
// Returns Paris, France; Paris, Texas; etc.
```
**Default behavior:** All types included (usually what you want)
### auto_complete Parameter (search_and_geocode_tool)
**What it does:** Enables partial/fuzzy matching
| Setting | Behavior | Use When |
| ----------------- | ---------------------------- | ----------------------------- |
| `true` | Matches partial words, typos | User typing in real-time |
| `false` (default) | Exact matching | Final query, not autocomplete |
**Example:**
<!-- cspell:disable -->
```json
// User types "starb"
{ "q": "starb", "auto_complete": true }
// Returns: Starbucks, Starboard Tavern, etc.
```
**Use for:**
- Search-as-you-type interfaces
- Handling typos ("mcdonalds" -> McDonald's)
<!-- cspell:enable -->
- Incomplete queries
**Don't use for:**
- Final/submitted queries (less precise)
- When you need exact matches
## Anti-Patterns to ARelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.