How it works
From a public release to your pipeline, the same morning.
- 01
Collect
We pull municipal licence, permit and registry releases from official open-data portals on their published cadence — daily for Toronto.
Details - 02
Detect
Every record is diffed against everything we've seen. A licence number we've never seen, issued inside the window, is new. A known one with a new date is a renewal.
Details - 03
Enrich
Names are normalised, licence types mapped to plain categories, postal codes cleaned, and home-based registrations suppressed before anything leaves the building.
Details - 04
Deliver
Signals arrive the way you work: a filtered web feed, CSV, a daily or weekly email digest, a CRM webhook, or the REST API.
Details
01 · Collect
Official open-data releases. Nothing scraped.
- live
Toronto
Municipal Licensing & Standards — Business Licences and Permits
City of Toronto · ckan
- building
Mississauga
Building Permits (Issued_Building_Permits)
City of Mississauga · arcgis
- building
Brampton
Building Permits
City of Brampton · arcgis
Toronto's Municipal Licensing & Standards dataset is the only live source today. Other GTA municipalities don't yet publish an open business-licence register, so we're building on their building-permit feeds instead.
02 · Detect
New means new — not a renewal with a fresh date.
- Look-back window
- Daily runs re-read the last 14–45 days (time since the last successful run plus a week, 30 days by default), so records the city publishes late are still caught. The initial backfill covered 90 days.
- Two dates per signal
effective_dateis the date on the public record (for example, the issue date).detected_atis when FileSignal first saw it. Weekly counts usedetected_atin Toronto time.- Idempotent
- Re-running a pull can't double-count: each business gets at most one signal per type per effective date.
03 · Enrich
Cleaned, categorised, and filtered before it reaches you.
Normalisation
Names are trimmed and title-cased, postal codes validated against the Canadian format, phone numbers normalised with extensions kept, and the street address split from the city line.
Category mapping
Hundreds of municipal licence types are mapped to 20 plain-English categories in 7 groups (food & hospitality, personal services, retail, trades, automotive, signage, other). New licence types we haven't mapped are held for review rather than guessed.
Residential suppression
Mobile licences (vehicles-for-hire, food trucks, hawkers, driving instructors, tow trucks) register the owner's home, so they are always suppressed. Trade licences are suppressed unless a company holds them at a commercial address. Fixed premises are suppressed if the record says home-based or the address has a residential unit marker (APT, BSMT, PH…).
Personal names stay private
When a record has no operating name and the registrant looks like a person (“SURNAME, GIVEN”), it is flagged and kept off every public page.
Ancillary permits labelled
Sign permits, patio and sidewalk-café permits, clothing drop boxes and noise exemptions are kept as signals — signage buyers want them — but never counted as “new businesses”.
Provenance on every field
Each delivered field records the source dataset, the source record id and when we fetched it. If you need to check a value, you can go straight to the public record.
- business_name
- Example Noodle House
- ↳ Operating Name
- category
- Restaurants & bars
- ↳ mapped from licence type
- address
- 123 Example St W, Toronto
- ↳ Licence Address Line 1
- postal_code
- M5V 0A1
- ↳ validated format
- phone
- (416) 555-0100
- ↳ only if in the record
- effective_date
- 2026-10-27
- ↳ Issued
- confidence
- 0.95
- ↳ new id, issued in window
Suppression is deliberately conservative. It hides some legitimate leads — food trucks, for example — because we would rather miss a record than publish someone's home address.
04 · Deliver
Signals arrive the way you already work.
Web feed
Filter by municipality, category, signal type, date and phone availability. Save filters you use every week.
All paid plans
CSV export
Download any filtered view. Each exported row counts toward your plan's monthly allowance.
Starter and up
Email digests
A daily digest after the morning collection, or a weekly digest on Mondays — scoped to your saved filter.
Weekly on Starter · daily on Pro
CRM webhook
New signals POSTed as JSON to your endpoint, signed with HMAC-SHA256 so you can verify they came from us. GoHighLevel-ready.
Pro and up
REST API
Query signals, categories and municipalities with a Bearer key. Plan scope is enforced server-side.
API plan
Building an integration? The API reference documents the endpoints, webhook payload and signature verification.
Freshness
How fresh is fresh?
| Source | Publisher cadence | We collect | Typically in your feed |
|---|---|---|---|
| Toronto live | Daily | Daily, ~06:15 ET (11:15 UTC; 07:15 during daylight time) | Same morning. Daily digests go out ~07:45 ET; webhooks fire after the run. |
| Mississauga permits building | Not stated; observed roughly monthly | Daily check once live | Within a day of each city update |
| Brampton permits building | Live service | Daily once live | Next morning |
| Other sources planned | Varies (Ottawa: monthly, 20th) | On publisher cadence | As each source goes live |
Last successful Toronto pull: Nov 1, 2026, 6:15 a.m. ET. Not a contractual SLA: if a publisher is late, so are we.
See it on your own category and territory.
A 20-minute walkthrough of the live feed, filtered to the businesses you sell to.