OSINT в работе IT-рекрутера: Автоматизируем поиск по никнеймам

Введение

В этой статье вы узнаете, как IT-рекрутеры (и не только) могут создавать свои уникальные базы кандидатов (лидов), используя базовые навыки работы с Python и специализированный софт "Snoop", который обычно используют специалисты по информационной безопасности.

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

Чтобы отправить кандидату приглашение на собеседование, рекрутеру нужно найти:

1) его контакты;

2) подтверждение, что вакансия соответствует опыту кандидата.

В данном примере в качестве первичной базы никнеймов мы будем использовать список участников чата разработчиков Golang, поэтому контакты (username в Telegram) у нас уже есть, и наша главная задача — определить, кто из участников действительно является Golang-разработчиком и субъективно оценить их уровень опыта в написании кода, насколько это возможно.

Я очень надеюсь, что вы рекрутер, и дорожите как собственной репутацией, так и репутацией компании, для которой подбираете персонал, и поэтому не будете отправлять приглашения на интервью всем подряд. Если это так, то этот гайд вам поможет.

Если вы используете сторонние решения для парсинга участников чатов в ТГ или у вас уже есть готовая база никнеймов, то вы можете пропустить шаги 1, 2, 3 и сразу перейти в работе со "Snoop"

Шаг 1. Регистрация нового аккаунта и приложения в Telegram

На всякий случай создайте себе новый аккаунт и зарегистрируйте на него свое telegram приложение.

Перейдите на страницу Telegram для разработчиков:

Перейдите в браузере по следующей ссылке: my.telegram.org.

  • Войдите в свой Telegram аккаунт, используя номер телефона, который вы используете в приложении Telegram.
  • Создайте новое приложение: После входа вы попадете на страницу "App Configuration".Нажмите на кнопку "API Development Tools" или "Создать приложение".
  • Заполните форму с информацией о вашем новом приложении:
  • App title: Название вашего приложения (например, MyParserApp).
  • Short name: Краткое имя для вашего приложения (например, parser).
  • Platform: Выберите платформу, на которой будет работать приложение (например, Desktop).
  • Description: Можете оставить описание (например, Application for Telegram data parsing).
  • Нажмите "Create" или "Создать".
  • Получите API ID и API Hash: После создания приложения вы увидите свой API ID и API Hash.
  • Сохраните эти значения — они потребуются для работы с библиотекой Telethon.
Свои данные я закрасил
Свои данные я закрасил

Если при регистрации приложения у вас вылезет ошибка, то попробуйте обновить страницу, использовать латинские буквы и цифры без пробелов или поменять\выключить VPN

Шаг 2. Парсинг участников Telegram чата

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

Все конфиденциально
Все конфиденциально

Можно собирать участников и из закрытых чатов, но это более сложно и требует больше усилий, однако потенциально может быть более результативным. Как это сделать, я напишу в своем Telegram-канале позже. Оформление кейсов — это довольно скучное занятие

Для запуска скриптов я использую IDE Pycharm. Сначала импортируем telethon

pip import telethon
from telethon import TelegramClient from telethon.tl.types import User # Учетные данные для авторизации api_id = 'ЗАПОЛНИТЬ' # Ваш api_id api_hash = 'ЗАПОЛНИТЬ' # Ваш api_hash phone_number = 'ЗАПОЛНИТЬ' # Ваш номер телефона channel = '@kubernetes_ru' # Название или ID канала/чата # Автоматическое создание имени файла на основе имени канала output_file = f"{channel.replace('@', '')}_users.txt" # Создаем клиент Telegram с сохранением сессии client = TelegramClient('session_name', api_id, api_hash) async def main(): # Авторизация await client.start(phone=phone_number) if not await client.is_user_authorized(): print("Не удалось авторизоваться.") return print(f"Сбор участников из чата: {channel}") # Получаем всех участников чата participants = await client.get_participants(channel) # Создаем список юзернеймов без @ в начале usernames = [user.username for user in participants if isinstance(user, User) and user.username] # Сохранение юзернеймов в файл with open(output_file, 'w', encoding='utf-8') as f: f.write('\n'.join(usernames)) print(f"Сохранено {len(usernames)} юзернеймов в файл '{output_file}'.") # Запуск программы with client: client.loop.run_until_complete(main())

Запускаем этот скрипт, написанный ChatGPT.

При первом запуске вводим номер телефона и код аутентификации для аккаунта. В дальнейшем это делать не потребуется.

Видим результат
Видим результат

Открываем файл с собранными никнеймами

Я их закрасил, чтобы не палить 
Я их закрасил, чтобы не палить 

Шаг 3. Работаем со Snoop

Snoop — это мощный OSINT-инструмент для поиска профилей по никнейму на более чем 4400 различных площадках. Это отечественный проект, который включает в себя поиск по популярным в СНГ ресурсам, а также предлагает удобные настройки, такие как управление регионом поиска. Snoop позволяет искать информацию как точечно по одному никнейму, так и по целым спискам.

В Snoop есть поиск как по отдельным площадкам вроде GitHub, Habr, Stack Overflow и т. д., так и только по русскоязычным сайтам. Эта утилита — находка для любого рекрутера.

Я работаю на Windows. Те, кто работают на Linux, разберутся сами, следуя документации. Для macOS эта программа пока не поддерживается

Начнем работу

Инструкция:

1. Скачайте архив с github по этой ссылке Snoop_for_Windows.rar

2. Распакуйте архив и откройте командную строку (Win+R ---> cmd)

3. Чтобы искать информацию по точечно по 1 никнейму перетащите exe-файл в командную строку и добавьте параметры -f ВАШ_ЮЗЕРНЕЙМ -t 9

Запуск программы
Запуск программы
Результаты поиска
Результаты поиска

4. Просто выделите и скопируйте информацию из терминала в вашу карточку

5. Если вы хотите быстро обработать ваш список на предмет совпадений по основным сайтам, скопируйте путь к вашему файлу с никнеймами, нажав Left Shift + Right Click

OSINT в работе IT-рекрутера: Автоматизируем поиск по никнеймам

6. Перетащите exe файл в терминал как в пункте 3 и добавьте к нему параметры --userlist "ПУТЬ К ВАШЕМУ ФАЙЛУ" -f -t 3 --site twitter --site habr --site stackoverflow --site vk --site github --site dtf

команда --site указывает на каком сайте производить поиск
В моем примере поиск будет происходить на сайтах Твиттер, Хабр, SoF, ВК, Гитхаб и DTF.

Замазал никнеймы. Хотя это и открытые данные, люди всё равно почему-то думают, что мы их воруем, и обижаются. Можно их понять 
Замазал никнеймы. Хотя это и открытые данные, люди всё равно почему-то думают, что мы их воруем, и обижаются. Можно их понять 

7. Выделите нужные данные и скопируйте их в код ниже, чтобы преобразовать в удобную для работы таблицу.

Предварительно установите pandas

pip install pandas
import pandas as pd # Ваша исходная строка данных data = """ ВАШИ ДАННЫЕ """ # Инициализация переменных для хранения данных nicknames = [] links = [] current_nickname = None # Обработка данных for line in data.splitlines(): line = line.strip() if not line: continue if "разыскиваем" in line: # Извлечение текущего никнейма current_nickname = line.split("<")[1].split(">")[0].strip() elif current_nickname and ": " in line: # Проверяем наличие ": " и извлекаем ссылку try: link = line.split(": ", 1)[1] nicknames.append(current_nickname) links.append(link) except IndexError: print(f"Не удалось обработать строку: {line}") # Создание DataFrame из списков df = pd.DataFrame({"Nickname": nicknames, "Link": links}) # Группировка данных по уникальным никнеймам и объединение ссылок с новой строки df_grouped = df.groupby('Nickname')['Link'].apply(lambda x: '\n'.join(x)).reset_index() # Сохранение DataFrame в файл Excel df_grouped.to_excel('nicknames_links_combined.xlsx', index=False) print("Данные успешно сохранены в файл nicknames_links_combined.xlsx")

8. Откроем полученный файл и посмотрим, что у нас получилось.

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

9. Проверим, есть ли в нашей новой базе удачные совпадения. Попробуем найти Golang-разработчика по ссылкам, полученным через Snoop.

Посмотрим по ссылке на хабр
Посмотрим по ссылке на хабр
OSINT в работе IT-рекрутера: Автоматизируем поиск по никнеймам

На первый взгляд, вроде бы Golang разработчик. Можно более подробно ознакомиться с этой и другими его статьями и ресурсами, но в данном материале мы этого делать не будем.

Давайте посмотрим кого-нибудь еще

Посмотрим, что есть на Гитхаб
Посмотрим, что есть на Гитхаб
Ага, нашли линк
Ага, нашли линк
OSINT в работе IT-рекрутера: Автоматизируем поиск по никнеймам

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

Отлично, совпадения в таблице есть. Сколько их —дальше надо смотреть руками.

10. Если вы хотите искать по всем ресурсам, уберите все параметры --site ... из вашей команды и оставьте только:

--userlist "ПУТЬ К ВАШЕМУ СПИСКУ" -f -t 3

Все остальные действия выполняются так же, как в предыдущих трех шагах.

Важное примечание

  • Помните, что чем популярнее никнейм, тем чаще он будет давать ложноположительные совпадения.
  • Вы можете использовать любую другую базу никнеймов, не обязательно брать из Telegram.
  • Старайтесь собрать как можно больше информации о кандидате перед приглашением его на интервью и отправкой холодного письма с вакансией. Не занимайтесь массовыми холодными рассылками. Персонализируйте свои предложения.
  • Этот метод также подойдет для ручного сбора базы для холодных продаж в B2C в премиальных сегментах.
  • Если кто-то указал одинаковый никнейм на Pornhub и в Telegram, возможно, он сделал это специально

Заключение

Таким образом, мы разобрались, как автоматизировать поиск по никнеймам. Доступ к любой современной LLM и знание Python могут существенно расширить ваши возможности как IT-рекрутера. Теперь вы можете формировать свои уникальные базы кандидатов или дополнять новой информацией существующие.

OSINT в работе IT-рекрутера: Автоматизируем поиск по никнеймам

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

Также, если вам нужен внутренний или внешний IT и Digital рекрутер, вы всегда можете связаться со мной в Telegram: @rudenko_telegram

33
33
Начать дискуссию