Find out which people in your LinkedIn network code.
Upload your LinkedIn connections file, and this tool searches GitHub to find which of your professional contacts are active developers. It shows you what languages they use, what they've been working on, and whether they maintain any code your projects depend on.
Everything runs in your browser.
Try it: dvelton.github.io/who-codes
- Your LinkedIn connections file (a CSV file you download from LinkedIn)
- A GitHub account (optional but recommended, for faster results)
That's it. No installation, no sign-up, no payment.
- Go to linkedin.com and log in
- Click your profile picture (top right), then Settings & Privacy
- Click Data privacy in the left sidebar
- Click Download your data
- Check Connections and click Request archive
- LinkedIn emails you when it's ready (usually a few minutes)
- Download the file -- it will be called something like
Connections.csv
For a more detailed walkthrough, see the export guide.
A token lets the tool run faster. Without one, you're limited to 60 searches per hour. With one, you get 5,000. The token only needs access to public data that anyone can already see.
- Go to github.com/settings/tokens
- Click Generate new token, then Generate new token (classic)
- Name it something like "who-codes"
- Don't check any boxes under "Select scopes" -- leave them all unchecked
- Click Generate token
- Copy the token (it starts with
ghp_) - Paste it into who-codes when prompted
The token is stored in your current browser tab.
- Open dvelton.github.io/who-codes
- Drop your
Connections.csvfile onto the upload area - Optionally paste your GitHub token for faster results
- Wait while the tool searches GitHub for your connections
- Review the matches it found
- Explore the insights dashboard
The search takes about 2 seconds per connection. For a network of 500 people, that's roughly 17 minutes with a token, or several hours without one. You can pause and resume at any time; your progress is saved in your browser.
-
Match confidence levels: Each match is scored as High, Medium, or Needs Review based on how closely the GitHub profile matches your LinkedIn connection (name, company, bio, location).
-
Language clusters: What programming languages your network uses most.
-
Activity status: Who's been active on GitHub recently, who's been quiet, and who hasn't pushed code in months.
-
Dependency overlaps: If you upload a
package.json,go.mod, or similar file, the tool will tell you which connections maintain packages your projects depend on. -
A full table of all matched connections with links to their GitHub profiles.
You can export everything as a CSV or JSON file.
- Your LinkedIn CSV is parsed in your browser.
- Your GitHub token (if you use one) is stored in your browser tab's session storage.
- The complete source code is in this repository. You can read every line.
"This file is missing required columns" Make sure you're uploading the Connections CSV from LinkedIn, not a ZIP file or a different export. The file should have columns like "First Name", "Last Name", and "Company".
"Rate limit reached" GitHub limits how many searches you can do per hour. The tool will automatically pause and show a countdown timer. If you add a GitHub token, the limit goes from 60/hour to 5,000/hour.
"Token didn't work"
Double-check that you copied the full token (it starts with ghp_). Make
sure there are no extra spaces. Try generating a new one.
Matching seems slow Each connection requires a search query plus lookups for potential matches. With a token, it runs at about 2 seconds per connection. Without a token, it's much slower because of the tight rate limit.
I closed the tab mid-run Your progress is saved in your browser's local storage. When you come back, the tool will offer to pick up where you left off.
For each LinkedIn connection, the tool:
- Searches GitHub for users with a matching full name
- Looks at each candidate's company, bio, and location
- Scores the match on a 0-100 scale based on how many signals align
- Classifies the result as High confidence (strong match on multiple signals), Medium (one signal beyond name), or Low (name only)
- Only shows you High and Medium matches by default
The scoring is transparent. For every match, you can see exactly why it was matched and what signals contributed to the score.
- Vanilla HTML, CSS, and JavaScript (no framework, no build step)
- Papa Parse for CSV parsing
- GitHub REST and GraphQL APIs for data
- Hosted on GitHub Pages
MIT