AI Company Lead Enrichment & Sales Intelligence avatar

AI Company Lead Enrichment & Sales Intelligence

Pricing

from $6.00 / 1,000 enriched leads

Go to Apify Store
AI Company Lead Enrichment & Sales Intelligence

AI Company Lead Enrichment & Sales Intelligence

Find company websites, social profiles, contact pages, emails, recent news, lead scores, sales angles, and outreach templates from company names or domains.

Pricing

from $6.00 / 1,000 enriched leads

Rating

0.0

(0)

Developer

Yusuf Barış

Yusuf Barış

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

3 days ago

Last modified

Share

Turn company names, websites, or CSV lists into sales-ready B2B lead profiles. This Actor finds company websites, social media profiles, contact pages, public emails, recent news, website signals, lead scores, sales angles, and outreach templates in structured JSON.

It is built for lead generation, CRM enrichment, outbound sales, agency prospecting, market research, and AI / MCP workflows.

What does this Actor do?

This Actor researches each company input and returns one structured dataset item per company. The result is designed for Apify datasets, API usage, automations, and AI agents that need predictable field names, confidence scores, warnings, and source URLs.

You can use it with:

  • Company names only
  • Websites or domains
  • Company name + website pairs
  • Public CSV URLs

For best speed and accuracy, provide the company website when available.

Features

  • Find official company websites from names or domains
  • Find public social profiles: LinkedIn, Instagram, Facebook, X, YouTube, TikTok
  • Find contact pages, about pages, demo pages, sales pages, and contact paths
  • Extract public business emails and phone-like contact signals
  • Find recent company news and announcements
  • Detect website signals: pricing, careers, blog, docs, demo CTA, contact form
  • Detect basic website stack signals: Shopify, WordPress, HubSpot
  • Calculate a rule-based lead score from 0 to 100
  • Generate pain points and sales angles from public company signals
  • Generate cold email and LinkedIn outreach templates using your own offer details
  • Support English and Turkish outreach templates
  • Optionally rewrite outreach with your own OpenRouter API key and selected model
  • Return confidence, completeness, warnings, sources, and charge metadata

Use cases

  • B2B lead enrichment
  • Sales intelligence
  • Cold email personalization
  • CRM enrichment
  • Agency prospecting
  • Market research
  • Competitor research
  • Finding companies with weak website or contact signals
  • Enriching CSV company lists
  • AI agent and Apify MCP workflows

Input

Use the Apify input form or JSON input. In the form, add companies under Companies, then fill optional enrichment and outreach settings.

At least one of companies or csvUrl should be provided.

FieldTypeRequiredDescription
companiesarrayNoCompany list to enrich. Each item can include companyName, website, and country.
companies[].companyNamestringNoCompany name to research. Example: Ahrefs.
companies[].websitestringNoCompany website or domain. Example: https://ahrefs.com.
companies[].countrystringNoOptional country or market context. Example: United States.
csvUrlstringNoPublic CSV URL with companyName, website, and country columns.
maxCompaniesintegerNoMaximum unique companies to process. Default: 100. Hard cap: 5000.
findSocialProfilesbooleanNoFind public LinkedIn, Instagram, Facebook, X, YouTube, and TikTok profiles. Default: true.
findContactPagesbooleanNoFind contact, about, demo, sales, and similar pages. Default: true.
findEmailsbooleanNoExtract public emails from crawled website pages. Default: true.
findRecentNewsbooleanNoSearch for recent company news and announcements. Default: true.
generateOutreachbooleanNoGenerate cold email and LinkedIn message templates. Default: true.
senderNamestringNoSender name used in the email signature. If empty, {{senderName}} stays as a placeholder.
senderCompanystringNoYour company or agency name used in outreach copy.
offerDescriptionstringNoWhat you sell or offer. If empty, outreach keeps {{yourOffer}} as a placeholder.
targetPainPointstringNoThe specific problem your offer solves. If empty, the Actor uses detected company signals only as context.
callToActionstringNoOptional custom CTA. Example: Would it make sense to send a quick example?
languagestringNoOutreach language: en or tr. Default: en.
maxPagesPerCompanyintegerNoMax website pages to crawl per company. Default: 5. Hard cap: 10.
maxNewsPerCompanyintegerNoMax news results per company. Default: 3. Hard cap: 10.
maxSerpQueriesPerCompanyintegerNoMax search queries per company. Default: 2. Hard cap: 5.
maxRunTimeMinutesintegerNoSoft run time safety limit inside the Actor. Default: 720. Apify Run options timeout must also allow longer runs.
maxConcurrencyintegerNoMaximum companies enriched in parallel. Default: 5. Hard cap: 10. Higher values are faster but may use more platform resources.
costSafetyModebooleanNoKeeps strict search, crawl, and AI limits enabled. Default: true.
skipIfNoWebsiteOrSocialFoundbooleanNoReturn an uncharged skipped item if no usable source is found. Default: true.
generateAiOutreachbooleanNoRewrite outreach using OpenRouter with your own key. Default: false.
openRouterApiKeystringNoOptional secret OpenRouter API key for AI-written outreach. Leave empty for rule-based outreach.
openRouterModelstringNoOpenRouter model ID used for AI outreach. Default: openai/gpt-4o-mini.
proxyConfigurationobjectNoApify proxy settings. Used when needed for search providers or blocked websites.

Outreach profile

The Actor does not know what you sell unless you provide offerDescription.

For example, if you enter:

{
"senderName": "Yusuf Baris",
"senderCompany": "Fabri-Lab",
"offerDescription": "erp yazilimlari",
"language": "en"
}

The English outreach copy normalizes common Turkish offer terms and uses:

ERP software

If offerDescription is empty, outreach will contain {{yourOffer}} instead of inventing your business.

Example input

{
"companies": [
{
"companyName": "Ahrefs",
"website": "https://ahrefs.com",
"country": "United States"
},
{
"companyName": "Lemlist",
"country": "France"
},
{
"website": "https://www.apify.com"
}
],
"maxCompanies": 100,
"findSocialProfiles": true,
"findContactPages": true,
"findEmails": true,
"findRecentNews": true,
"generateOutreach": true,
"senderName": "Yusuf Baris",
"senderCompany": "Fabri-Lab",
"offerDescription": "erp yazilimlari",
"targetPainPoint": "manual operations and disconnected business processes",
"callToAction": "Would it make sense to send a quick example?",
"language": "en",
"maxPagesPerCompany": 5,
"maxNewsPerCompany": 3,
"maxSerpQueriesPerCompany": 2,
"generateAiOutreach": false,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Output

Each company produces one dataset item.

Successful results include:

FieldTypeDescription
inputobjectOriginal company input supplied by the user.
company.namestringNormalized company name.
company.websitestringOfficial company website URL when found.
company.domainstringNormalized domain.
company.descriptionstringExtractive description from public website content.
company.industrystringRule-based industry guess when enough signals are available.
company.countrystringCountry from input, if provided.
company.foundedYearintegerFounded year if detected from public text.
company.employeeRangestringEmployee range if available.
socialProfiles.linkedinstringPublic LinkedIn company profile URL.
socialProfiles.instagramstringPublic Instagram profile URL.
socialProfiles.facebookstringPublic Facebook profile URL.
socialProfiles.xstringPublic X / Twitter profile URL.
socialProfiles.youtubestringPublic YouTube profile URL.
socialProfiles.tiktokstringPublic TikTok profile URL.
contact.contactPagesarrayPublic contact, demo, sales, about, or related pages.
contact.emailsarrayPublic emails extracted from crawled pages.
contact.phonesarrayPhone-like public contact signals.
contact.addressstringAddress signal when detected.
recentNewsarrayRecent news or announcement results useful as outreach triggers.
websiteSignalsobjectWebsite signals such as pricing, careers, blog, docs, demo CTA, contact form, Shopify, WordPress, HubSpot.
salesIntelligence.leadScoreintegerRule-based score from 0 to 100.
salesIntelligence.leadScoreLabelstringlow, medium, or high.
salesIntelligence.painPointsarraySales-relevant signals inferred from public data.
salesIntelligence.salesAnglesarraySuggested outreach angles.
salesIntelligence.personalizedIcebreakerstringShort personalization line.
salesIntelligence.coldEmailSubjectstringSuggested cold email subject.
salesIntelligence.coldEmailstringCompany-level cold email template.
salesIntelligence.linkedinMessagestringCompany-level LinkedIn message template.
quality.confidencenumberConfidence score from 0 to 1.
quality.dataCompletenessnumberCompleteness score from 0 to 1.
quality.sourcesFoundintegerNumber of source URLs found.
quality.warningsarrayData gaps or extraction warnings.
sourcesarraySource URLs and how they were found.
metadata.scrapedAtstringISO timestamp for the enrichment.
metadata.chargedbooleanWhether the result was charged.
metadata.chargeEventstringCharge event name when charged.

Skipped results include:

FieldTypeDescription
statusstringskipped.
reasonstringWhy the item was skipped.
chargedbooleanAlways false for skipped items.

Example output

{
"input": {
"companyName": "Ahrefs",
"website": "https://ahrefs.com",
"country": "United States"
},
"company": {
"name": "Ahrefs",
"website": "https://ahrefs.com",
"domain": "ahrefs.com",
"description": "Ahrefs provides SEO tools for marketers, agencies, and businesses.",
"industry": "SEO Software",
"country": "United States",
"foundedYear": null,
"employeeRange": null
},
"socialProfiles": {
"linkedin": "https://www.linkedin.com/company/ahrefs",
"instagram": null,
"facebook": null,
"x": "https://x.com/ahrefs",
"youtube": "https://www.youtube.com/@AhrefsCom",
"tiktok": null
},
"contact": {
"contactPages": [
"https://ahrefs.com/contact"
],
"emails": [],
"phones": [],
"address": null
},
"recentNews": [
{
"title": "Ahrefs launches a new product update",
"url": "https://example.com/news/ahrefs",
"source": "example.com",
"publishedAt": "2026-05-10",
"snippet": "Ahrefs announced a new product update for marketers."
}
],
"websiteSignals": {
"hasPricingPage": true,
"hasCareersPage": true,
"hasBlog": true,
"hasDocs": true,
"hasDemoCta": false,
"hasContactForm": true,
"usesShopify": false,
"usesWordPress": false,
"usesHubSpot": false
},
"salesIntelligence": {
"leadScore": 86,
"leadScoreLabel": "high",
"painPoints": [
"Active hiring suggests growth and operational scaling needs",
"Recent news can be used as a timely outreach trigger"
],
"salesAngles": [
"Mention recent company news as an outreach trigger",
"Hiring activity suggests growth. Offer tools that save time or support scaling"
],
"personalizedIcebreaker": "Saw Ahrefs recently in the news: Ahrefs launches a new product update.",
"coldEmailSubject": "Quick idea for Ahrefs",
"coldEmail": "Hi {{firstName}},\n\nSaw Ahrefs recently in the news: Ahrefs launches a new product update.\n\nQuick context from Fabri-Lab: ERP software. Based on their hiring signal, this may be relevant for manual operations and disconnected business processes.\n\nWould it make sense to send a quick example?\n\nBest,\nYusuf Baris",
"linkedinMessage": "Hi {{firstName}}, noticed Ahrefs and Ahrefs launches a new product update. I had a quick idea related to ERP software."
},
"quality": {
"confidence": 0.91,
"dataCompleteness": 0.82,
"sourcesFound": 7,
"warnings": []
},
"sources": [
{
"type": "website",
"url": "https://ahrefs.com",
"foundBy": "input",
"confidence": 1
}
],
"metadata": {
"scrapedAt": "2026-05-18T12:00:00.000Z",
"charged": true,
"chargeEvent": "enriched_company"
}
}

Example skipped output:

{
"input": {
"companyName": "Unknown XYZ"
},
"status": "skipped",
"reason": "No official website, social profile, contact page, or usable source found.",
"charged": false,
"metadata": {
"scrapedAt": "2026-05-18T12:00:00.000Z",
"charged": false,
"chargeEvent": null
}
}

How to use

  1. Add companies in the input form, or provide a public CSV URL.
  2. Keep website URLs when you have them. This improves accuracy and reduces search work.
  3. Select which enrichment signals to find: social profiles, contact pages, emails, and recent news.
  4. If you want outreach templates, fill the Outreach profile fields.
  5. Keep cost safety limits enabled unless you need deeper research.
  6. Run the Actor.
  7. Export the dataset as JSON, CSV, Excel, XML, RSS, HTML, or use it through the Apify API.

Pricing

Launch price: $6 / 1,000 successfully enriched companies.

You are charged only for successful enriched company profiles. Empty, invalid, duplicate, skipped, or limit-skipped companies are not charged. If one enrichment step times out but the Actor can still return a usable company profile, the result may be charged and the missing step is listed in quality.warnings.

If you set a maximum run cost in Apify Run options, the platform can stop the run once that budget is reached. For example, with $0.006 per successful company, a $0.45 max cost stops at about 75 charged results.

EventPriceCharged when
enriched_company$0.006A usable enriched company profile is pushed to the dataset.

Cost safety

Default limits are intentionally conservative:

{
"maxSerpQueriesPerCompany": 2,
"maxPagesPerCompany": 5,
"maxNewsPerCompany": 3,
"maxConcurrency": 5,
"generateAiOutreach": false,
"costSafetyMode": true
}

Hard caps:

  • maxSerpQueriesPerCompany: 5
  • maxPagesPerCompany: 10
  • maxNewsPerCompany: 10
  • maxCompanies: 5000
  • maxConcurrency: 10

How lead score is calculated

The lead score is rule-based and capped from 0 to 100.

Positive signals:

  • Website found
  • Contact page found
  • Public email found
  • LinkedIn company page found
  • Other social profile found
  • Recent news found
  • Pricing, demo, or contact CTA found
  • Careers or hiring signal found
  • B2B keywords found
  • Strong description or industry confidence

Negative signals:

  • Website not found
  • Only social media found
  • Contact path missing
  • Low confidence
  • Duplicate-like result

Labels:

  • 0-39: low
  • 40-69: medium
  • 70-100: high

MCP and AI agent usage

This Actor is designed for AI agents and MCP workflows. It returns structured JSON with field descriptions, confidence scores, warnings, and source URLs so agents can use the result in lead generation, research, CRM enrichment, sales automation, and outbound workflows.

High-value dataset fields:

  • company.name
  • company.website
  • company.description
  • company.industry
  • socialProfiles.linkedin
  • contact.emails
  • contact.contactPages
  • salesIntelligence.leadScore
  • salesIntelligence.leadScoreLabel
  • salesIntelligence.salesAngles
  • salesIntelligence.coldEmail
  • quality.confidence
  • sources

Configuration

Optional environment variables:

VariableDescription
SERP_ACTOR_IDOverride the default SERP Actor. Default: apify/google-search-scraper.

AI outreach uses OpenRouter only. Add openRouterApiKey, enable generateAiOutreach, and select openRouterModel in the Actor input. If no OpenRouter key is provided, the Actor uses rule-based outreach.

Limitations

  • This Actor only uses public web pages and public search results.
  • It does not scrape private LinkedIn profiles.
  • It does not log into LinkedIn, Instagram, Facebook, X, or private websites.
  • It does not guarantee emails because many companies do not publish public email addresses.
  • Some websites may block HTTP crawling or expose limited public content.
  • Social profile matching can be less accurate for ambiguous company names.
  • Results can vary by country, language, search provider, and public source availability.
  • Outreach templates are company-level templates, not person-level emails.
  • Replace {{firstName}}, {{senderName}}, and {{yourOffer}} in your CRM or outreach tool if you leave those fields empty.
  • Optional AI outreach requires your own API key.

FAQ

Can I use only company names?

Yes. Website is optional. For best speed and accuracy, provide the company website when available.

Can I upload a CSV?

Yes. Use csvUrl with a public CSV containing companyName, website, and country columns.

Does this Actor scrape private LinkedIn profiles?

No. It only uses public search results and public web pages.

Does it guarantee emails?

No. It extracts public emails when they are available on crawled pages.

Am I charged for failed results?

No. Empty, invalid, duplicate, skipped, and limit-skipped companies are not charged. Partial successful profiles can be charged when they include usable company data.

What does the cold email say?

The Actor uses company signals for personalization and combines them with your offerDescription. If offerDescription is empty, the email keeps {{yourOffer}} instead of inventing your business.

Can I export the data?

Yes. Apify datasets can be exported as JSON, CSV, Excel, XML, RSS, HTML, or consumed through the Apify API.

Can I use proxies?

Yes. proxyConfiguration is supported.

Support

If you have questions, feature requests, or find a bug, use the Issues tab on the Apify Actor page.