MCP server: One MCP server.

LinkedIn Profile Finder - Email to LinkedIn URL Lookup

@anshumanatreyMCP server · External

LinkedIn Profile Finder - Email to LinkedIn URL Lookup

Recruitingv0.2.5MITPython
Freeno charge per call

One address for any MCP client. Your key stays in your Odel vault.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

What it asks for at sign-in

Access toReadChange
Full api accessNot stated: full_api_access

From the sign-in at console-backend.apify.com, as the endpoint publishes it. You approve it there.

Tools

None listed · checked 12 Oct 2026

Odel could not list its tools without signing in.

Try it in the Inspector
README5 min read

LinkedIn Profile Finder - Email to LinkedIn URL

Turn an email address into the person's public LinkedIn profile, with a confidence score on every match. Paste one email or a whole list and get back a clean table of LinkedIn URLs for your CRM, outreach or recruiting pipeline. No LinkedIn login, no cookies, nothing tied to your account.

Available as an Apify Actor. $0.005 per email checked plus $0.02 per confident match. Works with no API keys; free Brave Search and Groq keys widen coverage.

What you get

  • Email in, best-match LinkedIn URL out, with a 0 to 100% confidence score on every row so you know which matches to trust.
  • Bulk or one-off. A single address or thousands, one result row each.
  • Pay for results. Half a cent per email checked; the match fee applies only when a URL clears your confidence gate.
  • Public information only. GitHub commit authors, Gravatar, PGP keyservers and handle probes on 8 platforms. No data broker, no private database.
  • Account-safe. It never logs into LinkedIn or touches your session, so there is nothing to get flagged.

Who it's for

  • Sales and growth: enrich inbound leads and sign-ups with the right LinkedIn profile before you reach out.
  • Recruiting: turn a list of candidate emails into LinkedIn profiles.
  • RevOps / CRM: clean, verify and backfill contact records at scale.
  • Founders and operators: see who actually emailed you.

How to use it

  1. Paste a single email, or a list of emails. The form comes prefilled with two demo addresses; replace them with yours.
  2. Leave Check public profiles on. It recovers the name and a cross-platform handle, which is what resolves a URL without a search key.
  3. Pick a matching mode. Balanced is the default and works for most lists.
  4. Optional: add your free Brave Search and Groq keys for web-search corroboration and AI name-splitting.
  5. Hit Start. Results appear in the dataset, one row per email.

Matching modes

ModeBest for
No AIFastest and free. Accepts only the clear, unambiguous matches.
Balanced (recommended)The default. Spends extra effort only on the uncertain matches.
Full AIHighest match rate. Works hardest on every email. Needs a Groq key.

What does the output look like?

This is the real dataset from a run on 2026-09-12 (build 0.1.5, no API keys, default settings). Six emails, 25 seconds, 1 GB of memory.

EmailFoundLinkedIn URLConfidenceConfidentNameName fromEvidence
anshumanatrey@gmail.comyeslinkedin.com/in/anshumanatrey97%yesAnshuman AtreyGitHub commithandle confirmed on 4 platforms
satya.nadella@microsoft.comyeslinkedin.com/in/satyanadella78%noSatya Nadellaaddresshandle confirmed on 4 platforms
jensen.huang@nvidia.comyeslinkedin.com/in/jensenhuang78%noJensen Huangaddresshandle confirmed on 6 platforms
tim.cook@apple.comyeslinkedin.com/in/timcook78%noTim Cookaddresshandle confirmed on 3 platforms
sayujpillai63@gmail.comyeslinkedin.com/in/sayuj6364%noSayuj PillaiGitHub commithandle confirmed on 1 platform
info@stripe.comno0%norole mailbox, no candidate

Confident means the row cleared the 80% gate. Those are the only rows that carry the match fee. Rows between 50% and 79% are possible matches, returned free with their score, for you to verify before use.

One row as JSON (the signals block is what the scorer saw):

json
{
  "email": "anshumanatrey@gmail.com",
  "found": true,
  "linkedin_url": "https://www.linkedin.com/in/anshumanatrey",
  "confidence": 0.97,
  "passes_gate": true,
  "gate_threshold": 0.8,
  "derived_name": "Anshuman Atrey",
  "name_source": "github_commit",
  "source": "handle_pivot",
  "evidence": "handle 'anshumanatrey' confirmed on 4 platform(s) -> likely LinkedIn slug",
  "signals": {
    "names": [{"value": "Anshuman Atrey", "source": "github_commit"}],
    "handles": ["anshumanatrey"],
    "confirmed_socials": ["GitHub: https://github.com/anshumanatrey", "YouTube: https://www.youtube.com/@anshumanatrey", "Telegram: https://t.me/anshumanatrey"]
  }
}

What does it cost?

Pay per event. Platform compute is included in the prices.

EventPriceWhen it is charged
Run start$0.01Once per run
Email checked$0.005Once per email, found or not
Confident match$0.02Only when a URL clears your confidence gate (80% by default)

Typical jobs:

JobCost
The 6-email run above (1 confident match)$0.06
1 email, confident match$0.035
100 emails, 30 confident matches$1.11
1,000 emails, 250 confident matches$10.01

The 6-email run used 0.0069 compute units at the 1 GB default, about 4 seconds per email.

How good are the matches?

Measured on the run above: 5 of 6 addresses resolved to a URL, 1 above the gate, and the role mailbox was correctly skipped.

  • Work emails (first.last@company.com) give the name from the address itself. The handle probes then look for that name as a handle across GitHub, GitLab, dev.to, npm, Gravatar, Linktree, About.me, YouTube and Telegram. Three or more hits put the match at 78%.
  • Personal addresses resolve when the person has a public developer or social footprint. A GitHub commit author name or a Gravatar display name is authoritative and lifts confidence to the high 90s.
  • Over the gate. A confident match needs a name from an authoritative source plus a handle that is consistent across platforms. A free Brave Search key adds a web-search check on each candidate, the designed way to lift 78% matches over the gate.
  • Not found is a clean not found, never a confident guess. Role mailboxes (info@, support@, sales@) are skipped rather than probed.

Good to know

  • Speed: about 4 seconds per email at the 1 GB default; a 100-email list finishes in about 7 minutes.
  • Works on public information only. No private database, no broker-sourced contact data.
  • LinkedIn login-walls its pages, so a URL is a strong lead confirmed by cross-platform evidence, not a fetched profile. Turn on Scrape the matched profile with a Bright Data key if you need the full profile.
  • You stay in control. Set the confidence bar, choose how much AI to use, bring your own keys.

Sibling actors

ActorUse case
holehe-email-osintEmail -> registered accounts across 120+ platforms
domain-history-contact-osintDomain -> previous owner, WHOIS history, archived contacts with source URLs
theharvester-osintDomain -> emails, subdomains and IPs from 54+ public sources

Run it yourself (open source)

The actor is open source under the MIT license. To run it from the command line with your own keys:

bash
git clone https://github.com/AnshumanAtrey/linkedin-harvester.git
cd linkedin-harvester
pip3 install -r requirements.txt

GROQ_API_KEY=your_groq_key BRAVE_API_KEY=your_brave_key \
  python3 -m harvester.find "satya.nadella@microsoft.com"

Free keys: Groq at console.groq.com/keys, Brave at brave.com/search/api

Use responsibly

Built for legitimate sales, recruiting, research and verification. Follow the privacy laws that apply to you (GDPR, CCPA and local equivalents) and honor opt-out and do-not-contact requests.

License

MIT, see LICENSE.

Last updated

2026-09-12 (version 0.1.5)

Similar modules

Browse Recruiting