Local Business Website Lead Qualifier
Pricing
from $5.00 / 1,000 site qualifieds
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.
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
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
- 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).
- Optional: set Only output sites scoring at least (for example 40) so you only get, and only pay for, likely leads.
- Optional: tick Phone screenshot to get a picture of how each site looks on a phone.
- 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
| field | meaning |
|---|---|
needs_new_website_score | 0-100, the sum of the points below (capped at 100) |
score_reasons | which signals fired |
signals | every signal, true/false |
mobile_viewport | the page declares a phone layout |
https_bare, https_www | certificate status (valid / incomplete_chain / expired / wrong_name / self_signed / no_https ...) and days left |
cms, technologies, jquery_version | what the site is built with |
newest_copyright_year | newest copyright year found on the homepage |
spam_terms, spam_links | casino/pharma spam phrases and links to spam sites injected into the homepage, if any |
role_emails, phones, social, contact_page | public business contact details from the site itself |
inputs | every input of yours that points at this website (join the result back to your own list) |
no_own_website | true when the "website" was a page on a platform (Facebook, Yelp, Google, a free-builder subdomain) |
phone_screenshot_url | link 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
| signal | points |
|---|---|
| no mobile viewport tag (page renders desktop-width on phones) | 30 |
| no valid HTTPS certificate on either the bare or www host | 20 |
| HTTPS broken on one of the two hosts, or an incomplete certificate chain | 5 |
| 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 loaded | 10 |
| Flash or Silverlight object | 10 |
<font> tags, or table-based layout on a page without a mobile viewport | 5 |
| an HTTPS page still loads http:// scripts, styles or images | 5 |
| 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(orwebsiteUrl,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 Yelpurl) 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_urlto 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.