Internal use only · public release coming soon

Find the local leads
visiting your
clients’ websites.

LocalPulse is hosted analytics for the agencies and local businesses that care about leads, not bounce rates. Drop one snippet on the site — every visit from the target city gets classified, identified, and pushed to Slack in real time.

Currently running for internal pilots Install in under a minute No third-party pixels
Live visits· castle-rock-fitness.com
Denver, COComcast Cable
LocalBusiness Identified
5 pg · 6m 41sjust now
Aurora, COVerizon FiOS
Local
2 pg · 0m 48s12s ago
Castle Rock, COLumen Business
LocalBusiness Identified Returning · 3×
9 pg · 11m 02s1m ago
Frankfurt, DEHetzner Online
Hosting
1 pg · 0m 04s3m ago
Boulder, COCenturyLink
Local Returning · 2×
3 pg · 2m 17s5m ago
Live feed · castle-rock-fitness.com · MT28 local in last hour
How it works

Three lines of script. Real leads in seconds.

No SDKs, no cohort builders, no funnel composer. The whole product collapses into: install the snippet, set a target city, watch for the alert.

01 · Install

One snippet, paste before </body>

Generated per client with a unique key. Uses sendBeacon with a fetch + keepalive fallback.

02 · Configure targets

Add the cities you care about

City match wins over region. Multi-location? Add a target per branch and every visit tags itself with the matched location.

Denver, CO · HQ Phoenix, AZ Castle Rock+ add target
03 · Listen

Slack fires the moment one lands

Header, location, company, device, dwell, source, keyword, page journey — and a one-click deep link straight into the visit detail.

LocalPulse · #leads-denver
New local visit · Pace Plumbing · 6m 41s on site
google · plumber denver near me
~20
named VPN providers detected by default
365d
raw visit retention before rollup
4
Slack alert modes — off, local, all, b2b
30m
session window — re-visits extend, not duplicate
Local detection

Built around where a visit came from.

Most analytics treat geography as a filter. We treat it as the primary signal. Every visit is classified against your client’s target cities, region-matched as a fallback, and tagged with the matched location.

  • City beats region. A perfect city match wins; region is fallback. The result is stored on every visit.
  • Multi-location. Franchises tag visits per-branch and filter the dashboard to one location at a time.
  • ISP buckets. Business, consumer ISP, hosting, education, government — so a Comcast subscriber doesn’t read like a lead.
  • VPN-aware. iCloud Private Relay and ~20 named VPNs are flagged so misleading geo doesn’t silently mis-attribute.
Targets configured
Denver, CO Castle Rock, CO Boulder, CO
Last hour
14 local / 31 total
Denver · 39.74° N, 104.99° W
Pace Plumbing · Denver
Local matchBusiness
Hover any dot to see how the classifier tagged itSlack scope · local + b2b
Visit feed

The whole session, in one row.

Click any visit. It expands inline into a session timeline — page-by-page dwell, attribution, device, locale, ISP, identity. No second page, no modal.

  • Filter for signal. Local, Businesses, Identified, Today, This week. Tabs that match the question you actually ask.
  • Returning is a badge, not a row. Re-visits inside a 30-minute window extend the session instead of inflating counts.
  • Per-location scope. Multi-location clients can pin the feed to a single branch and the analytics follow.
  • Honest pagination. Past 10,000 visits the UI shows “10,000+” instead of walking the table.
Live visits· castle-rock-fitness.com
Denver, COComcast Cable
LocalBusiness Identified
5 pg · 6m 41sjust now
Aurora, COVerizon FiOS
Local
2 pg · 0m 48s12s ago
Castle Rock, COLumen Business
LocalBusiness Identified Returning · 3×
9 pg · 11m 02s1m ago
Frankfurt, DEHetzner Online
Hosting
1 pg · 0m 04s3m ago
Boulder, COCenturyLink
Local Returning · 2×
3 pg · 2m 17s5m ago
Click a row to expand inline
Slack alerts

An alert that earns the ping.

Four-mode scope per client — off, local, all, b2b. When one fires, it gives you the six things you need: who, where they are, how long they were on the site, what page they hit last, what they searched for, and a deep link straight into the visit detail.

  • One webhook per client, test-fired from settings
  • First visit of a session pings; subsequent pageviews don’t
  • Optional digest companion — daily, weekly, or monthly
#leads-castle-rock
· LocalPulse
11:42 am MT
LocalPulseAPP
New local visit · Denver, CO
Location
Denver · matched “HQ — Denver”
Company
Pace Plumbing
Device
iPhone 15 · iOS 17
On site
6m 41s · 5 pages
Source
Google · plumber denver
Keyword
plumber denver near me
Page journey
  1. /· 0:38
  2. /services/water-heater-repair· 2:11
  3. /about· 0:54
  4. /contact· 2:58
visit · v_1f8a9c
Identity capture

Get a name next to the visit. No CRM required.

The snippet itself watches for form submissions on the host site, scores each input against HTML5 type, autocomplete, and a hint built from name + id + placeholder + aria-label + label text, then upserts identity on (clientId, visitorId). Sensitive fields are refused unconditionally.

visitor’s form on pace-plumbing.com snippet.js · listening
matched · First name
matched · Last name
matched · Email
matched · Phone
matched · Company
sensitive — skipped
no identity field detected
Identity captured(visitorId · v_a12c…)
Name
Email
Phone
Company
Skipped fields
  • password — sensitive type
  • message — no identity hint
Identified · upserted on (clientId, visitorId)
Built for

Who this is for.

Three ways teams use LocalPulse today. Same product, same install — different rosters and different reporting needs.

Per-client snippet keys, per-client Slack channels, per-client digests on the client's own timezone. The whole workflow is built around running a roster, not a single site.

SEO agencies

Configure one target per branch and every visit tags itself with the matched location. The per-location filter scopes both the visit feed and the analytics charts to a single branch at a time.

Multi-location chains

One site, one channel, one digest. The full feature set is the same as the Agency tier — the difference is roster size, not capability.

Local solo operators
Pricing

Flat monthly fee. No pageview caps.

Three plans, each with a fixed client-site count. Charged by tier, not by visit — a regional law firm pulling 80,000 sessions a month and a body shop pulling 800 cost the same.

Solo

Operator

$39/ month
  • Up to 3 client sites
  • Real-time feed + Slack alerts
  • Identity capture + email digest
  • Multi-location targets
Request access
Scale

Network

$349/ month
  • Up to 100 client sites
  • Everything in Studio
  • Priority support · 4-hour
  • Onboarding assistance
Request access
FAQ

The questions agencies always ask first.

Will it work alongside Google Analytics or Plausible?

Yes. LocalPulse is a parallel install — the snippet doesn’t conflict with other analytics tags or tag managers. Most agencies run it alongside whatever the client already has, because LocalPulse is asking a different question (who is here, right now, from our target city) than top-of-funnel analytics.

How do you handle GDPR and privacy?

Do you charge by pageview?

What if my client site is behind Cloudflare?

Can I add target locations to a client after the fact?

Internal use only · public release soon

Find the leads you’re already missing.

LocalPulse is currently running for internal pilots. Drop a line and we’ll line you up for the next access wave the moment we open seats.