Google Maps Business Opportunity Finder avatar

Google Maps Business Opportunity Finder

Under maintenance

Pricing

$10.00 / 1,000 business analyzeds

Go to Apify Store
Google Maps Business Opportunity Finder

Google Maps Business Opportunity Finder

Under maintenance

Find strong local businesses with specific, evidence-backed digital growth opportunities. Analyzes Google Maps profiles, websites, reviews, technologies, and competitors to detect gaps in booking, reputation, websites, tracking, and more. 100% deterministic scoring — no AI.

Pricing

$10.00 / 1,000 business analyzeds

Rating

0.0

(0)

Developer

Intrabit

Intrabit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Find strong local businesses with specific, evidence-backed digital growth opportunities.

This Actor analyzes Google Maps profiles, websites, reviews, technologies, conversion features, and local competitors to detect concrete gaps in online booking, websites, reputation management, conversion, tracking, and contact automation — then ranks every business by a deterministic, explainable opportunity score.

No AI-generated scoring. Every score is computed from observable signals and configurable deterministic rules. Identical input → identical output.


What does it do?

  1. Discovers businesses on Google Maps (by query + location, or from your own list of Maps URLs).
  2. Scores business strength (0–100): observable activity/credibility — rating, review volume, recent activity, completeness, digital presence, status. Not revenue.
  3. Audits each website: HTTP/HTTPS, redirects, response time, title/meta/viewport/canonical, schema markup, forms, CTAs, click-to-call, WhatsApp, analytics, ads pixels, chat, ecommerce, and 40+ technology fingerprints.
  4. Analyzes reviews (when enabled): recent velocity, owner response rate, unanswered negative reviews.
  5. Benchmarks competitors: for each business, a local cohort of top competitors and their adoption of booking, websites, HTTPS, contact forms, chat, analytics, etc.
  6. Detects opportunities with explainable rules (see below).
  7. Ranks businesses by overallOpportunityScore and returns a CSV-friendly dataset.

What makes it different?

Generic Google Maps scraperThis Actor
Returns businessesFinds businesses, analyzes their digital presence
Lists leadsBenchmarks local competitors
Raw dataDetects specific gaps (no booking, no CTA, unanswered negatives…)
No signalRanks commercial opportunities

Instead of "give me dentists in Miami", this Actor enables:

"give me strong dentists in Miami that appear to need online booking"

"find local businesses with strong customer demand but weak reputation management"

"find businesses advertising online but lacking detectable conversion infrastructure"

Business strength vs opportunity gap

These are separate dimensions. A business with 2 reviews / 2.1 stars / no website is a poor prospect even if it has "problems". A business with 4.8 stars / 642 reviews / active / no online booking is a strong opportunity.

OPPORTUNITY GAP
LOW HIGH
BUSINESS HIGH LOW BEST TARGET
STRENGTH
LOW IGNORE QUESTIONABLE

overallOpportunityScore is deliberately not an average of all detectors — one strong, specific signal should dominate:

overall = bestOpportunity × 0.75
+ secondBest × 0.15
+ businessStrength × 0.10

Available opportunity types

The V1 detectors (all deterministic):

DetectorWhat it finds
WEBSITEMissing, dead, broken, HTTP-only, or weak website; social-only presence
ONLINE_BOOKINGNo booking system/CTA while strong and (often) competitors offer booking
REPUTATION_MANAGEMENTUnanswered negative reviews, low owner response rate, rating below local median
CONVERSIONNo primary CTA, no form / click-to-call / booking / ordering path
TRACKINGNo analytics; ads pixels detected without any conversion action
CONTACT_AUTOMATIONNo contact form, no click-to-call, no WhatsApp, no chat
ONLINE_ORDERINGRestaurants/cafes without online ordering
LOCAL_SEOMissing title/meta/schema/canonical, no website
LIVE_CHATNo chat widget in chat-relevant categories
EMAIL_MARKETINGEcommerce/retail without email marketing platform
SOCIAL_PRESENCENo social links on website (category-relevant)
ECOMMERCERetail without online store

How opportunity detection works

Every detector is a small rule engine:

  1. Evidence — e.g. NO_BOOKING (weight 35), NO_BOOKING_CTA (15), NO_BOOKING_COMPETITOR_GAP (30).
  2. Category context — booking matters more for dentists than museums (CATEGORY_OPPORTUNITY_WEIGHTS).
  3. Competitor benchmark"No booking detected; 8/10 top local competitors offer booking" is far stronger than "no booking" alone. Cohort claims require a minimum sample size (default 5); otherwise competitor evidence is simply not used.
  4. Score = Σ weights × category relevance, clamped 0–100, with scoreComponents exposed for every point.

Example for a strong dentist with no booking and 9/10 competitors offering it:

Base 0
Business strength +18 (strength 90 × 20%)
No booking +35
No booking CTA +15
Competitor gap +27 (90% × 30)
Category (DENTAL) ×1.0
TOTAL 95

Tri-state signals. Missing data never silently counts as "bad". Signals are true | false | null, where null = "could not be reliably determined" (e.g. website fetch failed → booking is unknown, not absent).

Input

All fields are optional with sensible defaults. Minimal example:

{
"searchQueries": ["dentists"],
"location": "Miami, Florida",
"maxBusinesses": 100
}

Full control:

{
"searchQueries": ["dentists", "orthodontists"],
"location": "Austin, Texas",
"maxBusinesses": 500,
"analysisMode": "STANDARD",
"findOpportunitiesFor": ["ONLINE_BOOKING", "REPUTATION_MANAGEMENT"],
"minimumBusinessStrength": 35,
"minimumOpportunityScore": 55,
"reviewAnalysisEnabled": true,
"maxReviewsPerBusiness": 30,
"websiteConcurrency": 15,
"includeClosedBusinesses": false
}

Enrich your own lead list (Mode B)

{
"googleMapsUrls": [
"https://www.google.com/maps/place/...",
"https://www.google.com/maps/place/..."
]
}

Analysis modes

  • FAST — Maps data + website analysis, no reviews.
  • STANDARD (default) — website, technologies, conversion, competitors, limited reviews.
  • DEEP — everything, with up to 2× review sampling.

Output

One dataset item per business, CSV-friendly. First columns:

overallOpportunityScore | bestOpportunity | bestOpportunityScore | businessStrengthScore | businessName | primaryCategory | rating | reviewCount | websiteStatus | website | phone | googleMapsUrl

Every item also includes:

  • opportunities[] — per-detector { type, score, confidence, evidence[], scoreComponents, competitorComparison }
  • detectedTechnologies[]{ technology, detected, confidence, evidence[] }
  • signals — flattened tri-state website signals
  • reviewMetrics — response rate, unanswered negatives, velocity
  • competitorBenchmarks — cohort adoption rates and medians
  • whyThisLeadText — one-line, spreadsheet-ready explanation
4.8 rating / 642 reviews | No online booking system detected | No appointment CTA | 8/10 benchmark competitors offer booking

A run summary (businesses discovered/analyzed/returned, opportunity counts, estimated cost) is logged and stored as SUMMARY in the key-value store.

Google Maps search examples

{ "searchQueries": ["dentists"], "location": "Dallas, Texas", "findOpportunitiesFor": ["WEBSITE", "CONVERSION"] }

→ highly reviewed local businesses with measurable website/conversion gaps.

{ "searchQueries": ["dentists", "beauty salons", "veterinarians"], "location": "Austin, Texas", "findOpportunitiesFor": ["ONLINE_BOOKING"] }

→ strong appointment-based businesses that don't accept online bookings.

{ "searchQueries": ["restaurants"], "location": "Orlando, Florida", "findOpportunitiesFor": ["REPUTATION_MANAGEMENT"], "reviewAnalysisEnabled": true }

→ popular restaurants with unanswered negative reviews.

Agency examples

  • Web design agencyWEBSITE, CONVERSION → businesses with dead/weak sites and no CTA.
  • Booking software providerONLINE_BOOKING → strong dentists/salons/vets that can't book online.
  • Reputation management companyREPUTATION_MANAGEMENT → high-volume businesses that don't respond to reviews.
  • Analytics / conversion consultantsTRACKING, CONVERSION → businesses running ads without measurable conversion paths.
  • Marketing agencyCONTACT_AUTOMATION, LOCAL_SEO → businesses missing forms, chat, and local schema.

Competitor comparison

For each business the Actor builds a cohort of the top local competitors (same normalized category, then same city/state), ranked by review count, excluding the target. It then computes adoption rates used as benchmarks:

bookingAdoptionRate httpsAdoptionRate contactFormRate chatAdoptionRate
analyticsRate websiteAdoptionRate socialPresenceRate responseRate

No competitor claims are made from tiny cohorts: with fewer than minCompetitorsForGap (default 5) competitors, competitor evidence is simply not used.

Deterministic scoring

All scoring is rule-based and versioned (scoringVersion: "1.0"). Thresholds live in src/config/scoring.ts and src/config/opportunity-weights.ts — there are no scattered magic numbers. scoreComponents makes every score reconstructable, and evidence[] shows exactly which machine-detectable observations produced it.

No AI-generated scoring. Opportunity scores are computed from observable signals and configurable deterministic rules.

Determinism & non-AI checklist

  • No OpenAI / Claude / Gemini / Llama / Mistral
  • No LLM API, no embeddings, no vector DB, no ML classification
  • No generated summaries, pitches, or sales copy
  • All scoring rules inspectable (src/scoring/, src/opportunities/, src/config/)
  • All evidence derives from observable data (Maps profile, HTTP/HTML, fingerprints, reviews, cohort stats)
  • Identical inputs produce identical outputs

Cost notes

  • Reviews are fetched only for businesses with enough reviews and only when REPUTATION_MANAGEMENT is requested or reviews are enabled — never for every business.
  • Websites are fetched once per domain (franchises with one domain are cached for the run).
  • Websites are analyzed for all discovered (non-closed) businesses so that competitor cohorts have benchmark data. Use excludeWebsites: true or FAST mode to skip website fetching entirely.
  • Set maxBusinesses low for cheap test runs.
  • A rough cost estimate for the run (Maps upstream + reviews upstream) is logged and stored in SUMMARY.

Privacy & compliance

  • Public business data only. No owner emails, personal phones, or home addresses.
  • No outreach automation — this Actor outputs intelligence, it never contacts anyone.
  • Normal access restrictions are respected (timeouts, redirect limits, size limits, no CAPTCHA bypass).

Known limitations

  • Technology detection is fingerprint-based and imperfect — it reports confidence, never false certainty.
  • Booking/ordering detection works on the analyzed homepage; deep multi-page navigation is out of scope for V1.
  • Competitor benchmarks require a reasonably sized discovered universe (Mode B with a short list yields no competitor claims).
  • Review analysis samples a configurable number of recent reviews (maxReviewsPerBusiness), it is not a census.

Local development

npm install
npm test # run the test suite
npm run typecheck
npm run build # compile to dist/

Deployment (Apify)

npm install
npm test
apify login # authenticate with your Apify account token
apify push # build and push the Actor

Requirements:

  • An Apify account token (APIFY_TOKEN) — the Actor calls an established Google Maps upstream Actor (compass/crawler-google-places) and, when reviews are enabled, a reviews upstream Actor (compass/google-maps-reviews-scraper). These run on your account and are billed as standard Apify platform usage.
  • Node.js ≥ 20.

Pricing & monetization

This Actor uses Pay-per-event pricing on the Apify Store. Charged unit: one analyzed business.

EventPriceNotes
business-analyzed$0.01 / business~$10 per 1,000 businesses analyzed. Primary event.
  • Charging is budget-aware: analysis stops immediately once the user's configured max-charge budget is reached — no wasted spend.
  • Outside pay-per-event runs (local dev, free/pay-per-usage executions), charging is a strict no-op.
  • Platform usage from upstream Maps/reviews Actors is billed separately by Apify; see docs/COST_MODEL.md for the full cost model and pricing rationale.

Example result (illustrative, not real data)

#1 Example Dental Business Strength: 94 Booking Opportunity: 97
WHY:
✓ 4.9 rating
✓ 721 reviews
✗ no booking system detected
✗ no appointment CTA detected
✓ 9/10 benchmark competitors provide booking

License: Apache-2.0