Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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
```