Collection as a controlled pipeline
Merchants trigger collection on demand from the dashboard; a queued worker gathers ~100 fresh prospects per run through campaign-specific source lanes — one vertical alone spans 21 search terms across 67 Malaysian cities — deduplicated against a 90-day per-campaign window and across every tenant — no two merchants ever receive the same prospect. A database constraint permits one open request per merchant, campaign, and day; stale jobs are reclaimed and retries stay idempotent — the queue rules are structural, not conventions.


