Skip to content

De-Anonymization

GitHub De-Anonymization

Start free — 50 credits, no card Try the free lookup →

A GitHub handle in, a verified LinkedIn identity out · 2 credits per match · charged only on a match, never on a miss

What de-anonymization actually means here

A GitHub handle is a pseudonym. @torvalds is a person, but the profile alone won’t tell your sales team where that person works, what they do there, or how to reach them. Every star, fork, pull request and issue on your repo is a buying signal attached to a pseudonym.

De-anonymization is the step that turns the pseudonym into a professional identity you can act on: LinkedIn profile, employer, role signal, and — on a paid plan — a verified work email.

The hard part isn’t finding a profile. It is proving the profile belongs to the same human.

Multi-stage identity validation, not name matching

Most enrichment APIs run a name lookup against a database and return the best string match. That produces a profile that fits. It doesn’t produce a profile that is confirmed.

LeadCognition runs a pipeline that actively confirms:

Signal extraction — Everything the public GitHub profile exposes: handle structure, display name, bio text, company field, location, linked URLs, social accounts, README self-descriptions, commit-email patterns, language stack, and the shape of the contribution graph.

Candidate resolution — Extracted signals are cross-referenced to surface LinkedIn candidates. Signals are weighted by how much they actually prove: a company field beats a location; a commit-email pattern beats bio prose; a self-linked social account beats an inferred name.

Identity confirmation — Each candidate is validated against career trajectory, professional context, and industry signals. Does this person’s professional history make sense alongside this commit history? Does their stated industry match the technology they write?

Threshold gate — Below the confidence threshold, no result is returned and nothing is charged. We deliberately miss resolvable identities rather than return a guess.

Same-name collisions are engineered out

This is the failure mode that makes naive enrichment unusable for developer GTM.

Take a handle like @alexjohnson. String matching happily returns “Alex Johnson — Personal Injury Attorney.” Your SDR now emails a lawyer about your Kubernetes operator. That’s worse than sending nothing: it burns a domain, it burns a rep’s afternoon, and it is the kind of mistake a prospect screenshots.

Career trajectory and industry-signal validation catches it. A personal injury attorney doesn’t have a TypeScript-heavy commit history. A staff engineer at a fintech doesn’t have a decade of political consulting on LinkedIn. Developer, politician, lawyer, journalist — a shared name isn’t a shared identity, and the pipeline treats it that way before a match is ever returned.

It’s also why the match rate isn’t 100%, and why we’d rather it wasn’t. Every candidate the gate throws away is a handle we could have billed you for and didn’t.

Pricing

What you sendWhat you getCredits
GitHub handleVerified LinkedIn profile + name + company2
GitHub handle + a work email you already haveSame, resolved via the email→name path3
Any of the above, with the dossier toggle onAdds a full developer dossier+1
Anything that fails the confidence gateNothing returned0

The work email is an input, not an output — supplying one you already hold gives the resolver a premium identity signal and unlocks an extra resolution path. Returning a verified work email is a separate enrichment step and requires a paid plan; the free tier resolves LinkedIn, name and company.

The dossier is charged on delivery even when no LinkedIn is found, because it is built from public GitHub data and is always deliverable. Resolution itself is charged only on a match.

See full pricing →

Four ways to run it

Single — Paste one handle, optionally add a work email, get a result. The fastest way to sanity-check precision on people you already know.

Bulk upload — Hand it a stargazer export or a contributor list and resolve the whole set. Three years of accumulated GitHub signal becomes a prioritized outbound queue.

Dossier — Skip the LinkedIn resolve entirely and pull a deep developer dossier from the handle alone, for 1 credit.

API — Wire it into your own pipeline, CRM, or enrichment stack.

API

Authenticate with a bearer token. Any organization admin or owner can mint an API key from the dashboard — no paid plan required to get one, so your 50 free credits are spendable through the API on day one.

curl -X POST https://app.leadcognition.io/api/v1/deanon \
  -H "Authorization: Bearer $LEADCOGNITION_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"githubUser": "torvalds", "includeDossier": false}'
{
  "github_user": "torvalds",
  "linkedin_url": "https://www.linkedin.com/in/...",
  "status": "found",
  "deanon_version": "...",
  "credits_charged": 2,
  "credits_remaining": 48
}

status is found or not_found. A returned linkedin_url is a match we stand behind; not_found costs nothing. Set includeDossier: true to attach a full dossier to the same call for +1 credit.

Batch up to 50 handles in one request:

curl -X POST https://app.leadcognition.io/api/v1/deanon/batch \
  -H "Authorization: Bearer $LEADCOGNITION_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"githubUsers": ["torvalds", "gaearon"], "includeDossier": true}'

Full API reference →

Where teams point it

Signal to contact — Every new star or fork triggers a resolve, and an enriched contact lands in the CRM without anyone opening a browser tab.

Stargazer backfill — Historical stargazers are the cheapest pipeline most DevTool companies own and the one nobody works, because a list of handles is not a list of people.

Contributor and ecosystem mapping — Find out who is building in your category, at which companies, before they ever fill in a form.

ICP filtering before outreach — Resolve first, score against company size, industry and seniority, and only then decide whether anyone gets an email.

Frequently Asked Questions

What is the match rate?

It depends almost entirely on how much the profile exposes, so a site-wide average would tell you very little about your own list. What’s fixed is the commercial shape: a miss costs nothing, so the only number that matters is the one your own handles produce. The 50 free credits exist to let you measure that before you spend anything.

How is this different from a people-search or reverse-lookup tool?

Those start from a name or an email and retrieve background data. This starts from a GitHub handle, which is the signal a developer-led GTM motion actually has. The pipeline is built around developer identity signals — commit patterns, language stack, contribution shape — that a general consumer-data tool has no access to and no use for.

Does it work on private accounts or accounts with a hidden email?

Resolution reads public GitHub data only: public profiles, public repositories, public commit history. It doesn’t require the developer to expose an email — only about 15% do, which is exactly why email-scraping approaches stall out.

What happens when it is wrong?

The threshold gate is the primary defence — a below-threshold candidate is never returned and never charged. It isn’t perfect. Same-name collisions are the failure mode the pipeline is built around, and the ones that survive it are the cases we most want to see. Tell us about a wrong match and we’ll refund the credits and use it to tune the resolver.

Is this GDPR compliant?

Resolved data comes from publicly available professional sources and permissible enrichment databases. The privacy policy has the full detail, and anyone who wants their data out can say so on the opt-out page without contacting us first.

Can I try it before paying?

Yes. 50 credits on signup, no credit card — enough for 25 resolves, or 50 dossiers, or any mix. API keys are available on the free tier, so you can integrate and evaluate before you spend anything. There’s also a free single-handle lookup tool with no signup at all.

Start free — 50 credits, no card Read how the resolver works →

See the developers already evaluating you

Free tier, no credit card. 50 trial credits included.