Guest post from Julia Tverskaya.
Are you a Technical Recruiter? Are you looking for Software Developers?
On January 16th, Irina announced a new GitHub search and export tool in her LinkedIn article. We are happy to report that the tool has immediately attracted hundreds of users and we hope many more will discover its value.
The GitHub User Search tool empowers sourcers to find, export, and contact GitHub users. Our email search is optimized to be as precise as possible. You can find and export up to 1,000 results in each run. At this time, we do not require a login. There is nothing comparable available in the industry.
However, using the tool efficiently requires a solid grasp of GitHub’s search, including its peculiarities and constraints. Although the tool’s help page provides guidance, errors still happen.
Let’s look at the most common mistakes to help you improve your searches.
Qualifiers (GitHub search operators) are your friends!
GitHub search distinguishes between searching users’ general information, such as their names and bios, and searching within special fields. Keywords are used to search in general information; reserved words called “qualifiers” are used to search in fields. These fields include a user’s primary language and their location, parameters Sourcers are interested in.
Not using qualifiers, or using them incorrectly, leads to getting poor results – or in some cases, not getting any results. Here’s how to use the qualifiers correctly.
Searching for location
Use qualifier location:
This qualifier directs the search to exclusively examine the location field in users’ profiles. Without this qualifier, any geographical term used in your search query is treated as a general keyword. Consequently, the GitHub search engine would only scan through keyword-searchable fields like usernames and bios.
Let’s say we are looking for users with experience in AI who live in Prague.
This search: AI location:Prague specifically targets users who have indicated Prague in their location field. It returns 89 results.
Compare it with AI Prague which returns only 20 (the ones where “Prague” is used in the users’ bios).
Searching for two locations or different spellings of the same location?
Use qualifier location: twice, e.g.: AI location:Prague location:Praha searches for users with AI who spell their location as either “Prague” or “Praha”.
Searching for a programming language
Use qualifier language:
This qualifier allows you to refine your search for GitHub users by their primary programming language. For example, to find users proficient in C++, use: language:C++
Compare these two searches looking for users who live in Latvia and whose primary language is JavaScript:
location:latvia language:javascript returns 619 results.
location:latvia javascript returns 49 results – all people who mention JavaScript in their bios. Not only did we get fewer results, we cannot be sure that JavaScript is indeed their primary language.
Searching for different languages?
Use the language: qualifier twice. E.g, to find people in Latvia whose primary language is either C++ or Python: location:latvia language:c++ language:python
Using Boolean operators in GitHub searches
While the Boolean operators AND, OR, and NOT are fundamental in many search contexts, their application in GitHub searches comes with specific considerations.
GitHub’s search engine is designed to interpret only simple boolean expressions. Parentheses do not work (the search will not return any results). Combining operators AND and OR in a single query often leads to unexpected results, and we do not recommend it.
- Boolean with qualifiers is restricted
The words “AND”, “OR”, and “NOT” can only be used with keywords and in: qualifiers (in:email, in:name, in:login). You cannot use them with other qualifiers. AND and OR are always implied, and NOT is expressed as a minus sign.
For example, “java developer” AND location:barcelona does not return results because the qualifier location: cannot be used with the operator AND. Omit AND to get the desired result: “java developer” location:barcelona (remember, AND is implied).
Do you remember how we looked for people whose primary language is either C++ or Python? language:c++ language:python (OR is implied). language:c++ OR language:python does not work.
The operator NOT is always expressed as a minus sign when used with qualifiers, e.g. location:”estonia” -location:”Tallinn” returns people who live in Estonia but not in Tallinn.
Because we cannot use AND and OR with qualifiers, some searches are simply not possible. For example, we cannot search for users whose primary language is Java and who also mention Java in their bios. language:java AND java returns an error (and omitting AND is interpreted as OR by the Github internal algorithms).
Our help page contains additional details and examples of Boolean search.
Final notes:
- Boolean operators are always capitalized: AND, OR, NOT
- There is no white space between the minus sign and a search term, e.g. -language:javascript
- Qualifiers are always lowercase: location:, user:, fullname:, etc.
- There is no white space between most qualifiers and the search term, e.g.language:java, location:london, etc.
- Do not forget about the colon after qualifiers, e.g. repos:, followers:, etc.
Do you want to learn more?
Sign up for our three-day tech sourcing bootcamp for an in-depth discussion https://sourcingcertification.com/course/three-day-tech-sourcing-bootcamp-january-2024