Началось все как у всех, с поиска работы. Изначально планировал собрать информацию об аккредитованных компаниях, чтобы в дальнейшем к ним устроится. При поиске обнаружил, что у 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 разработчик, понятное дело, что таким как я найти работу в сфере коммерческой разработки тяжело, но чтобы на столько, это даже жутковато, а вы что думаете?
Еще интересно, честно ли отправлять массовые отклики на вакансии? Я считаю, что да, потому что автоотказы зло и с ними нужно бороться.