Website Intelligence + Contact Extractor avatar

Website Intelligence + Contact Extractor

Pricing

from $3.50 / 1,000 website record saveds

Go to Apify Store
Website Intelligence + Contact Extractor

Website Intelligence + Contact Extractor

Enrich company websites with emails, phones, social links, tech stack, and EU compliance signals. Optional BYOK AI business classification. Works standalone or after Google Maps CEE Supplier Shortlist Builder.

Pricing

from $3.50 / 1,000 website record saveds

Rating

0.0

(0)

Developer

Viktor Kondas

Viktor Kondas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Enrich company websites with contacts, tech stack, and EU-aware compliance signals — then optionally classify with BYOK AI.

Standalone Apify actor. Works with any public website list worldwide. Pairs well with the Google Maps CEE Supplier Shortlist Builder website field, but does not require it.

Optional next step after Maps: feed shortlist website URLs into this actor for emails, phones, tech stack, and EU compliance flags.

What it does

  • Fetches the homepage over HTTP (browser fallback + residential proxy for bot-walled sites).
  • Crawls a small set of high-value pages (contact, about, imprint, privacy, careers).
  • Returns structured JSON/CSV/Excel with contacts, social profiles, tech signals, and compliance flags.
  • Extracts:
    • Contacts: emails, phones, LinkedIn/Facebook/X/Instagram/YouTube/WhatsApp, contact form URL
    • IDs: EU VAT heuristics, HU tax ID / PL NIP patterns when present
    • Tech: CMS, shop, analytics, chat, booking, CRM, tag managers, cookie tools
    • Compliance flags: cookie banner, privacy, imprint/impresszum, terms/ÁSZF, careers, newsletter
    • Languages: html lang + hreflang
  • Optional multi-provider AI enrichment (BYOK): Gemini, Claude, ChatGPT, or OpenRouter.
  • Built for n8n, Make, Zapier, and vibe-coder agent workflows.

Who it's for

  1. Sales teams enriching SME lead lists after Maps or CRM exports.
  2. Procurement teams checking supplier website hygiene before outreach.
  3. Agencies running batch website intelligence for clients.
  4. Vibe coders powering enrichment steps in n8n / Make / Zapier / Apify.
  5. Market researchers auditing contactability and tech stack across a domain list.

What this actor is — and is not

This actor helps you extract public website signals useful for outreach and shortlist prep. It does not verify legal entity status, GDPR compliance quality, insurance, certifications, or formal vendor approval.

Use the output for:

  • contact discovery
  • tech / stack fingerprinting
  • EU-style page hygiene checks (privacy, impresszum, terms)
  • enrichment after Google Maps or CRM exports

Do not use it as the sole basis for KYB, contract award, or formal vendor qualification.

What data you get

FieldDescription
website, domain, finalUrlInput URL, normalized domain, final resolved URL
statusCode, pagesCrawledHTTP status and pages successfully fetched
emails, phonesContact channels found on crawled pages
linkedin, facebook, twitter, instagram, youtube, whatsappSocial profile URLs (posts/embeds filtered out)
contactFormUrlDetected contact form page when present
vatNumbers, taxIdsEU VAT / local tax ID heuristics when present
cms, shop, analytics, chat, booking, crm, tagManagers, cookies, otherTechTech stack signals
hasPrivacyPage, hasImprintPage, hasTermsPage, hasCareerPage, hasCookieBanner, hasNewsletterCompliance / page flags
privacyPageUrl, imprintPageUrl, termsPageUrl, careerPageUrl, contactPageUrlsMatched page URLs
languagesDetected language codes
aiBusinessType, aiSummaryWhen AI enrichment is enabled
errorSet when the site could not be fetched usefully

How to use it

  1. Configure input — website list, max pages, concurrency, proxy.
  2. Run on Apify cloud (recommended) or locally with apify run.
  3. Download dataset as JSON, CSV, or Excel from the run page.

Input presets

Enrich company websites (Store example)

{
"websites": [
"https://www.vibecoderslife.com",
"https://www.projectisconsulting.com"
],
"maxPagesPerSite": 6,
"concurrency": 2,
"enableAIEnrichment": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Published Store example: Enrich company websites — contacts & tech stack.

After Google Maps shortlist

{
"websites": [
"https://example-clinic.hu",
"https://example-supplier.ro"
],
"maxPagesPerSite": 6,
"concurrency": 3,
"enableAIEnrichment": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Pipe website values from Google Maps CEE Supplier Shortlist Builder into this list.

With optional BYOK AI enrichment

{
"websites": [
"https://www.vibecoderslife.com",
"https://www.projectisconsulting.com"
],
"maxPagesPerSite": 6,
"enableAIEnrichment": true,
"aiProvider": "openrouter",
"openrouterApiKey": "YOUR_KEY",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Output example

{
"website": "https://www.projectisconsulting.com",
"domain": "projectisconsulting.com",
"finalUrl": "https://www.projectisconsulting.com/",
"statusCode": 200,
"pagesCrawled": 2,
"emails": ["mariann@projectisconsulting.com"],
"phones": [],
"linkedin": ["https://www.linkedin.com/in/mariann-vamosi"],
"facebook": [],
"twitter": [],
"instagram": [],
"youtube": [],
"whatsapp": [],
"contactFormUrl": null,
"vatNumbers": [],
"taxIds": [],
"languages": ["en", "hu"],
"cms": ["Wix"],
"analytics": ["GA4", "Google Analytics"],
"hasCookieBanner": false,
"hasPrivacyPage": true,
"hasImprintPage": false,
"hasTermsPage": false,
"privacyPageUrl": "https://www.projectisconsulting.com/adatvedelem",
"scrapedAt": "2026-07-16T15:54:29.848Z",
"error": null,
"aiBusinessType": null,
"aiSummary": null
}

AI enrichment (BYOK — bring your own key)

Scraping and contact/tech extraction work without any LLM key. AI is optional and classifies only the public evidence collected.

When enableAIEnrichment is true, choose aiProvider and paste your API key:

ProviderInput key fieldGet key
Gemini (default in auto)geminiApiKeyGoogle AI Studio
ClaudeanthropicApiKeyAnthropic Console
ChatGPTopenaiApiKeyOpenAI API keys
OpenRouteropenrouterApiKeyOpenRouter
autoFirst available key aboveTries Gemini → Claude → OpenAI → OpenRouter

OpenRouter model: override with aiModel when needed.

Proxy and blocked sites

FeatureSupport
Apify Proxy RESIDENTIALRecommended default for Cloudflare / Vercel / enterprise walls
Browser fallbackRetries with rotating residential sessions when HTTP is challenged
Plain HTTP sitesWork without a browser on most SME sites

If a run shows HTTP 429 / bot challenge in error, confirm Proxy is Apify Proxy + RESIDENTIAL and re-run. The Console message “URL isn’t accessible” after a finished run usually refers to the temporary container URL — check the Dataset error field instead.

Recommended demo run:

{
"websites": [
"https://www.vibecoderslife.com",
"https://www.projectisconsulting.com"
],
"maxPagesPerSite": 6,
"concurrency": 2,
"enableAIEnrichment": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Secrets and local development

  • Never commit apify/website-intelligence-contact-extractor/.env — it is listed in .gitignore.
  • apify push excludes .env via .gitignore and .actorignore.
  • Docker builds exclude .env via .dockerignore.
  • On Apify cloud, customers paste keys into input fields (openrouterApiKey, etc.) marked as secrets — not from your local .env.
  • For local runs only, copy .env.example.env and add optional BYOK keys (GEMINI_API_KEY, etc.).
  • Only .env.example (placeholders, no real keys) is in git.

FAQ

How is this different from a generic email scraper?
This actor returns one enriched domain record with contacts, social profiles, tech stack, and EU-style compliance page flags — not a raw email dump.

Does it work outside CEE?
Yes. Marketing ICP is CEE/Europe; the scanner works on public websites worldwide.

What is AI enrichment and does it cost extra on Apify?
AI enrichment is optional and BYOK. You pay your LLM provider directly. The actor’s Apify fee is per saved website record. Extraction works with zero LLM keys.

Why are some enterprise sites empty or errored?
Heavy bot walls (Oracle-class) can still block residential exits intermittently. Re-run usually rotates to a working node; SME sites are the primary sweet spot.

Local development

cd apify/website-intelligence-contact-extractor
npm install
npm test
npm run build
apify run --input-file=INPUT.smoke-mix.json

Pricing

Pay-per-event: $3.50 per 1,000 website records (website event @ $0.0035), minimum charge $0.10 per run.

Enable Pay per event + usage in Apify Console so platform compute/proxy costs are passed through to users.

AI enrichment does not add an Apify AI event fee.

ActorRole
Google Maps CEE Supplier ShortlistDiscover local suppliers
Website Intelligence + Contact (this Actor)Enrich websites (contacts, tech, compliance)
Dealer / Distributor LocatorExpand brand locator pages
PDF Procurement Document ExtractorFind certs / reports / datasheets
Website Change MonitorWatch pages for changes

Each Actor runs standalone; use them as an optional suite when chaining discovery → enrichment → monitoring.

Feedback

Open an issue on the actor’s Apify page or contact Vibe Coder's Life.