Search GitHub repositories for potential job candidates.
- 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.
docker run \
-e PEAKS_GITHUB_TOKENS="YOUR-GITHUB-PERSONAL-TOKEN-HERE1,YOUR-GITHUB-PERSONAL-TOKEN-HERE2" \
-e PEAKS_LOCATIONS="lyon|marseille|rennes|tours" \
-e PEAKS_LANGUAGES="Ruby|Go|PHP" \
-e PEAKS_REPO_MIN_STARS="20000" \
lucmichalski/peaks-seeker \
> peaks-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 | Hireable? | |
---|---|---|---|---|---|---|---|
foobar | Foot Bart | 23534 | 70% Go, 20% Ruby, 10% C | Berlin | Initech | [email protected] | true |
Set the following environment variables to specify the configuration.
Environment Variable | Description | Example Value |
---|---|---|
PEAKS_GITHUB_TOKENS | Several GitHub Personal Access Tokens | |
PEAKS_LOCATIONS | Location filter, separated by ` | ` |
PEAKS_LANGUAGES | Desired programming languages, separated by ` | ` |
PEAKS_REPO_MIN_STARS | Minimum repo star count | 20 |
Then run the executable or use the docker image x0rzkov/seeker
.
Make sure you have an up-to-date version of Go > 1.13.x installed.
Run make deps
to install library dependencies. Run make build
to build the executable.
See Makefile for more commands.
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!
Feel free to fork and submit Pull Requests!
MIT, see LICENSE.txt