Началось все как у всех, с поиска работы. Изначально планировал собрать информацию об аккредитованных компаниях, чтобы в дальнейшем к ним устроится. При поиске обнаружил, что у HeadHunter уже реализован поиск по данному критерию. Супер, но я планировал собрать контактные данные, решил ознакомиться с API HH.
Сбор информации
Изначально играясь с API HH я пробегался по вакансиям собирал нужную информацию и сохранял ее в excel-файл. Но когда увидел, что есть метод отклика на вакансии понял, что это то, что мне нужно для моего удобства.
#Метод класса для получения необходимой информации с вакансий async def collect_vacany_data(self, flag=True): jsonobj = await self.make_request() vacation = [] values = jsonobj['items'] for value in values: emoloyer_id = value['employer']['id'] url = self.get_site(emoloyer_id) if flag else None alternate_url = value['alternate_url'] requrment = value['snippet']['requirement'] emoloyer_name = value['employer']['name'] contact = value['contacts']['email'] if value['contacts'] else 'Нет контактов' id_vacancy = value['id'] all_items = [url, alternate_url, emoloyer_name, contact, requrment, id_vacancy] vacation.append(all_items) return vacation
Интересный факт, почему‑то никто не заполнял информацию в contacts.
#Метод моего класса для создания excel-файла async def create_xl(self, flag=False): random_uuid = uuid.uuid4() wb = Workbook() ws = wb.active data = await self.collect_vacany_data(flag) for k in range(len(data)): ws.append(data[k]) wb.save(f'{random_uuid}.xlsx')
Реализация бота
Почему-то сразу пришла в голову идея, что круто было бы отправлять сотни откликов за пару минут, а для стартовой точки должно быть что-то, что находится под рукой, ну конечно же телеграмм-бот.
Для отправки отклика необходимо было зарегистрировать свое "приложен��е" и получить токены. Ок, подал заявку, ожидание 3-4 дня и полетели.
К слову, об ограничениях, думал, что могу отправить отклики буквально на все вакансии, а оказалось не все так просто, в день максимум 200. Но даже этого, как мне кажется, вполне достаточно, потому в Москве общее количество 450, за два дня почти на все откликнулся.
Начал собирать бота используя FSM, параллельно прикручивая функционал API HH, самое муторное было настроить авторизацию и прикрутить БД, но работа с БД очень сильно упрощала некоторые вещи и открывала новые возможности. Так что я остался довольным, что потратил на это время.
#Регистрируем пользователя в нашем "приложении" async def get_acces_token(Client_ID, Client_Secret, authorization_code): params = { "grant_type":"authorization_code", "client_id":Client_ID, "client_secret":Client_Secret, "code":authorization_code} request = requests.post(f'https://hh.ru/oauth/token', params=params) data = request.content.decode() json_data = json.loads(data) if json_data.get('error') is not None: if json_data['error'] == 'invalid_request': return 'invalid_request' elif json_data['error'] == 'invalid_client': return 'invalid_client' elif json_data['error'] == 'invalid_grant': return 'invalid_grant' elif json_data['error'] == 'forbidden': return 'forbidden' else: access_token = json_data['access_token'] return access_token
Результат
В итоге все работало как часы, отправил суммарно откликов более 1000 по всей России.

Но вот результат этих откликов меня мягко говоря расстроил. Из более чем 1000 откликов я получил:
Более 500 автоотказов
(Не)Приглашения, которые так и не пришли с каким-то результатом
Десятки переносов вакансий в архив
Ну и конечно же, 4-5 тестовых
Оставшиеся еще даже не смотрели
Я junior разработчик, понятное дело, что таким как я найти работу в сфере коммерческой разработки тяжело, но чтобы на столько, это даже жутковато, а вы что думаете?
Еще интересно, честно ли отправлять массовые отклики на вакансии? Я считаю, что да, потому что автоотказы зло и с ними нужно бороться.