X/Twitter Lead Email Finder
Pricing
$19.99/month + usage
X/Twitter Lead Email Finder
Find and extract business emails from X/Twitter profiles using handles, profile URLs, or keywords. Build targeted lead lists with profile details, websites, follower data, and contact emails for sales prospecting, outreach, recruitment, and B2B lead generation.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
Scraper Engine
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
15 hours ago
Last modified
Categories
Share
๐ฆ X/Twitter Lead Email Finder
Find public email addresses on X (Twitter) โ search by keyword, filter by email domain and location, and get every lead scored, deduplicated, and MX-verified automatically. Built on a Google-search extraction pipeline (no X API key needed).
๐ Why Choose This Actor?
- ๐งฎ Confidence scoring โ every lead gets a 0-100 score from result type (profile vs. tweet), contact-intent phrasing, local-part quality, domain-filter match, MX validity, and cross-keyword corroboration
- ๐ Real cross-keyword deduplication โ the same email found under two different keyword searches is merged into one row instead of duplicated, and the corroboration itself boosts confidence
- ๐ฌ MX domain verification โ every discovered email's domain gets a cached, per-run MX-record check
- ๐งฉ Result-type + handle extraction โ every lead is tagged
profileortweetand gets a cleanhandlefield, so you don't have to parse URLs yourself - ๐ฌ Contact-intent detection โ flags leads whose bio/tweet text explicitly invites contact ("DM for collabs", "business inquiries:", "email me")
- ๐ Keyword + location + domain targeting โ narrow results to a niche, a city/region, and specific email providers or business domains
โจ Key Features
- ๐ Multi-keyword search โ process as many search terms as you like in one run
- ๐ง Domain filtering โ keep only Gmail/Outlook/Yahoo/etc., or your own business domain
- ๐งฉ
resultTypeFilterโ keep only profile-bio leads, only tweet mentions, or both - โ
minConfidenceScoreโ automatically drop low-quality matches - ๐ฌ
verifyEmailDomainsโ MX-record validation, cached per domain per run - ๐ Location targeting โ narrow to a city/region
- ๐ Run analytics โ a
RUN_SUMMARYwritten to the key-value store every run
๐ฅ Input Configuration
{"searchKeywords": ["marketing", "photographer"],"targetPlatform": "Twitter","locationFilter": "London","emailDomainFilter": ["@gmail.com"],"maxEmailsPerKeyword": 15,"resultTypeFilter": [],"minConfidenceScore": 40,"verifyEmailDomains": true,"scraperEngine": "legacy","proxyConfig": { "useApifyProxy": true }}
| Field | Type | Description |
|---|---|---|
searchKeywords | array | ๐ Keywords to search for (required) |
targetPlatform | string | ๐ Target site (currently Twitter) |
locationFilter | string | ๐ Optional city/region filter |
emailDomainFilter | array | ๐ง Keep only emails from these domains (e.g. @gmail.com); empty = all domains |
maxEmailsPerKeyword | integer | ๐ Raw hits to collect per keyword before cross-keyword dedup (default 10) |
resultTypeFilter | array | ๐งฉ Keep only profile and/or tweet results; empty = both |
minConfidenceScore | integer | โ Drop leads below this 0-100 confidence score |
verifyEmailDomains | boolean | ๐ฌ Run an MX lookup per discovered domain (default true) |
scraperEngine | string | โ๏ธ Extraction engine (currently legacy) |
proxyConfig | object | ๐ก๏ธ Proxy config; leave empty for the auto-selected default |
๐ค Output Format
{"emailAddress": "jane.doe@gmail.com","domain": "gmail.com","hasValidMxRecords": true,"confidenceScore": 83,"handle": "janedoephoto","resultType": "profile","contactIntentDetected": true,"crossKeywordMatchCount": 1,"matchedKeywords": ["photographer"],"sourcePlatform": "x.com","resultTitle": "Jane Doe Photography (@janedoephoto) / X","snippetText": "๐ธ Wedding & portrait photographer. Bookings: jane.doe@gmail.com","sourceUrl": "https://x.com/janedoephoto","matchedLocation": ""}
| Field | Description |
|---|---|
emailAddress | โ The discovered email address |
domain | ๐ Email domain, used for MX verification and scoring |
hasValidMxRecords | ๐ฌ Whether domain has valid MX records (null if verifyEmailDomains is off) |
confidenceScore | ๐งฎ 0-100 score โ see scoring breakdown below |
handle | ๐ค New. The X/Twitter @handle, parsed from the URL or (when Google's link is undecodable โ see note below) recovered from the visible card text |
resultType | ๐งฉ New. profile (bio page) or tweet (a specific post) |
contactIntentDetected | ๐ฌ New. True if the title/snippet uses contact-inviting phrasing |
crossKeywordMatchCount / matchedKeywords | ๐ New. How many, and which, of your search keywords surfaced this same email |
sourcePlatform | ๐ Resolved platform domain (x.com) |
resultTitle / snippetText | ๐ Google's result title and snippet |
sourceUrl | ๐ Link to the profile or tweet (see note below on when this is a Google redirect link) |
matchedLocation | ๐ The location filter used, if any |
A RUN_SUMMARY object is written to the key-value store at the end of every run: totalEmailsCollected, skippedLowConfidence, skippedByResultTypeFilter, uniqueDomains, domainsWithValidMx/domainsWithInvalidMx, resultTypeBreakdown, avgConfidenceScore.
๐งฎ How confidence scoring works
base score = 60 (profile) or 40 (tweet)+ local-part bonus = +10 role-style (info@, press@) ยท +6 structured (jane.doe@) ยท +0 plain+ contact intent = +15 if the text says "DM for collabs", "business inquiries:", "email me", etc.+ domain filter = +10 if you set emailDomainFilter and it matched+ MX record = +8 valid ยท โ20 invalid ยท +0 not checked+ cross-keyword = +5 per extra keyword that also found this email, capped at +15= clamped to 0-100
๐ฌ Honest notes on real search behavior (verified live)
- A broad keyword with no domain filter can legitimately return 0 emails. Emails are relatively rare inside Google's truncated snippets โ a live test on
"marketing agency"with no domain filter returned 18 real matching profiles/tweets but 0 with a visible email in the snippet. Add anemailDomainFilterentry (e.g.@gmail.com, or your own business domain) to sharply narrow the search toward pages that actually contain an email โ a live test on"photographer"+@gmail.comfound 3 verified leads immediately. sourceUrlis sometimes a Google redirect link, not the raw profile/tweet URL. Google increasingly serves an opaque/goto?url=...redirect token for these results that cannot be decoded back to the real destination (verified live โ this affected 100% of results in a recent sample and, unfixed, would silently drop every result; this actor's extraction now handles it). The link still resolves to the right page when opened, but when it happens,resultTypedefaults toprofile(it can't be determined from an undecodable URL) andhandlefalls back to any@handlemention visible in the snippet text โ which is not always present.
โ ๏ธ Legal & Ethical Notice
- This actor only collects data from publicly available Google search results
- Only emails that appear in public X/Twitter posts or bios are collected
- Users are responsible for compliance with GDPR, CAN-SPAM, CCPA, and applicable laws
- Do not use collected emails for spam or unsolicited bulk messaging
โ Frequently Asked Questions
Q: Does this need an X/Twitter account or API key? A: No โ it searches Google for public X/Twitter content.
Q: Why did my run return 0 emails?
A: Broad keywords without a domain filter often have a low email-in-snippet rate. Add emailDomainFilter entries and/or more specific keywords.
Q: What's the difference between profile and tweet results?
A: profile results are bio pages โ durable, intentional contact info. tweet results are a specific post that happened to mention an email โ a one-off, weaker signal, reflected in the lower base confidence score.
Q: Do I need Apify proxies?
A: Leave proxyConfig empty and the actor auto-selects the Google-search proxy tier; recommended for reliability.
๐ Support & Feedback
- ๐ Report issues in the Issues tab
- ๐ก Custom features: dev.scraperengine@gmail.com
- โญ If this actor saves you time, please leave a review!