Гитхаб как найти человека

Лучшие специалисты достойны того, чтобы их хорошенько поискать. Поэтому, команда Hurma System продолжает обсуждать, где искать кандидатов в 2019 году. И сегодня мы поговорим про IT-рекрутмент на крупнейшем сервисе для хостинга IT-проектов и их совместной разработки — GitHub.

Как GitHub может помочь найти специалистов?

GitHub — веб-сервис, который позволяет разработчикам хранить свой код, а также делиться этим кодом с коллегами и заниматься его совместной разработкой в open source.

Другими словами, GitHub для программистов — это как Facebook для среднестатистических пользователей. Разница в том, что технические специалисты могут работать над своим кодом совместно с другими, и отслеживать его обновления с помощью Git, распределенной системы управления версиями.

Профиль специалиста на GitHub для IT-рекрутера — ценный источник информации, поскольку именно там можно понять какая должность у кандидата, место его работы и в какой стране мира он находится. Также в профиле отображается email специалиста и его сайт.

Обращайте внимание на количество подписчиков у разработчика, его вклад в другие проекты и репозитории. Чтобы проверить популярность проектов, необходимо обратить внимание на то, какое количество людей отметили или «форкнули» их. Это означает, что другие пользователи создали копию кода, могут изменять и применять его в своих проектах.


Пошаговая инструкция: как искать специалистов в GitHub

Давайте разберем, какие нужно сделать первые шаги на веб-сервисе рекрутерам для поиска кандидатов. 

1. Регистрация

На веб-сервисе поиском могут пользоваться только зарегистрированные пользователи. Создать учетную запись в GitHub не составит труда. После того, как вы заполните данные о себе, на указанную почту придет подтверждение, и вы сразу же сможете пользоваться сервисом.

2. Поиск по ключевым словам

Если вам нужен определенный специалист, например, Java-разработчик, то если вы пропишете слово «Java» в поиске, то GitHub выполнит поиск по таким категориям:

Веб-сервис по умолчанию выводит в результаты поиска репозитории. Если вам нужен конкретный специалист, нужно выбрать категорию Users. Тогда вы сможете увидеть всех пользователей, в профиле которых прописано это слово. 

3. Поиск по языкам программирования

Также на GitHub можно сразу искать по языкам программирования, которые знает специалист. 

Например, вам нужен специалист, владеющий Python. Вы вводите в Google такой запрос:

site:github.com inurl:tab=repositories Python

Далее, переходите по предложенным ссылкам.

4. Поиск по технологиям 

В GitHub на страницах репозиториев также указываются кодовые названия технологий и их описания. Такой вид поиска можно осуществить по ключевым запросам, которые не являются названиями языков программирования.Например, в Google нужно ввести:

site:github.com inurl:tab.repositories Java Spring NoSQL

5. Отслеживание активности 

После того, как вы нашли нужного кандидата по одному из фильтров поиска, отследите активность его аккаунта и посмотрите на последние действия с кодами. Это поможет вам понять над чем специалист работает сейчас и насколько активно.

6. Коммуникация

Не спешите отправлять кандидату вакансию сразу после того, как проанализировали его профиль. Помните, GitHub не отображает навыки сотрудника и его опыт работы в полной мере. Ваша цель — познакомиться с разработчиком, отметить его достижения, например, крутой код на GitHub. А после этого обсудить интересующие вас проекты и скиллы. 

Как заинтересовать кандидата?

Найти того, кто вам нужен — это половина дела. Намного труднее презентовать свою компанию так, чтобы кандидат отказался от всех других предложений и согласился работать в вашей компании. Для этого вам нужно знать несколько простых фактов.

1. Рынок подстраивается под IT-специалиста, а не наоборот

Стремительное развитие технологий превращает некоторых специалистов в сфере в «трофей», который хочет заполучить каждая компания. Но, если кандидат —  профессионал, то в любом случае не он ищет работу, а она его. Поэтому пытаться достучаться до таких специалистов через другие площадки, например по поиску работы, просто бесполезно. Здесь на помощь приходят закрытые площадки, такие как GitHub. Но следует помнить: вашему кандидату прямо сейчас кто-то тоже может отправлять вакансию. Ваша задача — сделать так, чтобы он согласился именно на ваше предложение.

2. Работу в вашей компании нужно продавать

Представьте, что вы не просто предлагаете, а продаете кандидату работу в вашей компании. Тогда ваши действия должны разделиться на шаги, похожие на этапы продаж: установить контакт, выявить потребность специалиста, презентовать компанию, проработать возможные возражения, заключить сделку (оффер).

Универсальные сообщения вроде «Здравствуйте, я рекрутер такой-то компании, и у меня много отличных предложений» больше не работают. За внимание востребованного специалиста нужно бороться. Чтобы сделать это эффективно, необходимо тщательно анализировать профессиональные навыки сотрудника, его увлечения, текущее место работы и обязанности, как мы и писали выше. Только после этого напишите индивидуальное письмо с предложением, которое потенциально может его заинтересовать. В сообщении обязательно нужно отметить те преимущества компании, которые выгодно отличают ее от других работодателей; ответить на всевозможные вопросы, а после встретиться с ним лично и плавно подвести специалиста к подписанию оффера, поддерживая с ним контакт на всех этапах процесса рекрутмента. 

3. Специалист может не проявлять энтузиазма

И это нормально. Иногда разработчики игнорируют сообщения. Здесь вам на помощь придет оригинальный фоллоу-ап. Если вы успешно прошли этот уровень и все-таки пригласили потенциального сотрудника на собеседование, помните, что ваш кандидат уже работает где-то или имеет на примете пару компаний. Следите за рынком и его предложениями по заработной плате, чтобы оставаться на уровне и быть интересным для специалиста. Подстраивайтесь под него в вопросах времени проведения собеседований и не создавайте преграды в виде тестовых заданий. Лучше, если тимлид в ходе интервью задаст несколько уточняющих вопросов или опишет возможную рабочую ситуацию, чтобы понять, как специалист принимает решения. 

Почему важно рекрутить на GitHub?

Подбор персонала в IT — непростая и постоянно изменяющаяся сфера. Рекрутеру важно все время развиваться, быть в курсе тенденций рынка и постоянно обучаться новому. Именно поэтому точечный поиск на таких специализированных площадках, как GitHub, — отличная возможность найти нужного специалиста и проанализировать его деятельность. Все это помогает сделать более выгодное предложение и заполучить нужного специалиста в штат компании. 

    • Actions

      Automate any workflow

    • Packages

      Host and manage packages

    • Security

      Find and fix vulnerabilities

    • Codespaces

      Instant dev environments

    • Copilot

      Write better code with AI

    • Code review

      Manage code changes

    • Issues

      Plan and track work

    • Discussions

      Collaborate outside of code

    Explore

    • All features

    • Documentation

    • GitHub Skills

    • Blog

  • For

    • Enterprise

    • Teams

    • Startups

    • Education

    By Solution

    • CI/CD & Automation

    • DevOps

    • DevSecOps

    Case Studies

    • Customer Stories

    • Resources

    • GitHub Sponsors

      Fund open source developers

    • The ReadME Project

      GitHub community articles

    Repositories

    • Topics

    • Trending

    • Collections

  • Pricing

{“id”:13962,”url”:”/distributions/13962/click?bit=1&hash=34f4902e488846982016ace150c23614ad72c48bc41ab309929e5e88657f3f4b”,”title”:”u00abu041cu043eu0434u0443u043bu044cu0431u0430u043du043au00bb u0437u0430u043fu0443u0441u0442u0438u043b u0441u0447u0435u0442u0430 u0438 u043fu0435u0440u0435u0432u043eu0434u044b u0432 u0438u043du0434u0438u0439u0441u043au0438u0445 u0440u0443u043fu0438u044fu0445″,”buttonText”:””,”imageUuid”:””}

Для этого:
– откройте аккаунт нужного пользователя на GitHub и скопируйте его имя;

– введите скопированные данные в всплывающем окне и нажмите «найти контакт».

И, вуаля, Вы прекрасны, можно предлагать разработчику свою вакансию и печеньки в офисе.

Мы уже довольно много написали о том, что для того, чтобы найти действительно хорошего разработчика стандартных сорсинговых сайтов недостаточно, необходимо пользоваться специализированными ресурсами. А сегодня мы решили разобрать всё, что нужно знать о рекрутменте разработчиков на Github!

Начнем с азов: что такое Github?

Github – крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки. Количество пользователей на GitHub превышает  32 миллиона в месяц.

Это место, где разработчики могут хранить свой код, делиться им с другими и заниматься совместной разработкой в open source (например, Ruby on Rails).

Все проекты программного обеспечения на сайте пользуются Системой управления изменениями Git (системой, отслеживающей версии проектов). Таким образом, разработчики записывают и отслеживают обновления кода, а также сравнивают его с оригиналом.

Проще говоря, выкладывание кода на Github фактически равноценно выкладыванию фотографий или других материалов в Facebook и Instagram.  

Найм на Github: чему можно научиться?

Github полон превосходных талантливых разработчиков. Если хотите эффективно находить людей на Github, нужно знать, где искать.

Профиль разработчика на Github – кладезь информации.

С первого взгляда можно увидеть ник кандидата, текущего работодателя, местоположение и email, но если копнуть чуть глубже:

Вебсайты

Сюда включены блоги, проекты и прочие ссылки, которые кандидаты решили выставить (отличная возможность узнать больше об их работах и интересах!)

Подписчики

Количество подписчиков разработчика на Github – хороший показатель его уровня и репутации среди разработчиков открытого ПО.

На заметку:

2-10 подписчиков – хорошо, 11-25 – очень хорошо, 26-75 – прекрасно, а те, у кого больше 75 подписчиков – просто звёзды (осторожно, таких людей очень сложно нанять!)

Вклад

Здесь можно увидеть вклад, внесённый разработчиком в другие проекты на сайте. Даже если вы совсем не дружите с кодом, можно извлечь некоторое количество информации из этого раздела.

Например:

Посмотрите, встречаются ли ключевые слова, относящиеся к языкам программирования, которые использует человек (к примеру, можно увидеть слово “rails”, если человек делал вклад в проект Ruby on Rails).

Репозитории

Раздел репозиториев содержит открытые проекты, которые разработчик выкладывает на Github, а также проекты, которые были скопированы (“форкнуты”).

Для измерения популярности проектов разработчика необходимо проверить, сколько людей отметили или “форкнули” их (форк или отметка показывает, что другие разработчики считают его ценным).

Форк

“Форк” репозитория создаёт его копию. Это позволяет тому, кто форкнул, изменять изначальный код и использовать его в своих проектах.

Понятие свободного доступа к идеям и коду – сама суть сайтов свободного программного обеспечения вроде Github (если код был создан для частного использования, на сайте его не выкладывают).

На странице репозитория можно увидеть, сколько людей его отметили и форкнули, а также уровень активности других проектов. Большая активность показывает, что разработчик создал (или ещё создаёт) популярный проект.

Пошаговое руководство поиска:

1. Создайте учётную запись

Поиск по Github ограничен для тех, кто не зарегистрирован, поэтому создание учётной записи и добавление основной информации и фотографии поможет начать поиск.

2. Проведите поиск

При поиске на Github нужно учитывать 3 основных параметра.

Подписчики: как было отмечено ранее, подписчики – хороший показатель уважения, которое заслужил человек в сообществе разработчиков открытого ПО.

Язык: какие именно навыки кандидата вам необходимы?

Местоположение: если вы не ищете человека на удалённую работу, местоположение – важный параметр поиска.

Вот несколько примеров, как можно совместить эти условия в поиске:

language:ruby on rails location:moscow followers:5..10

language:javascript location:moscow followers:<50

Необязательно проводить поиск напрямую на Github, можно использовать и Google. Вот несколько эффективных запросов для поиска кандидатов с помощью Google.

Найти профили: site:github.com “public activity” -tab.activity

Найти профили с местоположением: site:github.com “london” “joined on” “public activity” -tab.activity

Найти профили по ключевым словам: site:github.com (ios | android) “public activity” -tab.activity

Найти профили по ключевым словам, подписчикам или числу отметок: site:github.com (“50..250 followers” | “100..500 starred”) (javascript) “joined on” -tab.activity

Можете добавить параметр «дата регистрации» (“joined on [date]”), определённые организации или даже организации с определённым количеством сотрудников для уточнения запроса.

3. Отфильтруйте по профилям кандидатов

По умолчанию Github обычно показывает репозитории (не профили) в результатах поиска. Необходимо отфильтровать их по пользователям, чтобы найти кандидатов, подходящих для вашего запроса.

Github автоматически покажет лучшее совпадение для запроса, но есть функция пересортировки результатов по параметрам “больше всего подписчиков”, “больше всего репозиториев” и “последние зарегистрированные”.

Иногда можно удачно отсортировать кандидатов по стажу на сайте (“последние зарегистрированные”). Этим кандидатам вряд ли много писали рекрутеры, поэтому более вероятно, что они вам ответят.

Как писать кандидатам на Github

Самое большое преимущество поиска работников на Github в том, что большинство кандидатов указывает личные email-адреса в своём профиле.

Разработчики, которым вы  захотите написать, могут получать многочисленные письма от других рекрутеров – нужно найти способ выделиться.

Лучший способ для этого – выяснить о кандидатах как можно больше.

1) Проверьте репозитории

Снова загляните в репозитории разработчиков и посмотрите, какие программы там лежат. Не важно, можете ли вы отличить CSS от HTML, информацию вы всё равно там получите.

Программы под названием “Исходники” были написаны самим разработчиком, а всё, что “Форкнуто”, было скопировано у другого пользователя.

Ищите узнаваемые ключевые слова и открывайте проекты, чтобы прочитать описание и узнать больше. Большая часть кода на Github связана с личными проектами, поэтому вы составите хорошее представление о том, что на самом деле важно людям.

Помните: всё, что вы там заметите, можно использовать в обращении.

2) Следите за активностью

Посмотрите на активность пользователей, чтобы понять, что они делали в последнее время. Заходили ли они на Github? Добавляли ли больше своего кода или форкали чужой? Есть ли какой-то проект, на который они тратят много времени.

3) Перекрёстные ссылки

Github – отличное место для первого представления о технических интересах кандидата, но не забывайте о перекрёстных ссылках на другие сайты: Twitter, LinkedIn и Facebook для того, чтобы составить полную картину.

4) Напишите индивидуализированное письмо

Последний шаг прост. Соберите всю личную информацию, которую вы нашли на Github и соцсетях и составьте письмо.

amazinghiring.com

Ищем по email в GitHub

@osint_mindset

Сложно не иметь репозитория на GitHub, если ты хоть сколько-нибудь занимаешься разработкой. Разумеется, с кодом человек оставляет в репозитории email — чаще всего личный, иногда рабочий, иногда оба вместе.

Ранее я уже писал небольшую утилиту gitcolombo для анализа почт из коммитов репозитория и выявления всех ящиков одного человека. Но это работает, когда нам известен аккаунт или хотя бы проект. А что делать, когда у нас на руках только email-адрес?

Внутренний поиск

Поиск на GitHub по “test@example.com”

Поиск по коду на самом GitHub имеет ряд ограничений и неочевидностей. Но всё равно даёт большой шанс наткнуться на совпадение — нередко в коде фигурирует контакт автора.

Искать по email в коммитах, к сожалению, нельзя. Зато есть поиск по публичному ящику с помощью модификатора вида test in:email. Бесполезный по большей части, потому что ящик из профиля с большой вероятностью проиндексируется в Google.

Да, и расстраивает нечёткий поиск — например, на скрине выше GitHub почему-то искал не по строке test@example.com , а по трем подстрокам test, example и com.

grep.app

Поиск в grep.app по “test@example.com”

Проблему с нечётким поиском точно решит сайт grep.app. Он производит поиск по 500К популярных репозиториев, поддерживает регулярные выражения и, разумеется, поиск по точному вхождению.

Как видно из скриншота, результатов в сравнении на два порядка меньше. И по коммитам искать он также не умеет. Но для сложного поиска сайт подходит идеально, так что когда у вас будет известна только часть email, то обязательно загляните сюда.

Пример ниже: поиск по корпоративному ящику, для которого известен формат имя.фамилия@домен.ru, имя “Влад” и конец фамилии “ов”.

Поиск в grep.app по части email с помощью регулярного выражения

Самый большой минус — это, конечно, малое количество данных. Сомнительно, что сайт когда-нибудь сможет в реалтайме делать поиск по всем репозиториям (потому что GitHub попросту не предоставит такого API), но будем надеяться на скорейшее увеличение базы.

Google BigQuery

Поиск по коммитам GitHub через BigQuery по хэшу имени ящика

Самым перспективным инструментом я всё же считаю датасет свободных репозиториев GitHub, выложенный в Google BigQuery.  2,8 млн репозиториев, больше 2 млрд файлов, 145 млн коммитов, общий размер — около 3 терабайт.

И для всего этого доступен интерфейс SQL-запросов, что позволяет делать точечные запросы по email, имени, кускам кода, и с самой изощрённой логикой.

Для оценки всех возможностей советую почитать вот эту статью и посмотреть на примеры по ссылкам. А мы перейдём к нашей цели — поиск по почтовому ящику.

Датасет немного деперсонализирован. Это значит, что в метаданных коммитов мы найдём не ящик test@example.com , а a94a8fe5ccb19ba61c4c0873d391e987982fbbd3@example.com. Нас это не остановит, поскольку имя ящика у нас должно быть на руках. Следовательно, достаточно сделать SHA1 от начала email — и выражение для поиска готово.

Да, и ссылка на коммит всегда хранится рядом, так что email можно посмотреть вручную, если репозиторий до сих пор доступен на GitHub.

Алгоритм поиска

1. Допустим, мы уверены, что ник человека используется и в имени ящика. Берём его для поиска (на моём примере — soxoj).

2. Хэшируем SHA1 — онлайн или через консоль:

echo -n "soxoj" | sha1sum

Получаем 4b9e910872a66d9b7d7e137ad70e3abfaad7eda7.

3. Идём в интерфейс для запросов. Нас попросят создать проект, если у вас его ещё нет — создаём.

4. Вводим следующий запрос:

select
    repo_name, commit,
    author.name, author.email,
    committer.name,  committer.email
from
    bigquery-public-data.github_repos.commits
where
  author.email like '4b9e910872a66d9b7d7e137ad70e3abfaad7eda7%'
  or 
  committer.email like '4b9e910872a66d9b7d7e137ad70e3abfaad7eda7%'

Что мы делаем этим запросом?

Запрашиваем имя репозитория, хэш коммита, имя и email для автора и коммиттера. Ищем в таблице с коммиттами. Фильтруем по email, указывая его начало — хэшированное имя.

5. Нажимаем “Выполнить”, ожидаем, получаем таблицу из репозиториев, коммитов и “обезличенных” email-адресов.

Результат запроса

Email очевиден (теперь мы видим домен), а остальное можно посмотреть прямо в репозитории. Cсылка формируется как repo_name+commit:

https://github.com/rs/domcheck/commit/b0d1a1427e22805cea2cedc49039facbb5e516e4

Надо учитывать квоты. Именно для этого нам предлагали создать проект. Подразумевается, что при массовых запросах в API нам бы хорошо и денег занести в Google. У меня, например, быстро исчерпалась квота в 1 TB из-за региональных ограничений — считается она на каждый проект.

Таким образом можно производить поиск и по более сложным кейсам — в зависимости от вашего случая и полёта фантазии.


Разумеется, ни один инструмент не универсален и может не решить вашу поисковую проблему. Всегда имеет смысл по-новому взглянуть на привычные вещи и попробовать нестандартно их использовать. Если вас это интересует — добро пожаловать на канал OSINT mindset и в одноимённый чат.

Добавить комментарий