Local Business Website Lead Qualifier avatar

Local Business Website Lead Qualifier

Pricing

from $5.00 / 1,000 site qualifieds

Go to Apify Store
Local Business Website Lead Qualifier

Local Business Website Lead Qualifier

Lead qualification for web designers: score local business websites 0-100 on how much they need a new site (no mobile layout, broken HTTPS, outdated code, SEO spam). Enrich a Google Maps scraper dataset, or chain it after your scrape via Integrations. Role emails, phones and socials included.

Pricing

from $5.00 / 1,000 site qualifieds

Rating

0.0

(0)

Developer

Weio, Inc.

Weio, Inc.

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

Give it a list of local business websites, or a dataset you already have from a places or business-directory scraper, and it tells you which businesses most need a new website, with a 0-100 "needs a new website" score and the plain reasons behind it. Built for web designers, agencies and freelancers who sell website work to local businesses and want to contact the right ones first.

Lists of businesses without a website are easy to get. This actor finds the ones that have a website that is hurting them: no mobile layout, a broken certificate, code from another decade, or a homepage stuffed with casino spam by a hacker.

How to use

  1. Paste domains or URLs into Websites, or pick a dataset in Dataset with websites (for example the output of a places or directory scraper you ran on Apify; the actor reads each item's website field).
  2. Optional: set Only output sites scoring at least (for example 40) so you only get, and only pay for, likely leads.
  3. Optional: tick Phone screenshot to get a picture of how each site looks on a phone.
  4. Start the run, open the Leads view, sort by score and export to CSV, Excel or JSON, or read the dataset through the API.

Run it automatically after your places scraper. In the task of your Google Maps (or other places) scraper, open Integrations, add this actor and keep the prefilled input "datasetId": "{{resource.defaultDatasetId}}". Each time the scraper finishes, this actor qualifies the businesses in that run's dataset that list a website (others are free).

What each row contains

fieldmeaning
needs_new_website_score0-100, the sum of the points below (capped at 100)
score_reasonswhich signals fired
signalsevery signal, true/false
mobile_viewportthe page declares a phone layout
https_bare, https_wwwcertificate status (valid / incomplete_chain / expired / wrong_name / self_signed / no_https ...) and days left
cms, technologies, jquery_versionwhat the site is built with
newest_copyright_yearnewest copyright year found on the homepage
spam_terms, spam_linkscasino/pharma spam phrases and links to spam sites injected into the homepage, if any
role_emails, phones, social, contact_pagepublic business contact details from the site itself
inputsevery input of yours that points at this website (join the result back to your own list)
no_own_websitetrue when the "website" was a page on a platform (Facebook, Yelp, Google, a free-builder subdomain)
phone_screenshot_urllink to the phone screenshot, when you asked for one

Example row (info.cern.ch, from the prefilled input):

{
"input": "info.cern.ch",
"inputs": ["info.cern.ch"],
"domain": "info.cern.ch",
"final_url": "https://info.cern.ch/",
"needs_new_website_score": 30,
"score_reasons": ["no_mobile_viewport"],
"mobile_viewport": false,
"https_bare": {"status": "valid", "days_left": 52},
"https_www": {"status": "unresolved", "days_left": null},
"cms": null,
"technologies": [],
"newest_copyright_year": null,
"spam_terms": [],
"role_emails": [],
"phones": [],
"social": {},
"no_own_website": false,
"error": null
}

How the score is built

signalpoints
no mobile viewport tag (page renders desktop-width on phones)30
no valid HTTPS certificate on either the bare or www host20
HTTPS broken on one of the two hosts, or an incomplete certificate chain5
fixed page width of 700 px or more (HTML width attribute, or CSS width on a page without a viewport tag)10
newest copyright year is 3 or more years old ("2015 - present" counts as current)10
jQuery 1.x loaded10
Flash or Silverlight object10
<font> tags, or table-based layout on a page without a mobile viewport5
an HTTPS page still loads http:// scripts, styles or images5
SEO spam injected into the homepage (likely hacked)15

The spam signal counts spam phrases, links to spam sites and hidden spam text. It ignores the spam family that is the business's own trade, so a pharmacy, a casino or a lender is not called hacked for describing what it sells.

Input

  • Websites: domains or URLs, one per line, and/or
  • Dataset with websites: a dataset in your Apify account. The actor reads the website (or websiteUrl, webUrl, site, domain) field of each item, so the output of most places and directory scrapers works as is. A listing's own page (its Google Maps or Yelp url) is never used as the business's website: items without a website, and places marked permanently closed, are skipped for free.
  • Only output sites scoring at least: skip low scorers (they are not output and not charged).
  • Phone screenshot (opt-in, off by default): also saves a first-screen phone screenshot (390x844) of each qualified site and adds phone_screenshot_url to the row. Useful as visual proof in a pitch: a desktop-only site shows up squeezed and unreadable. The link works for anyone who has it and lasts as long as your plan keeps the run's storage, so download the images you want to keep.

Example input:

{
"websites": ["zingermans.com", "info.cern.ch"],
"datasetId": "<your dataset ID, optional>",
"minScore": 40,
"phoneScreenshot": false
}

Pricing

Pay per event: $0.01 per qualified site ($10 per 1,000). You pay once per website domain: if your list has 40 locations of one chain that all link to the same site, that site is checked and charged once, and its row lists every distinct input that points at it (inputs).

Free: sites that are unreachable or not a valid address, sites that answer with a bot check instead of their page, sites whose robots.txt asks our crawler (user agent WeioBot) not to read the homepage, "websites" that are a page on a platform (Facebook, Instagram, Yelp, Google, a free-builder subdomain; marked no_own_website, which is often the best lead of all), and sites below your minimum score.

Opt-in phone screenshot: $0.003 per screenshot saved. When the site shows a bot check, answers with an error status, or the capture fails, no screenshot is saved, the row says why in phone_screenshot_note, and it is not charged.

Example: 1,000 places from a directory scraper, of which 700 have a website on 650 distinct domains, 50 of those are unreachable and you set a minimum score of 40 that 200 sites reach: you pay for 200 sites, $2.00. The run stops when your maximum charge is reached, and a run that is restarted by the platform does not charge again for sites it already delivered.

FAQ and limits

  • Does it render the page? No. The score reads the homepage HTML and the certificates. A site that has a viewport tag but still overflows on a phone can score low; the phone screenshot shows you the real thing.
  • Certificate checks that time out are never counted against a site.
  • Does it use Google? No. The actor never fetches Google, Google Maps or social network pages. It reads the website addresses you give it and fetches only those businesses' own homepages.
  • Big lists: up to 10,000 websites per run. For lists over a few thousand, give the run a longer timeout in the run options.
  • Related actors from Weio: Local Business Website Audit gives the full per-site issue list (no score) for sites you already care about, and Bulk Lighthouse Audit runs mobile Lighthouse on the leads you shortlist here.

Data and responsibility

  • Only public pages are read: the homepage of each site, and a TLS handshake for the certificate.
  • Only role email addresses (info@, sales@, office@ ...) are returned. Personal-name addresses are dropped.
  • You are responsible for having the right to collect and use the input data and for how you contact the businesses (for example CAN-SPAM in the US: real sender, postal address, working opt-out).
  • A business that wants its site left out can email sales@weio.ai (opt-out requests are honoured; the address is used for nothing else here) and it will be added to the actor's skip list.

Built and maintained by Weio, Inc. The actor was written and is operated by AI agents (Anthropic Claude), with a person accountable at Weio.