Seeker
Search GitHub repositories for potential job candidates.
How It Works
- Gets all GitHub repositories with the specified minimum amount of stars for the given languages.
- Gets commit count per user for each of those repositories.
- Calculates a user's score as the sum of
log(repoStars + 1) * commitCount
over each repo.
- Calculates a user's language distribution from the repo's language information.
- Fetches user profile data.
- Filters out users that don't match location filter or don't have an email address.
- Prints a TSV table of all users, ranked by their score.
Quick Example
docker run \
-e SEEKER_GITHUB_TOKEN="YOUR-GITHUB-PERSONAL-TOKEN-HERE" \
-e SEEKER_LOCATIONS="Berlin|San Francisco" \
-e SEEKER_LANGUAGES="Ruby|Go" \
-e SEEKER_REPO_MIN_STARS="20000" \
dziemba/seeker \
> candidates.tsv
This examples looks for Ruby and Go developers in Berlin and San Francisco.
It only considers repositories with more than 20k stars.
This is fast, but excludes a lot of data.
You probably want to set this to a much lower number later on.
The output is a TSV list of user data, printed to STDOUT. Logging information is printed to STDERR.
The format is as follows:
Username |
Full Name |
Score |
Language Distribution |
Location |
Company |
Email |
Hireable? |
foobar |
Foot Bart |
23534 |
70% Go, 20% Ruby, 10% C |
Berlin |
Initech |
foo@example.com |
true |
Usage
Set the following environment variables to specify the configuration.
Environment Variable |
Description |
Example Value |
SEEKER_GITHUB_TOKEN |
A GitHub Personal Access Token |
|
SEEKER_LOCATIONS |
Location filter, separated by ` |
` |
SEEKER_LANGUAGES |
Desired programming languages, separated by ` |
` |
SEEKER_REPO_MIN_STARS |
Minimum repo star count |
20 |
Then run the executable or use the docker image dziemba/seeker
.
Installing
Make sure you have an up-to-date version of
Go and Glide installed.
Run make deps
to install library dependencies. Run make build
to build the executable.
See Makefile for more commands.
Disclaimer
This tool does not send emails or contacts developers in any other way. It only outputs a list of
publicly accessible user data from GitHub. Please use this tool responsibly and do not spam
everybody!
Contributing
Feel free to fork and submit Pull Requests!
License
MIT, see LICENSE.txt