Portfolio Prototype · Powered by Public City Data
PermitPulse
Pool Project Opportunity Monitor
PermitPulse watches official City of Mesa building-permit data, filters newly issued residential pool projects, and turns those records into a focused contractor opportunity dashboard and weekly digest.
The problem
Contractors often rely on expensive shared leads, referrals, or manual searches. Public permit records contain useful commercial signals, but the data is scattered, noisy, and rarely delivered in a contractor-friendly format.
The approach
Watch → Filter → Deliver
01 · WATCH
Retrieve newly issued residential pool permits from the official City of Mesa Socrata API.
02 · FILTER
Normalize, deduplicate, score, and prioritize records using recency, valuation, permit relevance, and data completeness.
03 · DELIVER
Present opportunities through a responsive dashboard and prepare a weekly email digest.
The build
Small surface, finished edges.
Official public API. Socrata SODA queries with server-side field whitelisting — no scraping.
Netlify serverless function. All retrieval, normalization, and scoring run server-side.
Deterministic scoring. A documented 0–100 model: recency, valuation, relevance, completeness. No AI where none is needed.
Six dashboard filters. Date range, priority, minimum valuation, status, contractor, and free-text search.
Responsive permit cards. Priority chip, masked address, valuation, contractor, and a plain-English score explanation.
Detail dialog. Full description, copyable permit number, and a four-part score breakdown.
Weekly digest preview. An email-safe digest rendered from the same data path as the dashboard.
Scheduled-function architecture. A cron-configured Netlify function prepares the Monday-morning digest in dry-run mode.
Live-data fallback. If the city API is unreachable, a cached sample of real records loads — clearly labeled.
Address masking. Residential street numbers are masked server-side before data ever reaches the browser.
Outcome
What the finished build showed.
142
live records retrieved during verification (180 days)
68
permits in the default 90-day view
20
permits in the latest 30-day view
~$3.2M
total declared valuation in that view
~$52.3K
average declared valuation
15
high-priority records
Live
City of Mesa open-data API
$0
data-acquisition cost for the prototype
Figures observed during build verification against the live API (July 2026) — not permanent market statistics.
Technical architecture
Five stages, one direction.
01
City of Mesa Socrata API
02
Netlify Function
03
Normalize / Deduplicate / Mask
04
Transparent Opportunity Scoring
05
Dashboard + Weekly Digest
Privacy and responsible design
- · Residential street numbers are masked before data reaches the browser.
- · No homeowner contact enrichment is performed.
- · Scores prioritize records for review — they do not predict job availability.
- · Permit activity does not guarantee that work is available or unassigned.
Validation status
PermitPulse is a working portfolio prototype. The remaining business question is whether pool-barrier work is commonly unassigned when a permit is issued and whether the records are actionable enough for contractors to pay for recurring access.
It demonstrates: turning public data into an understandable business workflow · serverless API integration · scheduled monitoring architecture · transparent scoring · responsive product design · digest automation · graceful error handling · privacy-conscious data presentation.
Watch → Filter → Deliver
What information are you still checking manually?
I build focused tools that watch changing information, filter out the noise, and deliver the results that matter.
Get in touch