Local search. Clear direction.
Know what to fix next.
And prove why.
Turn search data, site audits, and AI visibility into a clear plan for every client website. Know where to focus, what to fix, and how to show the difference.
- No card required
- Your data, with the evidence attached

Your data.
One clear direction.
The big picture. The next move.
Less digging. More doing.
Search opportunities
GSCImpressions · last 28 days
Queries already earning visibility, ready for a closer look.
Site health
CRAWL78out of 100
- High
- 3
- Medium
- 7
- Low
- 12
142 pages crawled · severity behind every score
Your next action · Critical
Fix pages returning 4xx errors
6 affected pages. Restore, redirect, or remove broken internal links.
Illustrative overview using sample deck-builder data. Explore the detailed evidence below.
What you actually get
Three things a number has to tell you before we print it.
Most local SEO tools hand you a figure and expect you to trust it. This is what replaces that: the arithmetic, the source, and the sentence that says what to do about it.
01
Scored, not sorted.
Priority is a formula, not a vibe: impact times confidence times business value times urgency, divided by effort. It is printed on the card, so you can disagree with a factor instead of the conclusion.
Update /services/composite-decking/ for “composite decking installer”
Score breakdown
0.482 × 0.60 × 0.80 × 0.60 ÷ 3 = 0.046
02
Sourced, not asserted.
Every metric, table and evidence row carries the provider it came from and how fresh it is. Nothing on the screen is an estimate wearing the clothes of a fact.
sc-domain:austinoutdoorliving.com
GSCSearch Console · 16 months · synced 2h ago
GA4 property · Austin Outdoor Living
GA4Analytics 4 · last 28 days · synced 2h ago
austinoutdoorliving.com
CRAWLSite crawl · 142 pages · audited 4h ago
Business Profile export · 3 locations
IMPORTProfile import · 3 locations · imported today
03
Specific, not generic.
A finding names the rule that caught it, how many pages it hits, what it costs the business, and the exact fix. An issue count with no consequence attached never leaves the crawler.
No LocalBusiness structured data anywhere on the site
Why it matters
LocalBusiness schema is how search engines connect the site to a real-world business with an address, hours, and service area; without it the site competes with weaker local signals.
Recommended fix
Add LocalBusiness JSON-LD (or the closest subtype) with name, address, phone, and hours, ideally on the homepage and contact page.
CRAWLSite crawl · 142 pages · audited 4h ago
How it works
Connect, crawl, act. Each step ends in something you can show a client.
Three steps from an empty workspace to a defensible plan for a deck builder, a pool builder, a roofer or a remodeler. Nothing here needs a data-provider subscription on top.
Step 1: Connect the properties you already manage
Read-only OAuth to Search Console and Analytics 4. On connect, Localense backfills 16 months of query history, so trends and declines exist on day one instead of ninety days from now.
Almost There is Search Console filtered to average position 4 to 15 with at least 50 impressions: page-one wins the site has already half-earned.
| Query | Clicks | Impressions | CTR | Avg pos | Δ clicks |
|---|---|---|---|---|---|
| composite decking installer/services/composite-decking/ | 34 | 6.2 | |||
| deck builder near me/ | 27 | 7.4 | |||
| composite deck builder/services/composite-decking/ | 19 | 7.8 | |||
| trex deck installation/services/composite-decking/ | 12 | 9.4 | |||
| screened porch contractor/services/screened-porches/ | 8 | 11.9 |
GSCSearch Console · last 28 days · synced 2h ago
Step 2: Crawl the site and run the audit
A polite, rate-limited crawl of the client site and any competitor you name, then 32 rules score technical health. Findings roll up by severity with the affected pages attached.
The score is never the whole story, so the severity mix, the page count and the crawl time sit beside it.
78/100
0
3
7
12
CRAWLSite crawl · 142 pages · audited 4h ago
Step 3: Work a scored queue, not a to-do list
Audit findings and query clusters become opportunities with a category, a recommended action, a success metric and the evidence that produced them. Sort the queue and start at the top.
The success metric is written before the work starts, which is what makes next month's report a comparison rather than a claim.
Update /services/composite-decking/ for "composite decking installer"
5 keywords in the "composite decking installer" cluster rank just off page-one (position 4-15) with 4820 impressions.
Recommended action
Expand and refresh /services/composite-decking/ to fully cover the "composite decking installer" cluster and push its keywords onto page one.
Success metric
Average position of the "composite decking installer" cluster keywords reaches the top 3 within 60 days
Score breakdown
Evidence (1)
- GSCFIRST_PARTYgoogle_search_console · keyword_cluster
"composite decking installer" cluster: 5 almost-there keywords, 4820 impressions, mapped to /services/composite-decking/.
- composite decking installer
- pos 6.2 · 1,840 impr
- composite deck builder
- pos 7.8 · 1,120 impr
- trex deck installation
- pos 9.4 · 880 impr
- composite decking cost
- pos 11.6 · 610 impr
- composite vs wood deck
- pos 13.1 · 370 impr
content_update:cluster:builder composite deck
Search Console · last 28 days · synced 2h ago
The platform
Organized by the job you are doing, not by the feature we shipped.
Eight surfaces, one project context. Open any of them and the same evidence, the same sources and the same score are already there.
Find what is broken
A polite, rate-limited crawl of the client site, then 32 rules score its technical health. Each finding carries severity, affected pages, why it matters, and the fix.
CRAWLExploreSee what search is already giving you
Winning, declining, new, lost, low-CTR and almost-there query views from the client's own Search Console, mapped to the pages that own them.
GSCExploreDecide what to do next
Findings and query clusters become scored opportunities: impact, confidence, business value and urgency divided by effort, with the arithmetic on the card.
ExploreUnderstand the competitor next door
Name a competitor, crawl it the same way, and compare services, locations, schema, content depth and internal linking. No black-box traffic estimate.
CRAWLExploreGrow every location
Score Business Profile completeness against an itemized 100-point checklist per location, then work the gaps that actually move local discovery.
IMPORTExploreKnow what AI answers say about the client
Run the service-and-location prompts buyers actually type through OpenRouter against OpenAI and Perplexity models, then track mentions, recommendations and citations.
AIExploreShow the client what changed
One stored snapshot renders to Markdown, HTML and a real PDF, so the report a client opens in March still says what it said in March.
ExploreLet an agent do the reading
68 MCP tools and a REST API over the same core services, authenticated with scoped keys you can revoke, plus signed webhooks when a job finishes.
Explore
Agent-native
Your agent can run the workflow, not just read about it.
A dashboard assumes a person is looking at it. Localense exposes 68 MCP tools over the same core services as the REST API, so an assistant can pull the action queue, start a crawl and read the evidence under a key you scope and revoke.
- 68 tools over Streamable HTTP, bearer authenticated
- Scoped API keys per client, revocable, with an audit trail
- The same { ok, data } envelope the REST API returns
- Signed webhooks with SSRF-safe delivery when a job finishes
claude mcp add --transport http localense https://mcp.localense.com/mcp \
--header "Authorization: Bearer lsk_..."
# agent turn
→ opportunity.list { project_id: "…", status: "open", limit: 3 }
{
"ok": true,
"data": {
"items": [
{
"category": "technical_fix",
"opportunity_key": "technical_fix:CRAWL_4XX",
"title": "Fix: Pages returning 4xx client errors",
"status": "open",
"priority_band": "critical",
"impact": 0.7,
"confidence": 1.0,
"business_value": 0.8,
"urgency": 0.6,
"effort": 2,
"score": 0.168,
"score_inputs": { "rule": "technical_fix", "severity": "high", … }
},
{ "opportunity_key": "content_update:cluster:builder composite deck", "score": 0.046, … }
],
"next_cursor": null
}
}
A real exchange: the transport, the tool name, the field names and the response envelope are the ones the MCP server actually serves. The two scores are what the sample opportunities on this page compute to.
Provenance
Every number carries its source and its sync time.
This is the part that makes the rest defensible. When a client asks where a number came from, the answer is already on the screen, and it was on the screen before they asked.
A recommendation you cannot trace is just an opinion with better typography.
Estimates are never dressed as facts
Model-inferred and estimated values are prefixed, underlined and carry their confidence. Below 0.5 confidence they are labelled low confidence inline, where you cannot miss it.
Empty is not zero
Missing data renders as a dash with the source that could not supply it, because a zero you did not earn is worse than a gap you can see.
Live data stays live
Places-derived fields such as rating and review count are fetched at view time with Google attribution and never stored or trended, which is what the Places terms require.
16mo
of Search Console history backfilled the moment you connect
GSCBACKFILL_MONTHS in localense_core/jobs/tasks.py
32
audit rules run against every crawl, each with its own fix text
CRAWLALL_RULES in localense_audit/registry.py
68
MCP tools over the same core services as the REST API
@mcp.tool registrations in services/mcp/app/main.py
100pt
Business Profile completeness, itemized rather than a mystery score
IMPORTWeighted checks in localense_core/local_seo/service.py
These are the numbers we can prove. There are no customer counts on this page, because Localense is new and inventing them would break the one promise the product is built on.
Who it is for
Three people open Localense, and one of them is not a person.
The agency owner
You are running twelve contractor accounts and every one of them asks the same question on the same call: what did we get for the money.
- One repeatable workflow per client, not twelve spreadsheets
- Branded reports from a stored snapshot, on a schedule
- Recommendations you can defend when a client pushes back
See the agency workflowThe SEO specialist
You already know what good looks like. What you do not have is the hour it takes to re-derive the priority list for every account, every month.
- Almost-there queries at position 4 to 15, already mapped to pages
- Crawl-backed competitor gaps instead of an estimated traffic number
- A score you can take apart and argue with, factor by factor
See the opportunity engineThe AI agent
Your assistant should be able to pull the action queue, start the crawl and read the evidence without a human opening a dashboard first.
- 68 MCP tools over Streamable HTTP, bearer authenticated
- Scoped API keys, revocable per client, with an audit trail
- The same {ok, data} envelope the REST API returns
See the agent surface
Pricing
Priced per portfolio, published in full.
Every plan includes the whole workflow. Plans differ by projects, seats and operating limits, and annual billing is priced at ten months.
Agency
For agenciesAgencies running a repeatable client workflow
$149/mo
$1,490 / year
- 15 projects
- 5 seats
14-day trial on every plan, no card required. Dodo Payments is the merchant of record and handles checkout, tax and invoices.
Questions
The answers before you have to ask for them.
Including the ones where the honest answer is not yet.
Where do the numbers actually come from?
Do I need a Google Business Profile API connection?
Does AI visibility work out of the box?
How is priority calculated?
Can an AI agent drive Localense?
What does it cost, and is there a trial?
Do you guarantee rankings?
Start with one client
Connect one account and see what the first crawl finds.
Pick the client you argue about most. Connect their Google properties read-only, run the crawl, and read the first scored queue. If the evidence is not better than what you have now, you have lost an afternoon.
14-day trial · no card required · read-only Google access