Editor’s note: This was #1 on the Best of 2014 list.
GitHub can be a powerful tool for sourcing software engineering talent. For the uninitiated, GitHub is a software project hosting service on which software engineers create a profile, host their code, or contribute to other projects. GitHub profiles often include an email address, twitter handle, and/or link to a personal website. Due to this, and as previously posted on SourceCon, even a simple site: search on GitHub’s domain produces some serious results. However, some of the best profiles simply have no contact information aside from a (hopefully) real name and a GitHub username.
Traditionally, you may cross reference a GitHub profile with LinkedIn, run the username through namechk and see where else they hangout, or even try to deduce an email address with the Rapportive plugin. You may even go so far as to hunt them down on OKCupid. As it turns out, you can get almost any GitHub user’s email address directly through GitHub’s own API from the comfort of your own browser in five simple steps.
1. Copy and paste the next line into your browser (feel free to bookmark it):
https://api.github.com/users/xxxxxxx/events/public
2. Find the GitHub username for which you want the email:
3. Replace the xxxxxxx in the URL with the person’s GitHub username.
4. Hit Enter.
5. Press Ctrl+F and search for “email”.
According to GitHub, this information is publicly available. However, you would likely only see it if you were an Engineer committing code to your candidate’s public repository through the Git system. In essence, this works by calling up said public information through GitHub’s API in your browser.
While this method works for the vast majority of usernames, there are a few who have opted not to store their personal email address on their public repositories. However, of the many usernames used in testing this method, I only ran into 3 that were masked.
On a side note, if the user has a popular public repository you may return multiple email addresses belonging to the various contributors to the repository. You can clear through these by searching for the name on the account (such as “Fredrik”) instead of “email”. Although on second thought, you may wish to engage the other contributors as well.
Special thanks to @RStrandid, @MarkNexus, and @Panhawk