{"id":20589544,"url":"https://github.com/nankuf/search_vacancies","last_synced_at":"2025-06-27T01:32:18.872Z","repository":{"id":45514974,"uuid":"513751248","full_name":"NankuF/search_vacancies","owner":"NankuF","description":"Отклики на вакансии, сбор вакансий и ключевых навыков по API Headhunter.","archived":false,"fork":false,"pushed_at":"2022-10-06T13:33:29.000Z","size":7562,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-08T00:23:44.116Z","etag":null,"topics":["api","docker","openpyxl","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NankuF.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-14T03:53:02.000Z","updated_at":"2024-11-08T03:00:32.000Z","dependencies_parsed_at":"2023-01-19T12:02:00.755Z","dependency_job_id":null,"html_url":"https://github.com/NankuF/search_vacancies","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NankuF/search_vacancies","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NankuF%2Fsearch_vacancies","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NankuF%2Fsearch_vacancies/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NankuF%2Fsearch_vacancies/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NankuF%2Fsearch_vacancies/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NankuF","download_url":"https://codeload.github.com/NankuF/search_vacancies/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NankuF%2Fsearch_vacancies/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262172477,"owners_count":23270019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","docker","openpyxl","python3"],"created_at":"2024-11-16T07:29:43.393Z","updated_at":"2025-06-27T01:32:18.742Z","avatar_url":"https://github.com/NankuF.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Отклик на вакансии, сбор вакансий и ключевых навыков в Headhunter\n#### UPD 6.10.2022: теперь приложение не откликается на одно и то же резюме в разных городах. (тестируется)\n#### UPD 19.09.2022: приложение требуется GUI (либо подключить selenium headless), т.к. раз в 14 дней истекают куки пользователя и необходима его авторизация в браузере с поддержкой javascript.\nЕсли вы желаете получить только список вакансий и ключевые навыки - проще всего запустить файлы с расширением `exe` под Windows из папки `for windows`.\n\n### Возможности приложения\n1. Сбор вакансии в файл excel.\n   \u003cdetails\u003e\n     \u003csummary\u003eФото\u003c/summary\u003e\n      \u003cimg src=\"images/img.png\"\u003e\n   \u003c/details\u003e\n\n2. Сбор ключевых навыков в файл txt.\n   \u003cdetails\u003e\n     \u003csummary\u003eФото\u003c/summary\u003e\n      \u003cimg src=\"images/img_1.png\"\u003e\n   \u003c/details\u003e\n\n3. Отклик на вакансии.\n\n### Требования для разработчиков:\n- Python 3.8.\n- git.\n- созданное приложение на [dev.hh.ru](https://dev.hh.ru/admin).\n- файл `.env` с секретными ключами.\n### Запуск под Windows:\u003cbr\u003e\n  - Скачайте и запустите .exe файлы.\u003cbr\u003e\n  Собрать вакансии - [скачать](https://github.com/NankuF/search_vacancies/raw/master/for%20windows/get_vacancies.exe)\u003cbr\u003e\n  Собрать ключевые навыки - [скачать](https://github.com/NankuF/search_vacancies/raw/master/for%20windows/get_skills.exe)\u003cbr\u003e\n  Отклик на вакансии - не реализовано под Windows.\n\n\n### Установка приложения в Unix:\n\n1. Скачайте проект:\u003cbr\u003e\n\n```commandline\ngit clone https://github.com/NankuF/search_vacancies.git\n```\n\n2. Перейдите в директорию:\u003cbr\u003e\n\n```commandline\ncd search_vacancies\n```\n\n3. Создайте виртуальное окружение:\u003cbr\u003e\n\n```commandline\npython -m venv venv\n```\n\n4. Активируйте окружение:\u003cbr\u003e\n\n```commandline\n. ./venv/bin/activate\n```\n5. Установите зависимости:\u003cbr\u003e\n\n```commandline\npip install -r requirements.txt\n```\n6. Создайте приложение на [dev.hh.ru](https://dev.hh.ru/admin).\n7. Добавьте файл .env и заполните его следующими данными\u003cbr\u003e\n`TELETHON_API_ID` - id вашего приложения [в телеграм](https://my.telegram.org/apps).\u003cbr\u003e\n`TELETHON_API_HASH` - hash вашего приложения [в телеграм](https://my.telegram.org/apps).\u003cbr\u003e\n`PRIVATE_CHANNEL_ID` - id вашего приватного телеграм-канала.\u003cbr\u003e\n`HH_RESUME_NAME` - название вашего резюме.\u003cbr\u003e\n`HH_VACANCIES_AMOUNT=2` - отклик на 2 вакансии за один раз.\u003cbr\u003e\n`HH_INTERVAL=3600` - интервал между откликами на вакансии (2 отклика - интервал - 2 отклика - интервал...).\u003cbr\u003e\n`HH_CLIENT_ID` - взять `Client ID` с [dev.hh.ru](https://dev.hh.ru/admin).\u003cbr\u003e\n`HH_CLIENT_SECRET` - взять `Client Secret` с [dev.hh.ru](https://dev.hh.ru/admin). \u003cbr\u003e\n`HH_APP_ACCESS_TOKEN` - взять `Токен приложения` с [dev.hh.ru](https://dev.hh.ru/admin).\u003cbr\u003e\n\n```text\nTELETHON_API_ID=your id\nTELETHON_API_HASH=your hash\nPRIVATE_CHANNEL_ID=-1001234567890  (your channel id)\nHH_RESUME_NAME=Junior+ Python developer\nHH_VACANCIES_AMOUNT=2\nHH_INTERVAL=3600\nHH_CLIENT_ID=client_id_in_your_app\nHH_CLIENT_SECRET=client_secret_in_your_app\nHH_APP_ACCESS_TOKEN=will be added automatically after authorization\n\n```\nСоздайте файл `.user`. В него добавятся автоматические следующие данные\n`HH_USER_ACCESS_TOKEN` - данные сохранятся в `.env` автоматически.\u003cbr\u003e\n`HH_USER_REFRESH_TOKEN` - данные сохранятся в `.env` автоматически.\u003cbr\u003e\n```text\nHH_USER_ACCESS_TOKEN=will be added automatically after authorization\nHH_USER_REFRESH_TOKEN=will be added automatically after authorization\n```\n## Запуск\n### Сбор вакансий и ключевых навыков\n   `--vacancy` - Название вакансии.\u003cbr\u003e\n   `--location`- Можно ввести город, регион или страну.\u003cbr\u003e\n   `--need_salary` - Укажите этот ключ, если хотите увидеть вакансии с указанной зарплатой.\u003cbr\u003e\n   `--period` - За какой период искать работу. Указать количество дней. Максимум 30.\u003cbr\u003e\n   `--schedule` - График работы: remote | fullDay | shift | flexible (\n   удаленная работа; полный день; сменный график; гибкий график).\n   Этот ключ можно не указывать.\u003cbr\u003e\n   **Вакансии сохраняются в папке `vacancies`**\u003cbr\u003e\n   **Ключевые навыки сохраняются в папке `skills`**\u003cbr\u003e\n```commandline\npython main.py --vacancy \"Программист Python\" --location \"Санкт-Петербург\" --need_salary --period 30 --schedule \"remote\"\n\n```\n\n```commandline\npython main.py --vacancy \"Уборщица\" --location \"Краснодарский край\" --period 7\n\n```\n\n```commandline\npython main.py --vacancy \"Прораб\" --location \"Россия\" --period 1\n\n```\n\n### Отклик на вакансии\n```commandline\npython apply_vacancies.py\n```\n#### Подключение телеграм\n**UPD 20.09.2022** - добавлена возможность отправлять отклик в ваш приватный телеграм канал.\u003cbr\u003e\nЗарегистрируйте ваше приложение [в телеграм](https://my.telegram.org/apps).\u003cbr\u003e\nДобавьте `App api_id` и `App api_hash` в .env как `TELETHON_API_ID` и `TELETHON_API_HASH`\u003cbr\u003e\nСоздайте свой приватный канал в телеграм, и скопируйте его id из url, добавив к нему -100.\u003cbr\u003e\nНапример https://web.telegram.org/z/#777000   = -100777000. Это значение сохраните в .env в переменной `PRIVATE_CHANNEL_ID`.\u003cbr\u003e\nПри первом запуске приложения потребуется создать сессию, введя номер телефона и код. Не забудьте передать эту сессию в контейнер,\nположив ее в директорию `logs` на вашем хосте.\n#### Запуск в контейнере\n1. Создать образ\n```commandline\ndocker build . -t apply_vacancies\n```\n2. Запустить контейнер\n```commandline\ndocker run -d --restart unless-stopped\\\n --name apply_vacancies\\\n -v $(pwd)/logs:/app/logs\\\n -e TZ=$(cat /etc/timezone)\\\n --env-file .env\\\n --env-file .user\\\n apply_vacancies\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnankuf%2Fsearch_vacancies","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnankuf%2Fsearch_vacancies","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnankuf%2Fsearch_vacancies/lists"}