"Соискательский гатлинг" - как джун с улицы одолел конкурентный барьер

Прошел год с моего предыдущего поста про обучение и поиск работы, и вот уже набежал мой первый, так желанный работодателями, год подтверждаемого коммерческого опыта =)
С того момента накопилось немало занимательных историй, тем и наблюдений, которыми мне хотелось бы поделиться с точки зрения молодого инженера, большая часть этих тем будет посвящена непосредственно работе нового разработчика в компании - к чему готовиться, что удивит и с чем придется смириться. Но не будем забегать вперед. В рамках этого поста я затрону темы посвященные процессу поиска работы и взаимодействию с нанимателями. В перечень таких тем входит: "Чего хотят боты: Составление резюме, если вы никто и звать вас никак", "Бесконечность не предел: Правильно взаимодействуем с работодателями", "Расчехляем пулемет: эффективно взаимодействуем с работодателями" и ряд других, не менее забавных артикулов =)
Как обычно, напоминаю, версии для лл нет, а все написанное ниже плод моего воображения мое, весьма, субъективное мнение, основанное на ограниченном опыте взаимодействия с российским рынком it найма в прошлом году.

"Пора искать работу: Как понять, что ты готов?"

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

В предыдущем посте давал субъективную оценку рынка it найма в 2022 году с точки зрения неофита с улицы. Если кратко - вайтюны не нужны, к людям с "быстрым" опытом относятся с понятным скептицизмом. Кроме того, в срезе стартовых позиций, рынок найма перегрет соискателями разной степени подготовленности. И когда я говорю "перегрет", я имею ввиду джуниорские вакансии, на которые приходит по 500+ откликов в неделю. В сети можно найти тонны занимательных статей/видео иллюстрирующих данную проблему.

"Соискательский гатлинг" - как джун с улицы одолел конкурентный барьер IT, Разработка, Трудоустройство, Личный опыт, Карьера, Поиск работы, Python, Текст, Длиннопост

Соответственно я, как соискатель столкнулся с двумя нюансами вызванными огромным количеством соискателей на позицию:
1) Разброс уровня подготовки среди сотен кандидатов на вакансию достаточно большой. Чтобы заинтересовать работодателя, нужно действительно что-то из себя представлять.
2) Трехзначное количество кандидатов приводит к тому, что уделить должное внимание каждому соискателю (даже просмотреть резюме) физически невозможно - не хватит человеко-часов. Адекватные работодатели используют фильтры hiring-платформы или самописных ботов, для фильтрации откликов по параметрам, например - автоматически отсеивают кандидатов без указанного опыта.

Учитывая эти наблюдения, найм джуна состоит из следующих пунктов:
1) Собес с ботом Грубый отсев кандидатов: Работодатель отсеивает резюме по ключевым словам. Вы готовы к этому этапу, если осознаете свою реальную позицию крайне невостребованного на рынке найма специалиста, а следовательно составляете резюме с упором на соответствие фильтрам нанимателя.
2) Первичный контакт с нанимателем. Это может быть звонок HR или сообщение в мессенджер. В некоторых случаях на этом этапе проводится технический скрининг, но я с таким не столкнулся. На этом этапе роляют софт скилы и вы к нему, скорее всего, готовы, если погуглили пару-тройку статей про процесс прохождения собесов или для вас это не первый собес.
3) Собсна то, за чем вы сюда пришли - техническое собеседование. Вы не готовы к этому этапу, если способны вести последовательную (пусть и не очень глубокую) дискуссию в контексте своего стека, с позиции понимания проблематики. Тут важнее всего именно последнее, не достаточно зазубрить ответы на вопросы, нужно понимание того, о чем вы беседуете, причем желательно, чтобы понимание опиралось на практический опыт.

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

"Чего хотят боты: Составление резюме, если вы никто и звать вас никак"

Советы по правильному составлению it резюме из интернета - говно, не подходят для джунов. Именно с этих слов я хочу начать данный раздел и считаю, что имею на это полное право, как человек, отправивший более 2к откликов. Резюме должно быть максимально кратким, информативным и содержать следующие блоки:

1) Ваш стек - максимально развернутое описание стека. Для джуна без опыта - добавляем сюда все, с чем когда-либо работали или сможете разобраться в течении недели. В начало выносим основные скилы, по которым есть хорошая теоретическая/практическая база, в конец выносим все остальное. Например для меня "основным" был питон с его либами, докер, умение в cli, всякие теоретические штуки, навроде ООП и сетевых протоколов, по которым мог развернуто дискутировать. Второстепенным был Golang, который тогда только начал учить, питонячий numpy, по которому небыло хорошей практики и некоторые другие вещи, которые были четко отмечены как "представляю что это, но с ходу не заведу". Указывать второстепенные скилы, но отмечать их "второстепенность" важно, чтобы обмануть автоматические фильтры, но не обмануть живого нанимателя. Сюда же пихаем инфу об образовании. Если это кулинарный техникум или что-то максимально не релевантное, лучше опустить. (оставьте эту информацию в специальном поле). Курсы в шапке указывать не стоит.
2) Ваш опыт - раздел поделен на два подраздела: коммерческий опыт и портфолио. Если есть сколь угодно релевантный опыт - обязательно указываем (сисадминил в универе, прокладывал сеть, фрилансил курсовые проекты для студентов и т.д.) если релевантного опыта нет - указывать его не нужно. Это же относится к специальным полям на платформах рекрутинга (например hh): если релевантного опыта нет - не указываем ничего. Нерелевантный опыт портит впечатление и закрепляет образ войтюна. В портфолио добавляем развернутое описание проектов со ссылками на гитхаб. Под это можно расписать целую статью, но если кратко - количество проектов не решает, важна оригинальность, сложность а самое главное - вовлеченность автора. Ваши проекты в целом мало кому интересны, а про типичный набор: "бложек", "магазинчик", "калькулятор", нанимателю скучно в сотый раз распрашивать на собесе. Лучше если проект будет один, максимум два - но интересных лично вам, о которых вы можете долго рассказывать с горящими глазами. Не готов утверждать, но мне кажется, что если есть стажировка в компании солиднее чем "ИП Михал-Палыч", можно обойтись и без проектов, но в целом ожидается, что у разработчика не пустой гитхаб.
3) О себе - в этот раздел пихаем все, что не подошло для двух предыдущих. Например, необычные хобби, странные навыки, какая-нибудь не релевантная для работы, но интересная информация =) А вот чего в этом разделе точно не стоит указывать, так это своей личностной характеристики, все эти: "исполнительный", "ответственный", "самостоятельный" и прочие эпитеты, которые и так ожидаются от кандидата. Распространенной ошибкой, является добавление информации о том, что вы "готовы работать за еду, опыт, вообще бесплатно, умоляю возьмите", это воспринимается негативно, будто кандидат не уверен в своем потенциале. В общем-то, наниматель и сам пока не уверен, стоит ли вас нанимать, а неуверенность кандидата в этом вопросе, прошу прощения за тафтологию, не добавляет уверенности нанимателю =)
4) Контакты - в этот блок без лишних комментариев добавляем ссылки на гитхаб, телегу, мыло, твиттер, кодварс. Иными словами, на все, для чего нет специальных полей на площадке (а если есть, всеравно дублируем). Можно указать контакты на социальные сети. Не поленитесь привести в порядок аккаунты, на которые ссылаетесь.

Отдельно, отмечу спорный момент с фотографией - добавлять или не добавлять? На одном из HR-ских стримов услышал позицию выступающего: "Лучше не добавляйте, т.к. фотография способствует субъективной оценке соискателя". Моя позиция - "Добавляйте, т.к. в нашей истории с сотнями кандидатов на позицию, резюме с фотографией лучше цепляет взгляд". Позаботьтесь о том, чтобы в резюме была фотография надлежащего качества.

Нужно ли добавлять объемное сопроводительное письмо? Нет, если вы не персонифицируете резюме под конкретную компанию. Читать опус о том, как вы мечтаете работать в этой компании де-факто никому не интересно. Хорошей практикой является добавление в поле сопроводительного письма, ссылки на pdf с красиво оформленным резюме, который hr сможет распечатать и положить на стол ЛПР.

"Эффективность откликов. Немного о собеседованиях"

Пару лет назад назад в аналогичной статье на хабре читал, что для получения оффера, джуну с улицы нужно отправить 200-300 откликов. Текущая ситуация на рынке it найма, как показал мой личный опыт и опыт моих знакомых, требует от 500 откликов для получения первого оффера. Мне потребовалось 2000 (не пугайтесь этой цифры, ниже расскажу, откуда она взялась). Первое реальное собеседование произошло на ~250м отклике, второе на ~400м. В целом, реальное приглашение на собес прилетает каждый ~150-й отклик. Основная проблема, как мне видится, в конкуренции. На ютубе можно найти забавные исследования, где автор открывает фейковую факансию для джуна в Санкт-Петербурге и на нее откликается 500+ кандидатов за неделю. Делаем выводы.
Сокращу этот раздел до нескольких советов, которые вывел для себя:

1) Если собираетесь отправлять отклики вручную - отправляйте на все, что более-менее релевантно по отношению к вашему стеку. Первое время я отправлял отклики лишь на те вакансии, где соответствие скилам было 9-10/10. Через месяц я начал откликаться буквально на все, чему хоть как-то соответствовал и появились первые приглашения. Причина простая - вас отсеивают не из-за наличия/отсутствия скилов, а просто потому, что перед вами подались 200+ человек.
2) В 2024 нет (почти) ни одной причины не проводить первичное собеседование удаленно. После двух неудачных собеседований в очном формате, я начал отказываться от собеса, если это первое собеседование и для его проведения требовалось ехать в другой город. Вероятность отказа на первичном этапе наиболее высока, а на поездку зачастую тратится целый день. Субъективное мнение, но может быть релевантно для жителей небольших городов.
3) Заморочки и странности. Если на любом из этапов общения с компанией происходят "странные вещи", лучше продолжить поиски. Из особо неожиданного, на одном из (очных) собесов, меня ждал "тест на логику" от hr, включающий вопросы уровня "У Саши было четыре яблока, 50% яблок он отдал...", у товарища на собесе был опрос по астрологии, а у знакомой - "генг-бенг собеседование", в котором одновременно участвовало пять кандидатов. Сюда же отнесу некомфортное поведение со стороны собеседующего. На одном из (очных) собесов меня встретил "скучающий дядя", который с первых секунд дал понять, что он не заинтересован в моем найме, ведя себя максимально высокомерно и постоянно фамильярничая, но я уже потратил пару часов на дорогу к ним и уходить было нелепо. Стоит ли говорить, что ни одна из этих историй не закончилась наймом? Ценность данного совета замечаешь лишь на контрасте с нормально выстроенными собеседованиями.

"Автоматизируем поиск: Джуниорский гатлинг"

В целом, готов утверждать, что 70% проблем вида "Я отправляю отклики, но меня никто не зовет даже на собесы!", вызваны адовым перенасыщением предложения на позициях начального уровня. Решение одно:

"Соискательский гатлинг" - как джун с улицы одолел конкурентный барьер IT, Разработка, Трудоустройство, Личный опыт, Карьера, Поиск работы, Python, Текст, Длиннопост

Нужно отправлять много откликов. Каждый день. И под "много", я подразумеваю "МНОГО". В идеале - выжимать весь дневной лимит на площадке. В период моего поиска, HH позволял отсылать до 200 откликов в сутки. Вручную, отправлять такое количество откликов ежедневно, безумие, даже если вы будете лишь бегло просматривать требования по вакансии.

"Соискательский гатлинг" - как джун с улицы одолел конкурентный барьер IT, Разработка, Трудоустройство, Личный опыт, Карьера, Поиск работы, Python, Текст, Длиннопост

Реальные показатели при ручной отправке откликов. Часть "приглашений" на деле - завуалированные отказы.

Уже через неделю ручного закликивания поисковой выдачи хедхантера, встал вопрос автоматизации процесса отправки откликов. За выходные я состряпал скрипт, который парсит ссылки на вакансии по заданному поисковому фильтру и подвязал его работу к фронту в виде телеграм бота. Скрипт каждый день по таймеру собирал ссылки и "прокликивал" (простыми HTTP запросами) кнопку "откликнуться" по каждой ссылке. Параллельно на все успешные отклики отправлялось заранее подготовленное сопроводительное, содержащее ссылку на pdf версию резюме:

"Соискательский гатлинг" - как джун с улицы одолел конкурентный барьер IT, Разработка, Трудоустройство, Личный опыт, Карьера, Поиск работы, Python, Текст, Длиннопост

Процесс работы бота был максимально жабофицирован, для большей эффективности

В результате, "выжимая" по 200 доступных откликов в день, к концу недели набиралось чуть менее 1000 откликов (по выходным новые вакансии публикуются редко). Количество приглашений выросло в разы, мне буквально заспамили личку на hh. Разумеется, большая часть откликов была проигнорирована или отклонена работодателями. Около 30% откликов делались на нерелевантные вакансии, ввиду того, что таковые иногда попадались в поисковой выдаче, даже при учете весьма жестких фильтров. Но так или иначе, я стабильно получал по 1-2 приглашения на собес каждый день. К сожалению, скрина с пруфами не сохранилось, но уже на вторую неделю у меня было собеседование, которое в конечном итоге, привело к офферу. Признаю, что это не самый этичный подход, вероятно, отнявший небольшое количество времени у сотрудников компаний, отклики на резюме которых, были сделаны по ошибке, но я старался честно приносить извинения каждому, чье сообщение не было похоже на автоответ.

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

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

Заключение

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