Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nankuf/search_vacancies
Отклики на вакансии, сбор вакансий и ключевых навыков по API Headhunter.
https://github.com/nankuf/search_vacancies
api docker openpyxl python3
Last synced: about 1 month ago
JSON representation
Отклики на вакансии, сбор вакансий и ключевых навыков по API Headhunter.
- Host: GitHub
- URL: https://github.com/nankuf/search_vacancies
- Owner: NankuF
- Created: 2022-07-14T03:53:02.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-10-06T13:33:29.000Z (about 2 years ago)
- Last Synced: 2023-03-08T13:39:29.457Z (almost 2 years ago)
- Topics: api, docker, openpyxl, python3
- Language: Python
- Homepage:
- Size: 7.21 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Отклик на вакансии, сбор вакансий и ключевых навыков в Headhunter
#### UPD 6.10.2022: теперь приложение не откликается на одно и то же резюме в разных городах. (тестируется)
#### UPD 19.09.2022: приложение требуется GUI (либо подключить selenium headless), т.к. раз в 14 дней истекают куки пользователя и необходима его авторизация в браузере с поддержкой javascript.
Если вы желаете получить только список вакансий и ключевые навыки - проще всего запустить файлы с расширением `exe` под Windows из папки `for windows`.### Возможности приложения
1. Сбор вакансии в файл excel.
Фото
2. Сбор ключевых навыков в файл txt.
Фото
3. Отклик на вакансии.
### Требования для разработчиков:
- Python 3.8.
- git.
- созданное приложение на [dev.hh.ru](https://dev.hh.ru/admin).
- файл `.env` с секретными ключами.
### Запуск под Windows:
- Скачайте и запустите .exe файлы.
Собрать вакансии - [скачать](https://github.com/NankuF/search_vacancies/raw/master/for%20windows/get_vacancies.exe)
Собрать ключевые навыки - [скачать](https://github.com/NankuF/search_vacancies/raw/master/for%20windows/get_skills.exe)
Отклик на вакансии - не реализовано под Windows.### Установка приложения в Unix:
1. Скачайте проект:
```commandline
git clone https://github.com/NankuF/search_vacancies.git
```2. Перейдите в директорию:
```commandline
cd search_vacancies
```3. Создайте виртуальное окружение:
```commandline
python -m venv venv
```4. Активируйте окружение:
```commandline
. ./venv/bin/activate
```
5. Установите зависимости:```commandline
pip install -r requirements.txt
```
6. Создайте приложение на [dev.hh.ru](https://dev.hh.ru/admin).
7. Добавьте файл .env и заполните его следующими данными
`TELETHON_API_ID` - id вашего приложения [в телеграм](https://my.telegram.org/apps).
`TELETHON_API_HASH` - hash вашего приложения [в телеграм](https://my.telegram.org/apps).
`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](https://dev.hh.ru/admin).
`HH_CLIENT_SECRET` - взять `Client Secret` с [dev.hh.ru](https://dev.hh.ru/admin).
`HH_APP_ACCESS_TOKEN` - взять `Токен приложения` с [dev.hh.ru](https://dev.hh.ru/admin).```text
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` автоматически.
```text
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`**
```commandline
python main.py --vacancy "Программист Python" --location "Санкт-Петербург" --need_salary --period 30 --schedule "remote"```
```commandline
python main.py --vacancy "Уборщица" --location "Краснодарский край" --period 7```
```commandline
python main.py --vacancy "Прораб" --location "Россия" --period 1```
### Отклик на вакансии
```commandline
python apply_vacancies.py
```
#### Подключение телеграм
**UPD 20.09.2022** - добавлена возможность отправлять отклик в ваш приватный телеграм канал.
Зарегистрируйте ваше приложение [в телеграм](https://my.telegram.org/apps).
Добавьте `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` на вашем хосте.
#### Запуск в контейнере
1. Создать образ
```commandline
docker build . -t apply_vacancies
```
2. Запустить контейнер
```commandline
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
```