How the feed is built
1. The City publishes every permit as free open data
The City of San Diego posts its development permits as a daily CSV — around 18MB, 54 columns, tens of thousands of rows a year. It is public and free. Nobody would ever open it, which is the entire business.
2. We keep only the rows that mean a job is about to start
- Early stage only.
OpenedandIssued. NotInspection FollowuporApproved Upon Final Payment— that work is already underway and you are too late. - Held by a person, not a company. A company on the permit means a contractor already won it.
- At exactly one address. This is the rule that matters. Plenty of permit runners and contractors file under a personal-looking name — one outfit sat at 529 separate addresses, another at 168. Any holder who appears at more than one distinct address across the year's corpus is dropped. Every genuine owner in the file sits at exactly one.
- Matched to your trade by the scope text and permit type, then deduped by address — one homeowner project files a separate approval row per discipline.
3. The claim we make, and the one we don't
What the data supports
An individual, one property, no contractor named on the permit. That is checkable — the holder's name is in the public record and you can look it up.
What we will not say is "no contractor is on the job yet". A permit does not tell you that. A homeowner may already have someone lined up, or be doing it themselves. We can tell you nobody is named on the filing, which is a different and smaller claim, and it is the true one.
Outside the City of San Diego the claim changes again — see coverage. ${list(tierNames('B').map(escapeHtml))} publish no permit holder at all, so there the leads are all new permits, never owner-pulled.
4. Ranked, capped at 15, sent Tuesday
Residential work ranks above commercial, valuation orders within each band, recency breaks ties. Commercial is demoted rather than dropped — a GC may want it. The cap exists because a list of 15 you actually call beats a list of 200 you don't.
If your trade and region produced fewer than 15 that week, you get every one that qualified and the email says so. We would rather be short than pad the list.
5. You can check any lead before you trust us
- Quote the permit number to SD Development Services.
- Or search the City's own open data — same source we read.
- Every lead ships with a map link and, where the City recorded coordinates, a street view.
This is deliberate. A lead product that cannot be checked is indistinguishable from a made-up one, and contractors have been burned enough to assume the worst.
6. What it costs, and what happens if you stop
$39/mo for one trade, on one side of the city or citywide. About $2.60 a lead at 15. Cancel in one click from any receipt — no phone call, no retention script. See pricing.
Angi & Thumbtack
- Angi: $15–$85 per lead, plus ~$300/yr and $200+/mo in fees
- Thumbtack: $8–$150 per lead — $35–$90 for HVAC, up to $150 for a remodel
- The same lead is sold to 3–8 contractors
- It is a form fill. Wrong numbers and people who never asked are the standing complaint
Groundwork
- $39/mo flat — about $2.60 a lead at 15 a week
- No per-lead charge, no membership fee, no contract
- Seats capped per trade and region, not sold to the whole city
- It is a building permit. The job is real, filed, dated and verifiable by number
Angi and Thumbtack lead prices researched 6 August 2026. $2.60 is $39 ÷ 15 leads a week — the cap on a paid feed.
Chad Vasquez · Groundwork, a Prompt Flow LLC company · San Diego, CA
(760) 464-5105 · chad@promptflowbusiness.com
A small San Diego operation, not a lead-gen call centre. Day job's a fireman; this is the side business. You can phone the number above and I will pick up. Cancel anytime in one click — no retention script, no website upsell. Billing is Stripe; the Tuesday email goes out through Resend.