Position tracking that names the competitor
Daily map-pack and organic positions for every term in your service area, with the three rivals moving against you called out by name.
GrowthOS tracks every keyword and map-pack position you compete for, finds the businesses searching for what you sell, and runs the outreach you approve — reporting confirmed revenue and inferred revenue in separate columns, always.
No card required · Rank baseline in 4 minutes · 1,180 tracked keywords per org
Position verified 14 min ago · 3 competitors watched
Local-service buying is a same-day decision made on a search results page. GrowthOS measures the distance between the searches happening in your service area and the ones you actually show up for.
Rank is not vanity for a trade business. It is the queue you are standing in when the water heater fails.
Position four is the first page of nothing. GrowthOS treats top-three as the only target worth reporting.
Every uncovered term is scored by search volume and close rate, then queued for the content engine.
Weighted by keyword volume × position CTR curve · refreshed daily
Rankings without revenue is a report. Revenue without evidence is a guess. The console keeps both on the same screen, and shows the math behind every number on it.
Each published page is joined to the jobs it sourced. Attribution is tagged direct, assisted, inferred, or unknown — and only direct and assisted roll into confirmed revenue.
Pipeline health, engagement, momentum, confirmed-revenue-vs-spend, and data quality — each shown with the exact formula that produced it.
Fourteen guarded stages from discovered to won. Every move records who, why, and with what evidence — manual overrides allowed, and permanently stamped as overrides.
No black-box number. Click any score and the weights, evidence, and model version that produced it are on screen.
Bulk outreach is drafted, batched, and parked until a human admin clears it — and never the person who requested it.
Connect your site, listing, and billing history. GrowthOS crawls what you rank for today and builds a provenanced profile of what you sell and who buys it.
Uncovered keywords are scored by volume and close rate, then turned into briefs and pages that target the searches worth winning.
Prospects who match your best customers are found, deduplicated against your book, and scored with a factor model you can audit line by line.
Nothing sends without a human decision on record. Replies, jobs, and revenue flow back to the console — confirmed and inferred, never blended.
Daily map-pack and organic positions for every term in your service area, with the three rivals moving against you called out by name.
Briefs are ranked by search volume multiplied by your own close rate on that job type — not by what is easiest to write.
Continuous discovery across plumbing, HVAC, electrical, and roofing — enriched with licensing, reviews, and firmographics, kept fresh automatically.
Source, confidence level, and verification status on each learned fact. Conflicting facts are surfaced for a decision, never silently overwritten.
An opt-out hits your tenant's suppression list instantly across channels. Blocked sends are logged, not silently dropped.
Row-level organization scoping on every query. A cross-tenant access attempt reads as 404 — indistinguishable from an org that does not exist.
Both tiers include human-in-the-loop approvals, the full audit trail, and honest revenue reporting.
No. Bulk outreach is blocked until a human admin approves an auditable request — and the requester can never approve their own batch. That rule is enforced in code and covered by tests, not just policy.
Map-pack positions respond in days once listing data and review velocity are corrected. Organic terms behind new pages typically take six to twelve weeks. The console shows the baseline it started from, so the claim is checkable.
A weighted sum of named components — fit, intent, engagement, timing, budget — stored with its weights, evidence, confidence, and the weight-model version used. Recalculations append to history, so you can always see what the score was and why.
Never. Attribution is tagged direct, assisted, inferred, or unknown. Confirmed figures include only direct and assisted; inferred estimates sit in their own column, labeled as estimates.
The contact lands on your suppression list immediately, across every channel. Every future send is checked against that list before it reaches a transport, and blocked sends are logged rather than silently dropped.
Four minutes to a keyword and map-pack baseline for your service area. No card, no call, no obligation to keep it.