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.
modules/searchpersists candidates intobrand_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.