Brand Discovery

Search Module

Developer view into the Search module. Shows raw discovery output — rows that Search has persisted into brand_candidates — before Analytics enriches them into confirmed brands.

Overview

What this page shows and what it doesn't.

CGA candidates are license-registry records discovered by Search. They are not confirmed brands yet. Analytics enrichment will later resolve candidates into Brand records.
  • modules/search persists candidates into brand_candidates. No scoring, no Analytics calls.
  • The CGA flow loads researched Curaçao license data from cga_data.json, normalizes each row, and dedupes by (source_id, dedup_key) on subsequent runs.
  • The Dashboard reads via the API only — it never imports Search code or touches the database directly.

Run CGA Import

POST /internal/search/cga/mock-run

Calls POST /internal/search/cga/mock-run. Loads researched Curaçao license data from cga_data.json and persists new rows into brand_candidates; subsequent runs dedupe by (source_id, dedup_key) and skip existing rows.

Run Casino Catalogs Import

POST /internal/search/catalogs/mock-run

Calls POST /internal/search/catalogs/mock-run. Loads new casino brands from catalog_data.json (seofordep, casino.guru, newcasinos, casinobee) and persists new rows into brand_candidates; dedupes by (source_id, dedup_key) on subsequent runs.

Run Pragmatic Play Import

POST /internal/search/pragmaticplay/mock-run

Calls POST /internal/search/pragmaticplay/mock-run. Loads slot release rows from pragmaticplay_data.json and persists new rows into brand_candidates with candidate_type=game_release; dedupes by (source_id, dedup_key) on subsequent runs.

Latest Candidates

GET /internal/search/candidates?limit=50

No candidates yet. Run the CGA import to populate this table.