Git Product home page Git Product logo

peaks-seeker's Introduction

Peaks Seeker

CircleCI

Search GitHub repositories for potential job candidates.

How It Works

  1. Gets all GitHub repositories with the specified minimum amount of stars for the given languages.
  2. Gets commit count per user for each of those repositories.
  3. Calculates a user's score as the sum of log(repoStars + 1) * commitCount over each repo.
  4. Calculates a user's language distribution from the repo's language information.
  5. Fetches user profile data.
  6. Filters out users that don't match location filter or don't have an email address.
  7. Prints a TSV table of all users, ranked by their score.

Quick Example

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.

Output Format

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 [email protected] true

Usage

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.

Installing

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.

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

peaks-seeker's People

Contributors

michalski-luc avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.