B2B Outreach Route Finder
Pricing
from $3.00 / 1,000 company with outreach routes
B2B Outreach Route Finder
Find the best public outreach route for every company website: ranked emails, phones, social profiles, contact forms, CAPTCHA detection, and CRM-ready contactability scores.
Pricing
from $3.00 / 1,000 company with outreach routes
Rating
0.0
(0)
Developer
Juddroid
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
22 days ago
Last modified
Categories
Security
Limited permissionsShare
Turn a list of company websites into the best way to reach each company: verified role emails, usable contact forms, phones and LinkedIn, ranked and explained.
What does B2B Outreach Route Finder do?
You give it company websites, domains or business email addresses. For each unique company it reads the homepage plus the pages most likely to hold contact details: contact, sales/demo, Impressum/legal notice, about/team and support. It also tries common paths like /contact, /kontakt and /impressum when they aren't linked. It extracts every public business contact channel, checks the email domains in DNS, and ranks the channels into a list of routes[]. Each route has a confidence score and a plain-English reason. You get one row per company with a recommendedRoute and a 0-100 contactabilityScore, ready for your CRM or sequencer.
Why use it
- Ranked routes instead of a pile of emails. Generic extractors dump every address they see. This Actor tells you which channel to use first: a sales inbox with a working mail server beats
info@, which beats a contact form, which beats a phone line, a CAPTCHA-protected form, or LinkedIn. - Deliverability built in. Every email gets an
mxValidflag from a live MX lookup, and addresses on domains that can't receive mail are dropped from the routes. You also get the company's mail provider (Google Workspace, Microsoft 365...) plus SPF and DMARC status. - Contact forms described properly. For each form you get the fields (name, type, required, label, options), method, action, whether it submits to a third party (HubSpot, Typeform, Formspree, Google Forms, Pardot, Marketo...), the form builder (Contact Form 7, WPForms, Gravity Forms, Webflow...), and the CAPTCHA vendor (
recaptcha,hcaptcha,turnstile,other). Forms embedded via HubSpot scripts or Typeform/Google Forms iframes are detected too. - Finds emails that simple regex scrapers miss. Cloudflare email protection is decoded, and so are
name [at] domain [dot] comandname(at)domain.deobfuscations, JSON-LDOrganization/LocalBusinesscontact points, and microdata. - Filters the junk. Image file names, Sentry/Wix tracking addresses, placeholder addresses (
you@example.com), hashed IDs and no-reply inboxes never reach your list. Addresses on unrelated domains (web agencies, regulators) are kept for reference but never recommended. - Clean input, fair billing. Rows are normalized and deduplicated by registrable domain, so
www.acme.com/contactandacme.comare one company, andshop.wixsite.comsites are kept apart. Free-mail domains and social profile URLs are flagged. You are only charged for companies where at least one route was found.
What data you get
| Field | Description |
|---|---|
domain, companyName | Registrable domain and company name (from structured data, site name or title) |
status | ok (charged), no_routes, failed, duplicate, invalid or skipped (never charged) |
recommendedRoute | The top route: type, value, sourceUrl, confidence (0-1), reason |
recommendedRouteType, recommendedRouteValue | Flat copies for spreadsheets and CRMs |
contactabilityScore | 0-100: best email (40) + contact form (20) + phone (15) + LinkedIn (10) + other social (5) + SPF/DMARC (10) |
routes[] | All routes ranked: sales_email, role_email, contact_form, phone, personal_email, contact_form_captcha, linkedin, social |
primaryEmail, primaryPhone, contactFormUrl, linkedinUrl | Best value per channel |
emails[] | Each address with kind (role or personal-looking), role (sales, general, orders, support, press, careers, legal...), domainMatch (same, related, external), freeMail, mxValid, foundVia (mailto, text, cloudflare, obfuscated, jsonld, microdata) and source pages |
phones[] | From tel: links, JSON-LD and microdata, with E.164 format when the country is known |
contactForms[] | Fields, method, action, purpose (contact, sales, support), provider, postsToThirdParty, captcha, captchaScope, honeypot and file-upload flags |
socialProfiles | LinkedIn (company page preferred over personal profiles), X/Twitter, Facebook, Instagram, YouTube, TikTok |
emailDeliverability | Company domain MX hosts, mail provider, SPF, DMARC and DMARC policy |
company | Page title, meta description, language, country and the signals behind it (TLD, structured data, phone prefix, locale) |
inputFlags, sourcePages, pagesScanned, warnings, error | Input hygiene flags and a crawl audit trail |
How to use
- Open the Actor and paste your companies into Company websites or domains, one per line. URLs, bare domains and business emails all work.
- Optionally adjust Max pages per website (default 6). This affects speed, not price.
- Leave Verify email domains on to get
mxValidflags and SPF/DMARC checks. - Turn off Include personal-looking emails if you only want role inboxes such as
sales@andinfo@. - Click Start. Export the Outreach routes view as CSV/Excel for a one-row-per-company sheet, or use the All routes view for one row per route.
{"urls": ["https://apify.com","plausible.io","www.konii.de","info@hifi.de"],"maxPagesPerSite": 6,"maxConcurrency": 5,"checkEmailDns": true,"includePersonalEmails": true}
Output example
A real result for a German company (trimmed: one social route and some metadata removed). Its info@ address was written as info[at]konii.de in the Impressum, and the contact form uses WPForms with hCaptcha:
{"domain": "konii.de","status": "ok","companyName": "Konii","contactabilityScore": 70,"recommendedRouteType": "role_email","recommendedRouteValue": "info@konii.de","primaryEmail": "info@konii.de","contactFormUrl": "https://www.konii.de/kontakt/","linkedinUrl": "https://www.linkedin.com/company/konii-de/","routes": [{ "rank": 1, "type": "role_email", "value": "info@konii.de", "sourceUrl": "https://www.konii.de/impressum/", "confidence": 0.85,"reason": "General role inbox on the company domain, linked as mailto; domain accepts mail (MX found)" },{ "rank": 2, "type": "contact_form_captcha", "value": "https://www.konii.de/kontakt/", "sourceUrl": "https://www.konii.de/kontakt/", "confidence": 0.4,"reason": "Contact form, 4 fields (2 required), built with WPForms, hcaptcha CAPTCHA" },{ "rank": 3, "type": "linkedin", "value": "https://www.linkedin.com/company/konii-de/", "sourceUrl": "https://www.konii.de/", "confidence": 0.45,"reason": "LinkedIn company page linked from the site" },{ "rank": 4, "type": "social", "network": "facebook", "value": "https://www.facebook.com/immobilienwirtschaft.konii", "sourceUrl": "https://www.konii.de/", "confidence": 0.3,"reason": "Facebook profile linked from the site" },{ "rank": 6, "type": "role_email", "value": "datenschutz@konii.de", "sourceUrl": "https://www.konii.de/datenschutzerklaerung/", "confidence": 0.2,"reason": "Legal inbox: reachable but not suited for sales outreach; domain accepts mail (MX found)" }],"emails": [{ "email": "info@konii.de", "kind": "role", "role": "general", "domainMatch": "same", "freeMail": false, "mxValid": true,"foundVia": ["mailto", "obfuscated", "text"], "sourceUrls": ["https://www.konii.de/impressum/", "https://www.konii.de/kontakt/"] }],"contactForms": [{"pageUrl": "https://www.konii.de/kontakt/","action": "https://www.konii.de/kontakt/","method": "POST","purpose": "contact","provider": "WPForms","postsToThirdParty": false,"captcha": "hcaptcha","captchaScope": "form","fieldCount": 4,"requiredFieldCount": 2,"fields": [{ "name": "wpforms[fields][1]", "type": "text", "required": true, "label": "Name" },{ "name": "wpforms[fields][3]", "type": "email", "required": true, "label": "E-Mail" },{ "name": "wpforms[fields][7][]", "type": "checkbox", "required": false, "options": ["Anzeigen", "Stellenanzeige", "Unternehmensprofil", "Event"] },{ "name": "wpforms[fields][8]", "type": "textarea", "required": false, "label": "Nachricht" }]}],"emailDeliverability": {"domain": "konii.de", "mxValid": true, "mxHosts": ["konii-de.mail.protection.outlook.com"],"mailProvider": "Microsoft 365", "spf": true, "dmarc": true, "dmarcPolicy": "none"},"company": { "title": "Konii - Digital Real Estate - Konii", "language": "de", "country": "DE", "countrySignals": ["tld:DE", "locale:DE"] },"pagesScanned": 5}
Rows that are not charged look like this (one JSON object per row):
{ "input": "https://www.apify.com/contact", "domain": "apify.com", "status": "duplicate", "duplicateOf": "https://apify.com", "routeCount": 0 }{ "input": "this-company-does-not-exist-9x7q.com", "status": "failed", "error": "Domain does not resolve (ENOTFOUND)", "routeCount": 0 }{ "input": "jane.smith@gmail.com", "domain": "gmail.com", "status": "skipped", "error": "gmail.com is a consumer/free-mail provider, not a company website." }
Pricing
$0.003 per company with at least one outreach route (event: outreach-route-result). One charge per unique company, however many pages, emails or forms were checked.
| Input | Typical cost |
|---|---|
| 100 company websites | up to $0.30 |
| 1,000 company websites | up to $3.00 |
| 10,000 company websites | up to $30.00 |
If 1,000 inputs contain 50 duplicates and 100 dead or unreachable sites, you pay for at most 850 companies, which is $2.55.
Not charged: duplicates of a domain already in the run, invalid rows, free-mail and social-profile inputs, websites that fail to load or block the request, and reachable websites where no route was found (no_routes). If you set a maximum cost per run, the Actor stops cleanly when it is reached.
Integrations / scheduling
- Schedules: re-check your lead list weekly or monthly to catch new contact pages and dead domains.
- Webhooks: trigger your CRM import or a Zapier/Make/n8n flow when a run finishes.
- API: run it from any language with the Apify API or the JavaScript/Python clients, and read results from the dataset (
?view=overviewfor the compact table). - MCP and AI agents: the Actor can be called as a tool through the Apify MCP server, so an AI agent can decide how to contact a list of companies.
- Pairs well with Google Maps, directory or job-board scrapers that output company websites.
FAQ & limitations
Does it guess or verify email addresses? No. It only returns addresses that are published on the company's own pages or structured data. The MX check confirms the domain accepts mail, but it never contacts the mailbox. SMTP probing is not performed.
Why is a phone ranked above a LinkedIn page, but below a form? The ranking follows how likely a cold business message is to reach a person: sales inbox (with working MX) > other role inbox > form without CAPTCHA > phone > personal-looking address > form with CAPTCHA > LinkedIn > other social. Inboxes for careers, billing, legal/privacy and webmaster are listed last because they're the wrong place for a sales message.
JavaScript-only websites. The Actor reads server-rendered HTML for speed and cost. Content that only appears after JavaScript runs may be missed, and the item then carries a warning. Forms embedded through HubSpot scripts or Typeform/Google Forms iframes are still detected, though their fields are not listed.
Blocked sites. Some sites use bot protection. When a challenge page or rate limit is detected, the Actor stops crawling that site and returns failed without charge. Optional proxy settings are available.
Personal data and responsible use. The Actor collects business contact information that companies publish on their own websites. It does not log in, and it doesn't collect data from social networks. Personal-looking addresses (for example a founder's name on the Impressum) can be excluded with Include personal-looking emails off. You are responsible for using the results lawfully: follow the GDPR/UK GDPR, ePrivacy and national rules on B2B email (for example the German UWG), CAN-SPAM and CASL. Honor opt-outs, and don't use contact forms for bulk or automated submissions.