Local Business Leads Enrichment & Website Audit avatar

Local Business Leads Enrichment & Website Audit

Pricing

$15.00 / 1,000 business auditeds

Go to Apify Store
Local Business Leads Enrichment & Website Audit

Local Business Leads Enrichment & Website Audit

Turn Google Maps results or website lists into qualified agency leads: contacts, the owner named on the site, tech stack, a 28-point website audit and per-service opportunity scores with factual pitch lines.

Pricing

$15.00 / 1,000 business auditeds

Rating

0.0

(0)

Developer

Benjamin Zsigri

Benjamin Zsigri

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Feed it a Google Maps Scraper run (or a list of websites). Get back one lead row per business: the contacts and the owner or manager named on the website, the tools the site runs, a 28-point website audit, and an opportunity score for each service an agency sells, with short factual pitch lines you can quote in your first message.

Built for web design, SEO, ads, booking, chat, email and reputation agencies that prospect local businesses: hair and beauty salons, dentists and clinics, restaurants, trades, gyms, studios.

What one row tells you

ColumnExample
business_name, category, cityBella Hair Studio, Hair salon, Leeds
google_rating, google_reviews3.9, 12 (from the Maps item)
decision_maker_name, decision_maker_role, decision_maker_emailSarah Jones, Owner & Senior Stylist, null
primary_email, primary_phone, facebook, instagram, linkedinfrom the website
audit_score15 (0 to 100)
issues["https", "mobile_viewport", "online_booking", ...]
top_opportunity, top_opportunity_scorelead_capture, 100
opportunity_website ... opportunity_ai_searchone 0 to 100 score per service
top_pitch_hook, pitch_hooksNo online booking tool was detected on the 3 pages read.
website_platform, analytics_tools, ad_pixels, booking_tool, chat_toolWordPress, [], [], null, null
email_provider, dmarc_policyGoogle Workspace, missing

The full row adds every audit check with its observed value (audit_checks), every opportunity with the findings behind its score (opportunities), all decision makers with their source page, all emails and phones with their source page, every detected technology with its evidence, the DNS footprint and the original Maps item. The example above is a fictional business.

The audit

Each check answers pass, warn, fail, or unknown when the data was not available. Nothing is guessed: a check the crawl could not answer stays unknown and does not count in the score.

AreaChecks
WebsiteHTTPS, mobile viewport, homepage response time, homepage HTML size, copyright year, WordPress version, mixed content
Trackinganalytics or tag manager, advertising pixel (Meta, Google Ads, TikTok and others)
Conversiononline booking tool (for businesses that take appointments), live chat or messaging, contact form, tap-to-call phone link
SearchLocalBusiness structured data, title and meta description, H1, image alt texts, social preview image, XML sitemap
AI searchAI search crawlers (OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-SearchBot) and training crawlers (GPTBot, ClaudeBot, Google-Extended, CCBot) in robots.txt, llms.txt
EmailSPF, DMARC policy, published email on the business domain or on a free mail provider
ReputationGoogle rating and review count (from the Maps item), review widget on the site, links to social profiles

Online booking is judged only for businesses that take appointments or reservations, recognised from the Google Maps category or the site's structured data (salons, dentists, clinics, therapists, gyms, restaurants and similar, in English and the main European languages). A plumber is not pitched a booking tool.

Opportunity scores and pitch lines

Every service gets a score from 0 to 100: the sum of points for the checks that service fixes, full points for a fail and half for a warning, capped at 100. Each point comes with the finding that earned it, so you can see why a lead scored the way it did. Scores rank the leads of one run against each other; they are not a revenue forecast.

ServiceDriven by
websiteHTTPS, mobile viewport, response time, copyright year, CMS version, mixed content; 100 when the listing has no website
local_seoLocalBusiness schema, title and meta description, review count, H1, sitemap, rating, alt texts
ads_trackingno analytics, no advertising pixel
online_bookingno booking tool at a business that takes appointments
lead_captureno live chat, no contact form, no tap-to-call link, free-mail address
email_deliverabilityDMARC, SPF, free-mail address
reputationGoogle rating, review count, no review widget
ai_searchAI crawlers blocked, no LocalBusiness schema, no llms.txt, title and meta, sitemap

pitch_hooks holds up to five distinct sentences, strongest first. Set Your service in the input and the findings for that service come first. The sentences state what the crawl observed ("No contact form was found on the 4 pages read."), so they hold up when the business owner checks.

Input

  • Dataset import: the dataset ID of a Google Maps Scraper run. The website field is audited; the name, category, rating, review count, phone, address and place ID are copied in. A Google Maps link is never mistaken for the website.
  • Listings without a website become free rows with status no_website and a website opportunity of 100 (switch this off if you only want audited sites). A business whose "website" is only a Facebook or Instagram page or a marketplace listing (Fresha, Booksy, Treatwell, Yelp and similar) gets a free no_own_website row the same way.
  • Websites: a plain list works too, with or without a dataset.
  • Your service, email checks in DNS, pages per website (4 by default) and an optional proxy.

Where your list can come from

  • Google Maps Scraper: set datasetId to its run's dataset. This Actor never searches Google Maps itself; it works on the dataset you bring.
  • A CSV file or spreadsheet: paste the website column into websites, one per line.
  • Your CRM: export the accounts and paste the website column, or push the rows into an Apify dataset with the API and set datasetId to it. datasetUrlField names the column when it is not one of the usual names.
  • Make, n8n, Zapier or Clay: start the Actor through the Apify API (Apify also offers ready-made modules for some of these tools), pass websites in the input and read the run's dataset as the output.

Pricing

Pay per event, shown on the Actor's pricing tab:

  • business-audited: one per business whose website answered and was audited.

Rows for listings without a website (or with only a social or marketplace page), and for websites that could not be read (blocked by robots.txt, offline, refusing automated requests), are free and carry the reason. When your maximum cost per run is reached, the run stops cleanly before the next website.

Access rules

  • Every request is checked against the site's robots.txt first, including the well-known files (/sitemap.xml, /llms.txt). If a robots.txt cannot be read, the site is skipped, not worked around. Login pages, CAPTCHAs and other access controls are never bypassed.
  • Each website is read at a polite rate, a few pages only, with one identifiable user agent.
  • Directory and social platform pages (Google Maps, Facebook, Yelp and the like) are never crawled as a business website.
  • Emails hidden by Cloudflare protection are flagged, not decoded.
  • A site whose HTTPS connection fails (for example an expired certificate) is read once over plain HTTP and reported as not served over HTTPS.

Personal data

Decision makers are taken only from the business's own website, with name, role and the email address the site publishes for them. Nothing is looked up elsewhere and nothing is guessed. You are responsible for having a lawful basis (for example legitimate interest in B2B prospecting), for honouring objections, and for following the email and calling rules of the countries you contact.

Known limits

  • Websites that render their content only with JavaScript expose few links and little text to the crawler; tools loaded only by a tag manager after the page starts may not be detected.
  • The response time is measured from the crawler's server, not from a visitor's phone; treat it as a signal, not a lab measurement.
  • "Not detected" means not found on the pages read: a booking tool on a page the crawl did not reach, or one added only after a click, is not seen.
  • Google rating and review count come from the input dataset; a plain website list has no reputation data.

Typical uses

  • Turn a Google Maps search ("dentists in Manchester") into a ranked call list for one service.
  • Find the businesses without a website, without HTTPS or without a mobile layout.
  • Find appointment businesses without online booking or live chat.
  • Find domains without DMARC for an email deliverability offer.
  • Personalise the first line of an outreach message with a finding the owner can verify.

Need it done for you?

Want this connected to your CRM or workflow, or adapted to your market? Tribloc, the team behind this Actor, builds these setups. Get in touch at tribloc.co.uk.