UPD 6.10.2022: теперь приложение не откликается на одно и то же резюме в разных городах. (тестируется)
UPD 19.09.2022: приложение требуется GUI (либо подключить selenium headless), т.к. раз в 14 дней истекают куки пользователя и необходима его авторизация в браузере с поддержкой javascript.
Если вы желаете получить только список вакансий и ключевые навыки - проще всего запустить файлы с расширением exe
под Windows из папки for windows
.
-
Сбор вакансии в файл excel.
-
Сбор ключевых навыков в файл txt.
-
Отклик на вакансии.
- Python 3.8.
- git.
- созданное приложение на dev.hh.ru.
- файл
.env
с секретными ключами.
- Скачайте и запустите .exe файлы.
Собрать вакансии - скачать
Собрать ключевые навыки - скачать
Отклик на вакансии - не реализовано под Windows.
- Скачайте проект:
git clone https://github.com/NankuF/search_vacancies.git
- Перейдите в директорию:
cd search_vacancies
- Создайте виртуальное окружение:
python -m venv venv
- Активируйте окружение:
. ./venv/bin/activate
- Установите зависимости:
pip install -r requirements.txt
- Создайте приложение на dev.hh.ru.
- Добавьте файл .env и заполните его следующими данными
TELETHON_API_ID
- id вашего приложения в телеграм.
TELETHON_API_HASH
- hash вашего приложения в телеграм.
PRIVATE_CHANNEL_ID
- id вашего приватного телеграм-канала.
HH_RESUME_NAME
- название вашего резюме.
HH_VACANCIES_AMOUNT=2
- отклик на 2 вакансии за один раз.
HH_INTERVAL=3600
- интервал между откликами на вакансии (2 отклика - интервал - 2 отклика - интервал...).
HH_CLIENT_ID
- взятьClient ID
с dev.hh.ru.
HH_CLIENT_SECRET
- взятьClient Secret
с dev.hh.ru.
HH_APP_ACCESS_TOKEN
- взятьТокен приложения
с dev.hh.ru.
TELETHON_API_ID=your id
TELETHON_API_HASH=your hash
PRIVATE_CHANNEL_ID=-1001234567890 (your channel id)
HH_RESUME_NAME=Junior+ Python developer
HH_VACANCIES_AMOUNT=2
HH_INTERVAL=3600
HH_CLIENT_ID=client_id_in_your_app
HH_CLIENT_SECRET=client_secret_in_your_app
HH_APP_ACCESS_TOKEN=will be added automatically after authorization
Создайте файл .user
. В него добавятся автоматические следующие данные
HH_USER_ACCESS_TOKEN
- данные сохранятся в .env
автоматически.
HH_USER_REFRESH_TOKEN
- данные сохранятся в .env
автоматически.
HH_USER_ACCESS_TOKEN=will be added automatically after authorization
HH_USER_REFRESH_TOKEN=will be added automatically after authorization
--vacancy
- Название вакансии.
--location
- Можно ввести город, регион или страну.
--need_salary
- Укажите этот ключ, если хотите увидеть вакансии с указанной зарплатой.
--period
- За какой период искать работу. Указать количество дней. Максимум 30.
--schedule
- График работы: remote | fullDay | shift | flexible (
удаленная работа; полный день; сменный график; гибкий график).
Этот ключ можно не указывать.
Вакансии сохраняются в папке vacancies
Ключевые навыки сохраняются в папке skills
python main.py --vacancy "Программист Python" --location "Санкт-Петербург" --need_salary --period 30 --schedule "remote"
python main.py --vacancy "Уборщица" --location "Краснодарский край" --period 7
python main.py --vacancy "Прораб" --location "Россия" --period 1
python apply_vacancies.py
UPD 20.09.2022 - добавлена возможность отправлять отклик в ваш приватный телеграм канал.
Зарегистрируйте ваше приложение в телеграм.
Добавьте App api_id
и App api_hash
в .env как TELETHON_API_ID
и TELETHON_API_HASH
Создайте свой приватный канал в телеграм, и скопируйте его id из url, добавив к нему -100.
Например https://web.telegram.org/z/#777000 = -100777000. Это значение сохраните в .env в переменной PRIVATE_CHANNEL_ID
.
При первом запуске приложения потребуется создать сессию, введя номер телефона и код. Не забудьте передать эту сессию в контейнер,
положив ее в директорию logs
на вашем хосте.
- Создать образ
docker build . -t apply_vacancies
- Запустить контейнер
docker run -d --restart unless-stopped\
--name apply_vacancies\
-v $(pwd)/logs:/app/logs\
-e TZ=$(cat /etc/timezone)\
--env-file .env\
--env-file .user\
apply_vacancies