{"id":51463950,"url":"https://github.com/fikstt2/hh-ai-agent","last_synced_at":"2026-07-10T12:00:40.117Z","repository":{"id":369347016,"uuid":"1289130590","full_name":"fikstt2/hh-ai-agent","owner":"fikstt2","description":"hh.ru аи бот для откликов","archived":false,"fork":false,"pushed_at":"2026-07-05T14:53:33.000Z","size":26,"stargazers_count":21,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-09T11:14:39.967Z","etag":null,"topics":["ai-agent","anti-captcha","automation","hh-ru","hh-ru-scraper","job-search","llama3","ollama","playwright","python","scraping","scraping-websites","stealth"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fikstt2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-07-04T11:20:32.000Z","updated_at":"2026-07-09T07:57:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fikstt2/hh-ai-agent","commit_stats":null,"previous_names":["fikstt2/hh-ai-agent"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/fikstt2/hh-ai-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fikstt2%2Fhh-ai-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fikstt2%2Fhh-ai-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fikstt2%2Fhh-ai-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fikstt2%2Fhh-ai-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fikstt2","download_url":"https://codeload.github.com/fikstt2/hh-ai-agent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fikstt2%2Fhh-ai-agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35330738,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-10T02:00:06.465Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ai-agent","anti-captcha","automation","hh-ru","hh-ru-scraper","job-search","llama3","ollama","playwright","python","scraping","scraping-websites","stealth"],"created_at":"2026-07-06T08:31:56.982Z","updated_at":"2026-07-10T12:00:39.819Z","avatar_url":"https://github.com/fikstt2.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HH.ru AI Agent (Auto-Responder) 🤖💼\n\nПолностью автономный ИИ-агент для автоматического поиска вакансий на HH.ru, фильтрации мусора и рассылки уникальных сопроводительных писем с помощью локальной нейросети (Llama 3). Управляется и отправляет отчеты через Telegram-бота.\n\n## Фичи\n- **Умный парсинг**: обходит Cloudflare и блокировки HH.ru за счет Playwright (сохраняет сессию авторизации).\n- **Двойная фильтрация**: хард-фильтр по стоп-словам + интеллектуальный анализ вакансии через локальную LLM (отсекает нерелевантные вакансии вроде \"продажников\" и \"риелторов\", даже если они всплыли в поиске по IT).\n- **Кастомные сопроводительные письма**: нейросеть читает ваше резюме и текст вакансии, выдавая идеальное персонализированное письмо для отклика.\n- **Интеграция с Telegram**: бот присылает уведомления об успешных откликах вместе со сгенерированным письмом, а также пересылает вам ответы от HR напрямую в мессенджер.\n- **Работает 24/7**: бесконечный цикл с задержками (по умолчанию 30 минут) позволяет боту работать на вас круглосуточно.\n\n## Требования\n- Python 3.9+\n- Установленный [Ollama](https://ollama.com/) с загруженной моделью (по умолчанию `llama3` или `llama3:8b`).\n\n## Настройка (Гайд для себя и потомков)\n\n### 1. Установка зависимостей\nСклонируйте репозиторий и установите библиотеки:\n```bash\npip install -r requirements.txt\nplaywright install chromium\n```\n\n### 2. Настройка окружения\nСоздайте файл `.env` в корне проекта и добавьте туда свои токены:\n```ini\nTG_BOT_TOKEN=\"ВАШ_ТОКЕН_ОТ_BOTFATHER\"\nTG_USER_ID=\"ВАШ_TELEGRAM_ID\"\nOLLAMA_URL=\"http://localhost:11434/api/generate\"\nOLLAMA_MODEL=\"llama3\"\n```\n*(Свой ID можно узнать через бота @userinfobot в ТГ).*\n\n### 3. Настройка поиска под себя\nОткройте `config.py` и подстройте логику под своё резюме:\n- `SEARCH_QUERIES` — список запросов (например, \"Python backend\").\n- `TARGET_RESUME_NAME` — точное название вашего резюме на HH (чтобы бот выбирал правильное из списка).\n- `MY_RESUME_SUMMARY` — подробное текстовое саммари ваших навыков. **Это критически важно**, так как на основе этого текста ИИ будет писать сопроводительные письма. Опишите свой стек, проекты и пожелания максимально подробно.\n\n### 4. Первый запуск (Авторизация)\nПри самом первом запуске скрипт откроет видимое окно браузера:\n```bash\npython main.py\n```\nВам нужно **вручную войти в свой аккаунт HH.ru** (ввести код из SMS/почты). Как только вы войдете, скрипт сохранит куки в файл `state.json`. После этого можете закрыть скрипт (Ctrl+C).\n\n### 5. Боевой запуск\nЗапускайте скрипт заново:\n```bash\npython main.py\n```\nТеперь браузер запустится в скрытом режиме (headless) и начнет автоматически собирать вакансии. Напишите боту в Telegram `/start`, чтобы он проснулся и начал слать вам отчеты.\n\n## Как изменить локацию поиска?\nПо умолчанию бот ищет вакансии сначала в Санкт-Петербурге (`\u0026area=2`), а затем удаленку по всей РФ (`\u0026area=113\u0026schedule=remote`).\nВы можете изменить `area` (код региона) в файле `hh_client.py` внутри метода `search_and_apply`.\n\n## Планируемые улучшения (TODO)\n- Перевод вызовов LLM с локальной Ollama на бесплатные облачные API (Groq) для разгрузки видеокарты во время игр.\n- Команда `/pause` в Telegram-боте.\n\n---\n*Disclaimer: Использование скриптов для автоматизации нарушает пользовательское соглашение HH.ru. Используйте на свой страх и риск. Автор не несет ответственности за возможный бан аккаунта.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffikstt2%2Fhh-ai-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffikstt2%2Fhh-ai-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffikstt2%2Fhh-ai-agent/lists"}