Ingestion

One pipeline: map a site → extract dive sites with AI → review. Writes directly to dive_sites + species links.

Used for both workflows below. Country: Honduras.
Step 0

Import from a Google My Maps map

Paste a Google My Maps URL (or just its mid). We fetch the public KML, parse every placemark, and upsert into dive_sites with real GPS coordinates. Existing sites get their lat/lng backfilled — they're not overwritten.

Step 0b

Import from ScubaBoard / ScubaCenter

Pulls the public dive-site KML at scubaboard.com/divesites/map/kml.php?area={ISO} for any 2-letter country code (HN, MX, EG, ID…). Names, GPS, and site type (reef / wreck / cave) are imported. Existing sites get backfilled, never overwritten. Data © ScubaCenter contributors, CC-BY-SA 2.0 — keep attribution wherever this is shown publicly.

Step 1

Map a domain → discover dive-site URLs

Firecrawl crawls the domain and returns every URL ranked by relevance to your keyword. Pick a seed below or paste your own, then click Map. You'll send the result to Step 2.

Roatán backfill

Tier 1–4 missing sources (one-click)

Bulk-scrapes the 6 Roatán sources not yet in raw_scraped_sites via bulkScrapeUrls with auto_extract: true → writes dive-site candidates straight to dive_sites (destination: roatan).

dive_site_map
Tier 1 · Roatán Marine Park dive map
https://roatanmarinepark.org/dive-sites/
marine_life
Tier 3 · Marine life + CoCo View
https://roatandivers.com/marine-life/
https://cocoviewresort.com/diving/dive-sites/
operator_site
Tier 4 · Operator sites (Sun Divers, Octopus, Anthony's Key)
https://sundiversroatan.com/
https://octopusdiveschool.com/
https://anthonyskey.com/diving/
Step 2

Aggressive extract → dive_sites

Paste up to 50 URLs. The app sends them in safe 10-URL batches, then Firecrawl scrapes each page and extracts named dive sites + species. Writes directly to dive_sites (new) or patches existing rows.

0 valid URLs detected

Operators (PADI)

Discover, scrape & create dive shops

Separate workflow for dive shops. (a) Discover PADI shop URLs → (b) bulk-scrape each shop page → (c) extract fields → (d) click Create operator on each staged row below. Use slug roatan-utila, not roatan.

Dedupe resolution queue

Raw scrapes that matched one or more existing dive sites. Pick the correct match to merge (aliases + missing fields), or reject all to promote as a new site.

0 pending

Review staged scrapes

History of every scrape + extract job. Click Create operator on PADI rows to publish.