{"id":43522,"plugin_id":"plugin_asdk_app_6a99d92679e8819187a0fdda45825405","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:11:16.464Z","digest":"011358d87cbec0377cb128143b610a4b244c6e35d05d23d235ae0d833fd98e24","against":null,"payload":{"description":"Answer questions about where US businesses are, using the LocationLists tools. Use it when someone asks for a list, count, map or comparison of US business locations, such as brand dealers and stores, retail chains, restaurants, home-services companies (pest control, roofing, landscaping, pools, garage doors, fire protection, waste hauling), car washes, funeral homes, bank branches, healthcare providers, nonprofits or federal contractors. Also use it for how many of something are in a city, county, state or ZIP, within a radius, or within a drive time.","included_files":[],"name":"locationlists","skill_md_contents":"---\nname: locationlists\ndescription: Answer questions about where US businesses are, using the LocationLists tools. Use it when someone asks for a list, count, map or comparison of US business locations, such as brand dealers and stores, retail chains, restaurants, home-services companies (pest control, roofing, landscaping, pools, garage doors, fire protection, waste hauling), car washes, funeral homes, bank branches, healthcare providers, nonprofits or federal contractors. Also use it for how many of something are in a city, county, state or ZIP, within a radius, or within a drive time.\n---\n\n# LocationLists\n\nLocationLists publishes 1,333 lists of US business locations (15.7 million distinct places). Each list\ncomes from one brand's own store or dealer locator, or from the public register that publishes the\ndata. A row is a place: name, address, city, state, ZIP, and usually phone, website and coordinates,\nplus any extra columns the source publishes, such as dealer tier, product lines, deposits, revenue,\ncertification or service type.\n\nEvery analysis tool here is read-only and answers in the conversation. Each answer carries a link\nto the same answer on locationlists.com. If someone wants the file, give them that link and leave\nit there.\n\n## What is in the catalog\n\n| Industry | Lists | Kinds of place |\n|---|---|---|\n| Healthcare | 285 | practice, licensed provider, pharmacy, hospital, nursing home, assisted living facility |\n| Services & Industrial | 151 | branch, store, facility, franchise, contractor, funeral home |\n| Government Contractors | 148 | registered entity, OT award action, OT award vendor |\n| Education | 118 | college or university, school district, named people, athletics program |\n| Outdoor & Equipment | 99 | dealer, trailer dealer, service center, retailer, distributor, contractor |\n| Financial Services | 92 | branch, office, closed branch, institution |\n| Nonprofits | 90 | organisation, grant award |\n| Trades & Contractors | 82 | contractor, branch, dealer, franchise office |\n| Restaurants | 65 | restaurant, store, shop, food establishment |\n| Automotive | 59 | car wash, dealer, charging station, store, collision center, repair shop |\n| Home & Trade | 44 | store, dealer, retailer, service center, facility |\n| Mass & Specialty Retail | 38 | store, warehouse, licensee |\n| Furniture & Home | 27 | store, dealer, showroom |\n| Food & Beverage Retail | 19 | store, station |\n| Recreation & Community | 11 | school, market, campground, golf course, childcare provider, airport |\n| Producers | 5 | brewery, winery, distillery, licensee, dispensary |\n\n### Bundles (24)\n\nEach bundle puts the brands of one kind of business in one list, tagged by brand (and by owner, for roll-ups). The industry lists add the independent operators too. A question about one (\"pest control companies in Texas\", \"garage door dealers near Denver\") is answered over all of its member lists, duplicates removed. Search with the industry's words; the slug is the list.\n\n| List | Slug | Locations |\n|---|---|---|\n| Insurance Agency Industry Bundle | `insurance-agency-list` | 92,177 |\n| Outdoor Power Equipment Dealer Bundle | `outdoor-power-equipment-dealer-list` | 62,119 |\n| Roofing Contractor Industry Bundle | `roofing-company-list` | 55,498 |\n| Landscaping & Lawn Care Industry Bundle | `landscaping-company-list` | 31,311 |\n| Pharmacy Chain Bundle | `pharmacy-chain-locations-list` | 29,843 |\n| Funeral Home Industry Bundle | `funeral-home-database` | 28,674 |\n| Generator Dealer Bundle | `generator-dealer-list` | 23,973 |\n| Hardware Store Industry Bundle | `hardware-store-list` | 22,475 |\n| Car Wash Industry Bundle | `car-wash-company-list` | 18,695 |\n| Energy Infrastructure Bundle: Power Plants, Refineries & Fuel Terminals | `energy-infrastructure-list` | 16,229 |\n| Pool Industry Bundle | `pool-company-list` | 14,343 |\n| Garage Door Industry Bundle | `garage-door-company-list` | 13,141 |\n| Pest Control Industry Bundle | `pest-control-company-list` | 13,095 |\n| Heavy & Construction Equipment Dealer Bundle | `heavy-equipment-dealer-list` | 11,584 |\n| Equipment Rental Industry Bundle | `equipment-rental-company-list` | 11,495 |\n| Aerial Lift Dealer & Rental Location Bundle | `aerial-lift-dealer-list` | 11,321 |\n| Waste Collection & Hauling Industry Bundle | `waste-hauler-list` | 8,202 |\n| Compact & Construction Equipment Dealer Bundle | `construction-equipment-dealer-list` | 7,311 |\n| Tractor Dealer Bundle | `tractor-dealer-list` | 7,100 |\n| Fire Protection Industry Bundle | `fire-protection-company-list` | 3,392 |\n| Fuel-System Contractor Bundle | `fuel-system-contractor-list` | 2,306 |\n| Foodservice Distribution Centers Bundle | `foodservice-distribution-centers` | 537 |\n| Concrete Cutting & Coring Industry Bundle | `concrete-cutting-contractor-list` | 465 |\n| Waste Equipment Dealer Bundle | `waste-equipment-dealer-list` | 268 |\n\nBeyond the brands LocationLists compiles itself, `search_datasets` also returns lists built from\nOverture Maps open data (slugs starting `overture-brand-` or `overture-category-`). They cover almost\nany US brand or kind of place, including independents, and each says how complete it is. When\nLocationLists has its own list for the same brand, use that one.\n\n## How to talk to the user\n\n- The person asking is usually a business person, not a developer. Use plain language. Don't show\n  them JSON, tool names or slugs unless they ask.\n- Search, read a list's details, look at sample rows, count and compare as much as you need before\n  answering.\n- Show real rows early. Ten actual records tell the user more than a description of the columns.\n- Say where the data came from. Every list names its source: the brand's own locator, or a register\n  (FDIC, NPPES, IRS, SAM.gov). That is the main reason to trust the answer.\n- When freshness matters, report the file's real last-modified date from `get_dataset`, not the\n  advertised refresh schedule.\n\n## Start by finding the right list\n\nCall `search_datasets` first with the user's words: a brand (`bobcat`), a kind of business\n(`urgent care`, `nursing home`) or an industry (`bank branches`). It returns every match, best\nfirst, with the slug, name, record count, coverage and whether the list has coordinates\n(`distanceSearch`). Every other tool takes that slug.\n\nIf nothing fits, say so and offer `request_list` (see below).\n\n## The tools\n\n**`search_datasets`** finds lists: `query`, `category`, `limit`. Set `kind` to choose what it\nsearches:\n\n- `list` (the default): the lists LocationLists publishes.\n- `register`: public registers read from their publisher at question time, such as a state's\n  licensed child care, liquor licenses or USDA SNAP retailers. Add `state` to prefer one state's\n  registers. Each result has a `source` key. A register is never sold; it is something to compare a\n  list against (see `relate_locations` mode `near`).\n\n**`get_dataset`** describes one list (`slug`): its fields, record and state counts, coverage,\nwhether it can be searched by distance, the advertised refresh schedule, the real last-modified\ndate of the file, and FAQs.\n\n**`get_sample`** returns real rows (`slug`, plus any filter below). With no filters it returns up to\nten rows spread across the list. With filters it says how many rows match and shows the list's fixed\nsample rows, each marked as matching or not. Set `shape` to `hubspot` or `salesforce` for CRM-ready\ncolumn names. Show these rows to the user.\n\n**`count_locations`** counts the rows that match. Filters:\n\n- `dataset` (one slug), `datasets` (several) or `category` (a kind of business). `exclude` drops\n  lists from a category, so a brand's competitors are its category minus itself.\n- `state`, `city`, `county`, `zip`, and `metro` (a metro area by name, such as \"Atlanta\").\n- `near`: `{ place: \"Topeka, KS\" }`, `{ zip: \"66603\" }` or `{ lat, lng }`, or `points` (up to 10 of\n  those, such as a company's offices; a row counts when it is near any of them). Add either\n  `radius_miles` (straight line, up to 500) or `drive_minutes` (5 to 60, typical road speeds, no live\n  traffic), not both.\n- `where`: a list of `{ field, op, value }`. `field` is a column name exactly as `get_dataset` lists\n  it. `op` is one of `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `not_in`, `contains`,\n  `not_contains`, `starts_with`, `is_blank`, `not_blank`, or `any_of` (a list of conditions, any one\n  of which is enough).\n- `area_where`: Census figures for the area a row is in, such as `county:population>500000`.\n  `area_columns` adds those figures to every row.\n- `permits`: keeps only rows within about 60 meters of a building permit, read from the city's own\n  permit register: `{ days, type, min_usd }`, where type is `commercial`, `residential`,\n  `new_construction`, `roofing`, `solar` and so on. It works only in cities whose register\n  LocationLists reads; elsewhere the answer says why.\n\nThe answer also says how many rows were left out only because the tested column was blank. Tell the\nuser when that number is large: a thin column makes a count look smaller than the truth, which is\ndifferent from the places not existing.\n\n**`relate_locations`** compares one list with another. It needs `relate`, which takes a `mode` and,\nfor most modes, an `anchor`: the other set, described with the same `dataset`, `state`, `where` and\n`near` fields.\n\nBy distance:\n\n- `nearest`: each row's 1 to 3 closest places on the other list, with miles.\n- `count_within`: rows ranked by how many places on the other list are within a distance.\n- `within_any`: rows with at least one place on the other list within a distance.\n- `none_within`: rows with none within a distance (white space).\n\nBy place:\n\n- `same_place` / `not_same_place`: rows that are (or are not) the same physical place as a row of\n  the other list, meaning the same address, or within 60 meters and sharing a name word. Use it for\n  dealers that carry two brands, or stores inside another chain. `anchors`, `also` and `not_also`\n  add up to three more sets.\n- `near` / `not_near`: the same idea by distance alone (`near_m`, 10 to 200 meters, default 30).\n  This is how you compare a list with a register: give a set `opendata` `{ source, state }` instead\n  of a dataset, using the source key from `search_datasets`.\n\nBy pattern (no anchor):\n\n- `typically_near`: what the list's locations are usually near, meaning the kinds of place and\n  brands found near them much more often than near a typical commercial spot. The state is\n  optional; without one, the answer uses the list's biggest state and says so.\n- `next_best`: needs the base set's `state`. Returns the places in that state that fit that pattern\n  best, weighted by an estimate of the local demand each would capture. With fewer than 10 existing\n  locations the pattern comes with a thin-sample note.\n\nBy territory:\n\n- `overlap`: how much of one list's territory (a radius around each location) the other list also\n  covers, and which locations overlap least.\n\n**`count_by_area`** counts locations per area. It needs `by` (`county`, `zip`, `state` or `metro`)\nand `sets` (1 to 4, each labeled, each a dataset, datasets or category, or a register given as\n`opendata`, plus filters including its own `near`). Add `has` and `lacks` with those labels to find\nareas that have one thing and not another. Use `per` for a count per head of population,\n`area_where` and `area_columns` for Census figures, and `order_by`, `limit` and `offset` to page\nthrough results.\n\n**`cotenancy`** measures how often two kinds of place sit together. It needs `a` and `b` (each a\nset; either can be a register), `radius_miles`, and optionally `by`. It returns the share of each\nwithin that distance of the other, how many overlap, and the areas that have both, only `a` or only\n`b`.\n\n**`request_list`** asks LocationLists to add a list that does not exist yet. It needs `topic`. Ask\nthe user before sending, ask for an email so the team can reply, and pass `email_declined` if they\nwould rather not give one.\n\n**`send_feedback`** sends the team a message about wrong or missing data, something that did not\nwork, or an idea. It needs `message`. Ask the user first and use their words.\n\n## Things that trip people up\n\n- **Distances are straight-line miles** unless you used `drive_minutes`. Say which. Drive time\n  depends on an outside routing service; when an answer says it is unavailable, ask again with\n  `radius_miles` and tell the user you did.\n- **A live register or permit register can be down or refuse a question.** The answer then says why\n  (the publisher did not respond, or publishes too few coordinates). Pass that on. It is not a zero.\n- **Rows without coordinates are left out of distance work and counted separately.** They are never\n  treated as far away. If the count is large, tell the user.\n- **Duplicates are removed** when you combine lists, and the answer says how many.\n- **A radius around a place is not a trade area.** For a real estate or territory decision,\n  `drive_minutes` is usually the better measure.\n- **\"How many dealers does brand X have\" has two answers.** Marketing counts often include\n  distributors across the network. These lists hold every location in the brand's own locator. Say\n  which number you are giving.\n- **Not every list has every column.** Check `get_dataset` before filtering on a column.\n\n## What this does not do\n\nBusiness locations in the United States (and Canada, for some lists) only. No homes for sale, no\ndirections or live traffic, and no personal contact details for individuals. If the user asks for\none of these, say plainly that it is out of scope.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}