If you Google “recruit on GitHub,” you will find more than ten blogs/articles/videos for this topic. I almost gave up writing something for this topic, but Dean Da Costa changed my mind. He’s a crazy geek in our community who is the so-called “search authority.” He encouraged me to dig into something deeper so that more technical recruiters can start using GitHub.
First of all, I am a GitHub user and a contributor as well (see my contributions in 2015). I consider myself to be very familiar with GitHub. I will share my experience of exploring and sourcing GitHub talent as a recruiter, instead of as a developer.
I read through a lot of resources. It seems like no one ever told me anything more than how to search users or how to interpret user profiles. Searching users and understanding profiles are useful for sure, but the advice is short when it comes to GitHub sourcing. In that context, GitHub can be much more powerful than expected.
Who’s on GitHub
There’s a lack of full understanding of who’s on GitHub in our community. Generally speaking, you’d think that only software developers are on GitHub, but that’s not true. As a community, we need to have a better understanding of the user base on GitHub. GitHub has two types of users: developers (personal accounts) and organizations (corporate/business/associate accounts). One organization may have multiple developers, but a developer is not necessarily in any organization.
The core object on GitHub is the repository, or “repo” for short. The official definition of a “repository” is “a digital directory or storage space where you can access your project, its files, and all the versions of its files that Git saves.” Lost? No worries. To recruiters, a repository is just a “source code project.” Developers on GitHub contribute to repositories. The repository can be owned by an individual developer or an organization. Picture 2 illustrates the design logic of GitHub.
Picture 2: Relationship between the developer, organization, and repository.
As you can see, we need to deal with three entities on GitHub to fully explore GitHub sourcing: the “developer,” “organization,” and “repository.” It’s much more than just the “developer” as all the presented resources showed. Let’s dig into sourcing talent through repositories and organizations.
Source developers through repository search
From a repository, you can find a group of developers who’re good at a certain skillset and have certain project experience. To me, it’s a much more efficient way to source talent when searching users and comparing them directly. GitHub provides fine granularity searching for its repositories. You can specify keywords, programming languages, popularity, dates, etc.
Let’s do it step by step:
- If you want to specify keywords of the repository description
A real example: “big data” in:name,description. We specify that “big data” should be in the repository description. Make sure that there’s NO space in this string of “in:name,description”. Don’t put too long keywords. Actually, big+data in:name,description also works.
- If you want to specify programming languages
- If you want to specify the number of stars
A real example: stars:5..10. It means the repository has 5 to 10 followers. If you don’t want to specify lower_bound, the string will be stars:<10; if you don’t want to specify upper_bound, the string will be stars:>5.
- If you want to specify the number of forks
Follow the same rules as specifying the number of stars.
- If you want to specify the creation date
A real example: created:2015-01-01..2016-11-01. It includes all repositories whose creation date is after 2015-01-01 but before 2016-11-01. If you just want to emphasize “after 2015-01-01” only, the string will be created:>2015-01-01.
- If you want to specify the latest commit date
Follow the same rules as specifying the creation date.
Here’s a real example that combines all of them together.
big+data in:name,description language:Java language:Python stars:>10 forks:>5 created:2015-01-01..2016-11-01 pushed:>2016-01-01
This search string is finding all repositories that have “big data” in their description, a program with Python as the language, have more than 10 stars and more than 5 forks, are created during the period of 2015-01-01 and 2016-11-01, have the latest commit pushed after 2016-01-01. You should see results as shown.
The search result for the search string of big+data in:name,description language:Java language:Python stars:>10 forks:>5 created:2015-01-01..2016-11-01 pushed:>2016-01-01
Click any of the results to access an individual repository’s page. On the page, read the description of the repository first to see if the project is related to the job description we have. You will see “12 contributors” on the page.
Click to access the list of developers. You will find their commits and activity history. Click any list item and you will be redirected to an individual developer profile.
Source developers through organization search
We reach out to developers from Google, Facebook, Twitter, and LinkedIn a lot through LinkedIn Recruiter. But it’s best to move away from the noisy channels where all the other recruiters are always on, to GitHub where you can get closer to developers. I want to show you another good way to search developers on GitHub. Go to the Google GitHub profile, and find all people there.
Let’s do it step by step:
- Type org:google to the search textbox. Click the “Search” button. By default, GitHub shows repository results. Click “Users” on the left-side navigation bar.
- Click the result. And then click the “People” tab. You will see all the Google developers on GitHub.
Your sourcing can successfully start with this list now. Use some tools recommended in the SourceCon community to find their emails and coding performance assessment. If you still have problems, try Hiretual. For this article, I wanted to focus on searching functions. There are more secrets waiting for us to discover on GitHub. If you also want to share your experience on GitHub sourcing, please give your comments or contact me.