Website Lead Qualifier: Emails, Tech Stack & Sales Signals avatar

Website Lead Qualifier: Emails, Tech Stack & Sales Signals

Pricing

from $4.00 / 1,000 analysed websites

Go to Apify Store
Website Lead Qualifier: Emails, Tech Stack & Sales Signals

Website Lead Qualifier: Emails, Tech Stack & Sales Signals

Reads each business website and lists what an agency could sell it: no Meta pixel or analytics, no HTTPS, not mobile-ready, no online booking, outdated WordPress, missing SEO basics. Adds emails with MX check, phones and socials. Takes a URL list or a Google Maps Scraper dataset.

Pricing

from $4.00 / 1,000 analysed websites

Rating

0.0

(0)

Developer

Kostas Skutulas

Kostas Skutulas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Categories

Share

Website Lead Qualifier is a lead generation tool for agencies and web designers. It reads business websites and returns one flat row per business with emails, phones, the tech stack, marketing tags such as Meta Pixel and Google Ads, and short codes for what an agency could sell the business, such as no-meta-pixel, no-online-booking, no-https and outdated-wordpress. It takes a list of websites or a Google Maps Scraper dataset, and does not search for businesses itself.

What it finds

For each website it records:

  • Contacts: emails (with an MX check), phones in international format, WhatsApp, and links to Facebook, Instagram, LinkedIn, X, YouTube and TikTok.
  • Tech stack: platform (WordPress, WooCommerce, Shopify, Wix, Squarespace, Webflow and a dozen more), WordPress version, and whether the site is a shop.
  • Marketing tags: Google Analytics 4, the old Universal Analytics, Google Tag Manager, Google Ads, Meta Pixel, TikTok, LinkedIn, Hotjar and Clarity. Tags are read from the page and from inside its Tag Manager container, where agencies put most of them.
  • Widgets: cookie consent tool, live chat, online booking system and newsletter form, each named by vendor.
  • Basics: HTTPS, mobile viewport, title, meta description, noindex, structured data, copyright year, server response time and accessibility signals.
  • Opportunities: the codes in the table below, for filtering the list.

How to use

With Google Maps Scraper

  1. Run Google Maps Scraper for your niche and city.
  2. Paste the run's Dataset ID into this actor's "Dataset ID" field and start it. You can also add this actor as an integration on the Maps run. It then reads the dataset by itself when the Maps run finishes.

Each row keeps the business name, category, city, rating, review count and the phone number that Google Maps lists, next to what was found on the website. Businesses without a website are included as no-website and are not charged.

With your own list

Paste domains or URLs into "Websites", one per line. Tracking parameters are removed and the rest of the URL is kept, so a branch page on a chain's site is read as that branch page.

Filtering the results

Sort by opportunityCount, or filter opportunities by the code for the service you sell. Check emailHasMx before you send email to the addresses in emails.

Opportunity codes

CodeRaised whenWho sells the fix
no-websiteThe dataset row has no website at allWeb design
no-own-websiteThe "website" is a Facebook, Instagram, Booksy, Wolt, Linktree or similar page, or the domain forwards to oneWeb design
website-downThe site did not answer, or its home page returned an errorWeb design, hosting
parked-domainThe domain shows a registrar's parking or for-sale pageWeb design
placeholder-page"Coming soon", "under construction" or a server's default page, with little else on itWeb design
no-httpsThe site is served over plain HTTPWeb design, hosting
https-brokenHTTPS failed on its certificate and the site only answered over HTTPWeb design, hosting
no-mobile-viewportNo width=device-width viewport: the site was not built for phonesWeb design
outdated-copyrightThe latest copyright year is two or more years oldWeb design
outdated-wordpressWordPress is three or more feature releases behind the current oneWordPress care
site-builderBuilt on Wix, Squarespace, Webflow, Weebly, GoDaddy, Jimdo, Duda or TildaWeb design
slow-serverThe home page took more than 2.5 s to start answeringHosting, performance
accessibility-issuesFour or more of eight machine-readable accessibility signals failedAccessibility
noindexThe page tells search engines not to index itSEO
missing-titleNo <title>SEO
no-meta-descriptionNo meta descriptionSEO
no-structured-dataNo schema.org Organization or LocalBusiness dataSEO
no-analyticsNo analytics of any kind: Google, Tag Manager, Matomo, Plausible, Hotjar or ClarityAnalytics
legacy-analytics-onlyOnly Universal Analytics, which stopped collecting data in July 2024. A GA4 tag that the old tag loads as a connected tag counts as GA4Analytics
no-meta-pixelNo Meta Pixel on the page, in Tag Manager or in Shopify's Meta appPaid social
no-google-ads-tagNo Google Ads tag on the page, in Tag Manager or in Shopify's Google appPPC
no-cookie-consentTracking tags run but no consent banner was found, in the EU, EEA, UK or SwitzerlandPrivacy compliance
no-online-bookingNo booking system, for a business whose Maps category books appointments (salons, clinics, restaurants, gyms, hotels...)Booking software
no-live-chatNo chat widget and no Messenger, WhatsApp, Viber or Telegram linkChat, chatbots
no-contact-emailNo email address on the site or its contact pagen/a
no-social-linksNo link to any social profileSocial media

A code is raised only on evidence. When something could not be read, its code is left off rather than guessed. A wrong no-meta-pixel would send an ads agency to a business that already has a pixel.

Measured on 155 real businesses

Two samples, one run each, with default settings.

130 Lithuanian shops and showrooms25 UK dentists, Berlin restaurants, Austin salons
Analysed128 (2 refused access)18 (3 without a site of their own, 3 down or refusing access)
Run time24 s at 10 sites at once9 s
Pages opened per site1.2 on average1.8
Email found98%78%
Phone found96%100%
Tags found only inside Tag Manager40% of sites44%
Booking system foundn/a44%
Opportunities per site3.84.6

The Tag Manager row is the reason the container is read. On four sites in ten, a pixel or an ads tag that is not in the page source was loaded from the container. Reading the HTML alone would have reported those businesses as not advertising.

Consent findings were checked by hand. Twelve sites flagged no-cookie-consent were opened in a browser, and nine had no banner. The other three had banners the actor did not detect at the time (Borlabs Cookie 3, a banner text stored as escaped JSON, and Wix's own banner). All three cases are now handled.

What HTML cannot show

  • Cookie banners on site builders. Wix, Squarespace and the other builders draw their own banner after the page loads, and it leaves no trace in the HTML. Consent is not judged on these sites: cookieConsent is left empty and no-cookie-consent is never raised.
  • Tags added in a builder's own marketing settings, such as the "Facebook Pixel" integration of a Wix site, load the same way. On site builders, no-meta-pixel is likely but not certain.
  • Booking forms a business built itself are not recognised. Only the seventy-odd booking systems and plugins listed in the source code are. This is why no-online-booking is raised only for categories that book appointments.
  • Speed is the server's response time. It shows slow hosting. It is not a Lighthouse score and does not measure how heavy the page is.
  • Accessibility is eight machine-readable signals, not a full audit. See the recommendations below.

Pricing

$4 per 1,000 websites analysed: $0.004 for each site that was reached and read.

Rows for businesses with no website or with only a social or booking page, and rows for sites that did not answer, are recorded free of charge. When several Google Maps listings share one website (branches, or a clinic listed once per doctor), the site is read and charged once and the result is copied to each listing.

Apify adds its standard start fee of $0.00005 per run. Compute is included.

Input and output

Input

{
"datasetId": "YOUR_GOOGLE_MAPS_SCRAPER_DATASET_ID",
"websites": ["kirpykla.lt", "https://www.example-dental.co.uk/"],
"maxRequestsPerSite": 5,
"concurrency": 10
}

Output

A real row from the measured run, shortened:

{
"name": "Thornley Park Dental",
"category": "Dentist",
"city": "Manchester",
"countryCode": "GB",
"website": "https://thornleyparkdental.com/",
"status": "ok",
"opportunities": ["no-online-booking", "no-live-chat"],
"opportunityCount": 2,
"emails": ["info@thornleyparkdental.com"],
"emailHasMx": true,
"phones": ["+441613368036"],
"instagram": "https://www.instagram.com/thornleyparkdental/",
"platform": "wordpress",
"https": true,
"responseMs": 455,
"mobileViewport": true,
"copyrightYear": 2026,
"schemaBusiness": true,
"googleAnalytics": true,
"googleTagManager": true,
"googleAdsTag": true,
"metaPixel": true,
"foundInTagManager": ["Google Analytics 4", "Google Ads", "Meta Pixel"],
"cookieConsent": true,
"cookieConsentTool": "Borlabs Cookie",
"liveChat": false,
"onlineBooking": false,
"a11yChecksFailed": 3,
"requestsMade": 1,
"elapsedMs": 1250
}

This practice runs Google Ads and a Meta Pixel, both loaded through Tag Manager, so its page source shows neither. It is not a lead for an ads agency. Its two codes are for booking software and live chat.

Every row has a status. ok and parked rows are analyses and are charged. no-website, no-own-website, unreachable, blocked and invalid rows are not. Rows copied from an earlier listing with the same website carry sameWebsiteAs and are not charged again.

Recommendations

  • Filter on the code you sell. opportunityCount is for sorting. To build a list for one service, filter opportunities by that service's code.
  • Check emailHasMx before sending. An address on a domain with no mail server bounces, and bounces harm the sending domain's reputation.
  • Use a11yChecksFailed as a signal only. It counts eight checks that can be read from the source, such as missing alternative text, unlabelled inputs and blocked zoom. Failures cluster there, but most of WCAG needs a rendered page and a person testing with a keyboard, so it is not a compliance verdict.
  • Do not raise concurrency to finish a big list sooner. Pages on one site are opened one at a time with a pause between them, to keep the load on small business sites low.

FAQ

Does it find businesses as well? No. It analyses the websites it is given. Get the businesses from Google Maps Scraper or from your own list.

Why is a site blocked? It answered with 401, 403, 407 or 429, usually from a firewall that blocks automated visitors. The row records the refusal and is not charged.

Does it respect robots.txt? Yes, including a group written for website-lead-qualifier by name. The home page is requested once, and robots.txt is read before any further page.

Why is a pixel reported that I cannot see in the page source? It is loaded by Google Tag Manager or by a Shopify app. foundInTagManager names the tags that were found only in the container.

  • Lead Qualifier Chrome extension: the same checks for the one site open in your browser, in one click, with a draft first email.
  • Shop Intel, for online shops: platform, catalogue photo and dimension readiness, contacts.
  • Photo to 3D: product photos to web-ready 3D models at real size.
  • Made by ITneeds.