Post videos, photos, text, and documents to 10 social platforms through a single REST API call.
Data & analysis
local-business-prospecting
Try itBuild and qualify local-business prospect lists by category and geography using Crawlora's Google Maps dataset, live Google Maps, Apple Maps, Yelp, and public business websites. Use when the user wants a deduplicated lead shortlist or CSV with business contacts and qualification evidence.
What it does
Produce a business shortlist with transparent selection criteria and source evidence. Researching a list does not authorize sending outreach or importing it into a CRM; perform those actions only when the user requests them.
The skill document
Local-business prospecting
Produce a business shortlist with transparent selection criteria and source evidence. Researching a list does not authorize sending outreach or importing it into a CRM; perform those actions only when the user requests them.
Setup and requests
Set CRAWLORA_API_KEY to your key from crawlora.net.
Run the bundled scripts/crawlora.sh from this skill's directory or by absolute
path. It calls https://api.crawlora.net/api/v1 with x-api-key and prints JSON.
Keep the key in the environment. Read reference/endpoints.md
for the exact parameters; providers use different geography and pagination fields.
Workflow
- Establish the business type, geography, requested count, and qualification criteria from the user's brief. If a material criterion is missing, ask; otherwise state a reasonable assumption and start with a small discovery page.
- Search
/datasets/google-map-businesses/searchfor bulk discovery. Use/facets?facet=categoryto discover exact, possibly localized category labels. Search supportspage_sizeup to 100 and a 10,000-record result window. Radius searches requirelat,lon, andradius_m(maximum 50,000 meters). Dataset counts describe this indexed corpus, not every business in the area. - For fresh discovery or sparse dataset results, use live Google Maps search. Apple Maps and Yelp can supplement coverage; read their individual parameters in the reference. Preserve source identities when merging results.
- Deduplicate by provider ID first. Across providers, compare normalized name, address, domain, and phone; require consistent evidence before merging. A shared chain website alone does not make two branches the same business.
- Refresh the most relevant candidates with live place detail. Inspect the
business's own website only when contact or qualification evidence is needed.
POST /web/scrapetakes flaturlandformatsfields;POST /extracttakes flaturlandschemafields. Neither uses the catalog body label as a wrapper. Extract only publicly published business contact details and retain the exact source page. Do not infer email addresses or claim deliverability verification. - Apply the user's explicit rules, retain exclusion reasons, and stop when the requested count is met or the search bounds are reached. If scoring helps, explain the weights. A low rating is evidence of reviews, not proof of buying intent.
# Start with a small indexed discovery page:
scripts/crawlora.sh /datasets/google-map-businesses/search \
q=coffee city=Cambridge country=US page_size=10
# Live discovery; body fields are flat, not nested under mapSearchOption:
scripts/crawlora.sh -X POST /google/map/search \
'{"keyword":"coffee cambridge massachusetts","language":"en","country":"us"}'
Output and limits
Return a table or CSV as requested. Useful columns are business_name,
provider_ids, address, website, public_phone, public_email, rating,
review_count, qualification_evidence, source_urls, retrieved_at, and
refresh_status. Keep dataset refresh time separate from retrieval time.
permanently_closed=falseexcludes known closures but still includes unknown status (null). It does not certify that every result is open.rating: nullis unknown; do not coerce it to zero. The dataset has a minimum rating filter, not a maximum: apply a “below four stars” rule locally, excluding unknown ratings. Google's review endpoint returns a small first-page sample.- Locationless service-area businesses can lack coordinates. A radius query cannot discover them; use text/area searches if they belong in the brief.
- Bound discovery pages and live enrichments to the requested task. Report a shortfall rather than padding the list with weak matches.
- Keep Google Maps calls at least one second apart. On
429, back off; retry a transient5xxonce. Stop on401/403. Check applicationcodetoo. Keep useful results when one source fails and mark which rows were not refreshed.
Related skills
Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
More from crawlora-org
Browse all skillsResearches products, prices, sellers, and reviews across major online marketplaces and big-box/specialty retailers (Amazon, eBay, Shopify stores, Shop.app, Target, Costco, Walmart, Nike, Zara, Adidas, Best Buy, Home Depot, Sephora, SHEIN, IKEA, Chewy, and more) using the Crawlora API, returning clean JSON. Use when the user asks to find a product, compare prices or sellers, track listings, or pull marketplace/retailer reviews — instead of scraping store pages.
Researches hotels, flights, attractions, short-term rentals, and live events via the Crawlora API — Booking.com, Expedia, Agoda, TripAdvisor, Trip.com, Airbnb, and Ticketmaster — returning clean JSON. Use when the user wants to search or compare hotel/stay prices and reviews, look up flight options, find attractions/things-to-do or concerts/events, or research an Airbnb host or listing.
Fetches any company's job openings straight from its Applicant Tracking System (ATS) via the Crawlora API — Greenhouse, Lever, Workday, Ashby, SmartRecruiters, Workable, Personio, Recruitee, iCIMS, Oracle Recruiting, Rippling, Pinpoint, Eightfold, Gem, UKG, and Teamtailor — returning clean JSON. Use when the user wants every open role from a specific company's ATS-hosted career page, a single job posting's full detail, or a hiring-velocity snapshot for a company, given its ATS platform and company/board slug.
Queries Crawlora's pre-built hosted datasets — Airbnb markets, App Store/Google Play apps, GitHub/Instagram/X users, job postings, US housing markets, Google Maps businesses, Goodreads, PitchBook, Steam, TrustMRR, Product Hunt, SEC companies, tech-stack, and more — via search/facets/item/nearby endpoints, returning clean JSON without live-crawling each platform. Use when the user wants bulk or aggregate analysis, to search a pre-indexed corpus, to facet/filter a large population, or to look up one record by its dataset id, instead of scraping pages one at a time.
Researches music, artists, playlists, and podcasts via the Crawlora API — Spotify tracks/albums/artists/playlists/profiles, Spotify Podcasts, Apple Podcasts, Discogs, and SoundCloud tracks/profiles/playlists — returning clean JSON. Use when the user wants a track/album/artist's details, a playlist or profile, podcast show/episode info and charts, a record's Discogs release/pressing data, or a SoundCloud track/user's stats.
Researches Zara's catalog — category taxonomy, category listings, product detail, keyword search, search suggestions, and nearby physical stores — using the Crawlora API, returning clean JSON. Use when the user asks to find a product on Zara, browse a Zara category, search Zara's catalog by keyword, pull a Zara product's colors/sizes/images, or find a nearby Zara store — instead of scraping zara.com.