Skip to content

XX_Auto_Jobs_Applier это приложение для автоматизации поиска работы на сайте hh.ru. Оно использует искусственный интеллект, что позволяет пользователю откликаться на множество вакансий, отвечать на вопросы и писать сопроводительные письма в автоматическом режиме, учитывая при этом интересы и резюме пользователя, а также особенности вакансии

License

Notifications You must be signed in to change notification settings

beatwad/XX_Auto_Jobs_Applier

Repository files navigation

XX Auto Jobs Applier

License: MIT contributions welcome

🤖🔍 Ваш ИИ помощник в поиске работы на сайте hh.ru. Ищите и откликайтесь только на интересные вам вакансии в полностью автоматическом режиме и найдите работу своей мечты быстрее.

Внимание

Этот проект является форком проекта AIHawk, также предназначенного для автоматизации поиска работы (на LinkedIn). Если вас интересует поиск работы именно на LinkedIn, советую приглядеться к AIHawk.

🚀 По всем вопросам рекомендую обращаться в тематический телеграм чат 🚀

XX Auto Jobs Applier Chat 👇

Telegram

Содержание

  1. Введение
  2. Особенности
  3. Установка
  4. Настройка
  5. Использование
  6. Проблемы
  7. Лицензия
  8. Предупреждение

Введение

XX_Auto_Jobs_Applier — передовой автоматизированный инструмент, предназначенный для автоматизации поиска и подачи заявок на работу на сайте hh.ru. Используя мощь искусственного интеллекта, XX_Auto_Jobs_Applier дает возможность пользователям в автоматическом режиме подавать заявки на огромное количество интересующих их вакансий, увеличивая свои шансы получить работу мечты.

Иными словами

Вам больше не нужно тратить бесчисленное количество времени на вычитывание и прокликивание всех интересующих вас вакансий. XX_Auto_Jobs_Applier сам найдет интересующие вас предложения, учитывая при этом как текст вакансии, так и текст вашего резюме и дополнительную информацию о вас и ваших интересах. Далее XX_Auto_Jobs_Applier сам откликнется на данное предложение, а также ответит на все сопутствующие вопросы работодателя и приложит сопроводительное письмо, написанное с учетом требований вакансии и содержимого вашего резюме.

Особенности

  1. Автоматизация поиска

    • Возможность настройки поиска под интересующие вас вакансии
    • Настройка фильтров для исключения неподходящих вакансий и работодателей
  2. Быстрая и эффективная подача резюме

    • Запуск приложения одной командой
    • Автозаполнение всех необходимых работодателю форм и вопросов
    • Написание сопроводительных писем в автоматическом режиме
    • Есть возможность использовать одно готовое сопроводительное письмо для всех вакансий
  3. AI персонализация

    • Приложение само отвечает на все интересующие работодателя вопросы
    • Сопроводительное письмо пишется с учетом требований вакансии и содержания резюме
    • Если в описании вакансии работодатель просит ответить на вопросы или указать ключевые слова, приложение это учтет
  4. Мониторинг работы приложения

    • Все действия и ошибки логируются
    • Все обращения к AI также логируются + записывается стоимость каждого обращения
    • Все вакансии и должности, на которые производился отклик, и результат каждого отклика также записываются в соответствующие файлы
  5. Безопасная обработка данных

    • Все приватные данные хранятся локально в YAML файлах

Установка

Работа приложения проверялась на следующих конфигурациях:

  • ОС:
    • Windows 10
    • Ubuntu 22
  • Версии Python:
    • 3.12.0(64b)
    • 3.12.7(64b)
  • LLM:
    • OpenAI GPT-4o mini
  1. Скачайте и установите Python:

    Убедитесь, что у вас установлена ​​последняя версия Python. Если нет, загрузите и установите ее с официального сайта Python. Подробные инструкции см. в руководствах (на инглише):

  2. Скачайте:

    • Приложения заточено под работу с Google Chrome, поэтому скачайте и установите последнюю версию с официального сайта.
  3. Клонируйте репозиторий:

    git clone https://github.com/beatwad/XX_Auto_Jobs_Applier.git
    
    cd XX_Auto_Jobs_Applier

В случае Windows перед выполнением этой команды возможно потребуется установить Git. Найти его можно по этой ссылке

  1. Активируйте виртуальное окружение

    python -m venv virtual

    или

    python3 -m venv virtual
    source virtual/bin/activate

    для Windows нужно зайти в терминал (Win + R -> в появившемся окне ввести cmd, затем Enter):

    .\virtual\Scripts\activate

    Если в Windows пишет, что pyhon не является исполняемой командой и т.д., запустите еще раз установочный файл python, в появившемся окне нажмите Modify -> Next -> Add python to environment variables

  2. Установите все необходимые пакеты:

    pip install -r requirements.txt

Настройка

Основные файлы для настройки лежат в папке data_folder.

В папке data_folder_example лежат примеры файлов для настройки

1. data_folder/secrets.yaml

Этот файл содержит важную информацию. Никогда не делитесь им ни с кем и не делайте этот файл отслеживаемым системой контроля версий.

Совет: можно сделать данный файл неотслеживаемым для Git при помощи команды git update-index --assume-unchanged data_folder/secrets.yaml или же удалить его из списка остлеживаемых при помощи команды git rm --cached data_folder/secrets.yaml

  • llm_api_key: [Ваш API ключ OpenAI или Ollama или Gemini]
    • Для получения API ключа у OpenAI прочитайте эту статью или загуглите аналоги на русском: https://medium.com/@lorenzozar/how-to-get-your-own-openai-api-key-f4d44e60c327
    • Важно: Чтобы использовать API, нужно пополнить баланс счета. Для этого нужно зайти в OpenAI billing dashboard.
    • Согласно сообществу OpenAI, сразу после настройки учетной записи OpenAI и покупки необходимых кредитов, пользователи по-прежнему имеют тип учетной записи Free. Это не позволяет им иметь неограниченный доступ к моделям OpenAI и позволяет делать только 200 запросов в день. Это может привести к ошибкам во время выполнения, таким как: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. ...}} или {'error': {'message': 'Rate limit reached for gpt-4o-mini in organization <org> on requests per day (RPD): Limit 200, Used 200, Requested 1.}}
      OpenAI автоматически обновит вашу учетную запись, но это может занять некоторое время, от пары часов до нескольких дней. Подробнее об ограничениях вашей организации можно узнать на официальной странице.
    • Также пользователи из России скорее всего (обязательно) встретятся с этой ошибкой: Error code: 403 - {'error': {'code': 'unsupported_country_region_territory', 'message': 'Country, region, or territory not supported'...}} Что тут можно сказать, включите VPN, выберите любую европейскую страну или США/Канаду, и будет вам счастье.
    • Для получения ключа API Gemini посетите Google AI for Devs

2. data_folder/search_config.yaml

Этот файл содержит в себе настройки поиска вакансий. За исключением полей job_title, login и job_blacklist настройки этого файла повторяют настройки поиска на hh.ru, поэтому углубляться мы в них не будем (к тому же там все закомментировано). Рассмотрим только:

  • job_title:

    • Должность, на которую вы претендуете, самое важное поле. Нужно, чтобы на hh.ru было резюме, которое называлось ровно также, как эта переменная
  • login:

    • Собственно логин, под которым вы входите на hh.ru (может быть телефон или email)
  • job_blacklist:

    • Список компаний, на вакансии которых не откликаемся

Все поля, которые обязательно должны быть в файле, помечаются в файле в комментариях как обязательное поле.

Все поля, которые могут принимать только одно значение true, помечаются в файле в комментариях как может принимать только одно значение true .

3. data_folder/structured_resume.yaml

Этот файл содержит в себе резюме пользователя в структурированном виде. Этот файл должен быть заполнен вашими персональными данными, информацией об образовании, опыте, навыкам, зарплатным ожиданиям и т.д. Эта информация используется для написания сопроводительных писем, а также для ответов на вопросы работдателя. Информация из этого файла должна совпадать или дополнять информацию из вашего резюме на сайте hh.ru.

Каждая секция имеет специфические поля. За редким исключением, любое поле в любой секции может быть не заполнено, более того, большинство секций можно оставить абсолютно пустыми. Но чем больше информации о себе вы напишете, чем лучше LLM будет в последствии отвечать на вопросы. Если какая-то секция или какое-то поле не может быть пустым (например Имя/Фамилия или зарплатные ожидания) - приложение само сообщит вам об этом, выдав соответствующую ошибку.

  • personal_information: В этой секции хранится ваша личная информация + контакты

    • name: Имя.
    • surname: Фамилия.
    • date_of_birth: Дата рождения.
    • country: В какой стране живете в данным момент.
    • city: В каком городе живете в данный момент.
    • phone: Телефон.
    • email: Адрес вашей электронной почты.
    • github: Ссылка на ваш github.
    • linkedin: Ссылка на ваш LinkedIn.
    • personal_site:
  • Пример

    personal_information:
      name: Иван
      surname: Иванов
      date_of_birth: 15.07.1995
      country: Россия
      city: Москва
      phone: 89098765432
      email: ivan_ivanov@gmail.com
      telegram: ivanov95
      github: https://www.github.com/ivanov95/
      linkedin: https://www.linkedin.com/in/ivan-ivanov-f3e57c712/
      personal_site: https:/ivan-ivanov.ru
  • legal_authorization: - В каких странах есть разрешение на работу

    • countries: Список стран
  • Пример

    legal_authorization:
      - countries:
        - Россия
        - Беларусь
  • work_preferences: Кем бы вы хотели работать и какие условия работы предпочитаете

    • position: На какой позиции хотели бы работать
    • specialization: Какая у вас специальность
    • job_type: Предпочитаемый тип занятости: полная занятость, частичная занятость, стажировка, разовое задание и т.д.
    • work_schedule: Предпочитаемый рабочий график: полный день, удаленная работа, гибкий график, вахтовый и т.д.
    • travel_time_to_work: Время, которое вы готовы тратить на работу
    • ready_to_business_trips: Готовы ли вы к командировкам и если да, то как часто
    • relocation: Есть ли возможность и желание релоцироваться
  • Пример:

    work_preferences:  
      position: Python разработчик
      specialization: Программист, разработчик
      job_type: Полная занятость, частичная занятость
      work_schedule: Полный день, Удаленная работа
      travel_time_to_work: Не более часа
      ready_to_business_trips: Иногда
      relocation: Могу переехать
  • education_details: Список, образований и курсов, которые вы получали/проходили

    • education_level: Уровень образования (высшее, неоконченное высшее, среднее, курсы)
    • institution: Название учебного заведения (если есть)
    • faculty: Название факультета (если есть)
    • company: Название компании (если есть)
    • specialization: На какую специальность учились
    • year_of_completion: Год завершения
  • Пример:

    education_details: 
    - education_level: Высшее
      institution: Московский Государственный Институт
      faculty: ВМК (Высшая Математика и Кибернетика)
      company: 
      specialization: Фундаментальная информатика и информационные технологии
      year_of_completion: 2019
    
    - education_level: Курсы
      institution: 
      faculty: 
      company: Яндекс Практикум
      specialization: Python разработчик
      year_of_completion: 2021
  • experience_details: Cколько лет общего опыта в индустрии + где работали и чего добились

    • total_experience: Сколько лет общего опыта

    • grade: Ваш уровень (intern, junior, middle, senior, team lead и т.д.)

    • Список мест работы:

      • position: На какой позиции работали
      • company: Имя компании
      • employment_period: С какого по какое работали
      • industry: В какой индустрии/сфере работали
      • key_responsibilities: Чем занимались/за что отвечали
        • пункт_1
        • пункт_2
        • ...
      • achievements: Ваши достижения на этой позиции
        • пункт_1
        • пункт_2
        • ...
      • skills_acquired: Какие навыки приобрели
        • пункт_1
        • пункт_2
        • ...
      • technoligies: Какие технологии использовали
        • пункт_1
        • пункт_2
        • ...
  • Пример:

      experience_details:
    - total_experience: 4 года
    
    - position: Python разработчик
      company: ООО «Horns & Hooves»
      employment_period: Август 2022 — настоящее время
      industry: Веб-разработка
      key_responsibilities:
        - responsibility_1: Разработка веб-платформы для промо-кампании
        - responsibility_2: Разработка телеграм-бота для промо-кампании
      achievements:
        - Организовал структуру проекта
        - Cоздал посадочную страницу на React, обеспечивающую UX/UI-оптимизацию и взаимодействие с пользователем
        - Интегрировал API Яндекс Карт
        - Ускорил деплой на 10 минут благодаря Git + Docker-compose
        - Настроил веб-сервер при помощи Nginx и Сertbot
      skills_acquired:
        - Веб-разработка
        - Автоматическое тестирование
      technoligies:
        - Python
        - Django REST Framework
        - React
        - RabbitMQ
        - Redis
        - PostgreSQL
        - Aiogram
        - Unit tests
    
    - position: Python разработчик
      company: ПилРос
      employment_period: Сентябрь 2020 — Июнь 2022
      industry: Веб-разработка
      key_responsibilities:
        - responsibility_1: Разработка телеграм-бота на Aiogram для взаимодействия с клиентами
        - responsibility_2: Сайт-сборник проектов на Django
      achievements:
        - Разработал базу данных для хранения и обновления рабочего расписания
        - Внедрил систему мгновенных уведомлений, позволяющую оповещать клиентов об изменениях в заказах в режиме реального времени
        - Внедрил асинхронную обработку чеков API Федеральной налоговой службы
        - Интегрировал API Яндекс Карт и Яндекс Погоды
      skills_acquired:
        - UI design
      technoligies:
        - Python
        - Django
        - React
        - Redis
        - PostgreSQL
        - Aiogram
        - REST API
        - Unit tests
        - UI design
  • projects: Какие проекты вы сделали, их описание и ссылки

    • name: Имя проекта.
    • description: Краткое описание проекта.
    • link: Ссылка на проект.
  • Пример:

    projects:
      - name: Client Interaction Telegram Bot
        description: Телеграм-бот на Aiogram для взаимодействия с клиентами
        link: https://www.github.com/ivanov95/client_int_bot.git
    
      - name: mqtt-packet-parser
        description: Модуль Node.js для анализа пакетов MQTT, эффективность анализа повышена на 40%
        link: https://www.github.com/ivanov95/mqtt_packet_parser.git
  • availability: Как скоро вы готовы приступить к работе

    • notice_period: Сколько времени вам нужно, чтобы выйти на новую работу
  • Пример:

    availability:
      notice_period: 2 недели
  • salary_expectations: Ожидания по зарплате

    • salary_range: Размер/вилка по зарплате, которая вас устроит
  • Пример:

    salary_expectations:
      salary_range: от 200000 до 400000 руб
  • certifications: Есть ли у вас какие-то сертификаты, пройденные тесты или сданные экзамены по специальности

    • сертификат_1
    • сертификае_2
    • тест_1
    • ...
  • Пример:

    certifications: 
      - Certified Python Developer
      - Django Certified Solutions Architect
  • languages: Какими языками и насколько хорошо вы владеете

    • language: Язык
    • proficiency: Уровень владения (базовый, средний, продвинутый, свободно).
  • Пример:

    languages:
    - language: Русский
      proficiency: Свободно
    - language: Английский
      proficiency: Средний
  • interests: Расскажите о ваших профессиональных или личных интересах, которые могут помочь вам в работе

    • интерес_1
    • интерес_2
    • ...
  • Пример:

    interests:
      - Чат-боты
      - Машинное обучение и искусственный интеллект
      - Computer Vision/CV/Компьютерное зрение
      - Natural language processing/NLP/Обработка естественного языка
      - Кибербезопасность
      - Antifraud/Выявление мошеннических действий
  • achievements: Расскажите о ваших профессиональных и личных достижениях, которые могут создать благоприятное впечатление о вас у работодателя

    • name: Название достижения
    • description: Описание достижения
  • Пример:

    achievements:
      - name: Победитель хакатона
        description: Занял первое место в хакатоне IT Inno Hack 2023
      - name: Создатель популярного проекта mqtt-packet-parser
        description: Проект mqtt-packet-parser собрал более 300 звезд на GitHub
  • previous_job_details: Расскажите о своем опыте на предыдущей работе

    • why_leave_previous_job: Почему ушли/уходите с предыдущей работы
    • team: Как сложились ваши взаимоотношения с командой на предыдущей работе
    • boss: Как сложились ваши взаимоотношения с начальством на предыдущей работе
  • Пример:

    previous_job_details:
      why_leave_previous_job: На предыдущей работе не устраивало отсутствие карьерного роста и интересных задач.
      team: Коллектив на предыдущей работе был дружный. Все помогали друг другу и поддерживали в трудные моменты. Рабочий процесс был комфортным, а рабочая атмосфера была позитивной и доброжелательной. 
      boss: Отношения с начальством были хорошие, когда возникали трудности, мне всегда шли на встречу и были готовы помочь. Мои достижения всегда замечали и предоставляли советы, которые помогали мне развиваться
  • skills: Расскажите о своих профессиональных навыках, которые помогут вам в работе, какие технологии и инструменты вы знаете и используете

    • навык_1
    • навык_2
    • навык_3
  • Пример:

    skills:
      - Python
      - Django
      - SQL
      - Docker
      - Git
      - ...
  • general_knowledge_questions: Пункт для общих вопросов, по сути заглушка, в приложении не используется

4. src/app_config.py

Это файл содержит в себе настройки для работы приложения.

  • MONKEY_MODE - если предпочитаете работать в режиме "текст не читай, отклик прожимай", этот режим для вас, просто установите MONKEY_MODE = True. В этом режиме приложение будет откликаться на все вакансии подряд, независимо от того, подходят ли они вам по интересам или навыкам или нет.

  • DEBUG_MODE - если пока не хотите откликаться на вакансии, а просто хотите посмотреть, какое сопроводительное письмо для каждой из вакансий напишет приложение и соответственно проверить их на наличие несостыковок или просто кринжа - установите DEBUG_MODE = True. Для того, чтобы вытащить сопроводительные письма из логов LLM API, можно воспользоваться файлом src/llm/parse_llm_api_calls.py

  • FIXED_COVER_LETTER - если этот режим активирован - приложение будет использовать одно готовое сопроводительное письмо для всех вакансий вместо генерирации отдельного сопроводительного письма для каждой вакансии. Текст готового сопроводительного письма можно найти в файле strings.py, переменная fixed_cover_letter

  • JOB_IS_INTERESTING_THRESH - в нормальном режиме работы LLM оценивает степень 'интересности' каждой вакансии по шкале от 1 до 10, где 1 - вакансия абсолютно не подходит для кандидата, а 10 - вакансия подходит идеально. Данная переменная задает порог, ниже которого вакансия считается неинтересной для отклика.

  • MINIMUM_LOG_LEVEL - минимальный уровень важности сообщений, которые будут записаны в лог, от самого низкого (DEBUG), до самого высокого (CRITICAL). Я предпочитаю записывать в лог всё и вам рекомендую, поэтому по умолчанию MINIMUM_LOG_LEVEL = "DEBUG"

  • MAX_APPLIES_NUM - максимальное число откликов за один запуск приложения. Учтите, что для hh.ru есть ограничение не более чем в 200 откликов в день

  • MINIMUM_WAIT_TIME_SEC - минимальное время, затрачиваемое на один отклик на вакансию. Если приложение откликнется быстрее, оно будет ждать, пока не истечет минимальное время

  • LLM_MODEL_TYPE - LLM от какой компании предпочитаете (OpenAI, Claude, HuggingFace и т.д.)

  • LLM_MODEL - какую модель LLM предпочитаете

  • TEMPERATURE - температура модели, чем она выше, тем креативнее модель, но могут случаться галлюцинации; чем она ниже, тем строже модель следует промпту, но и креативность становится ниже

  • APPLY_ONCE_AT_COMPANY - если не хотите подаваться в одну компанию на две и более вакансии - установите APPLY_ONCE_AT_COMPANY = True

  • PRICE_DICT - словарь для подсчета стоимости работы той или иной модели LLM за один входящий/исходящий токен, позволяет оценить итоговые расходы на работу с LLM при рассылке откликов. На данный момент заполен только для GPT-4o и GPT-4o-mini, но вы можете дополнить информацией о стоимости предпочитаемых вами моделей.

5. src/strings.py

В этом файле хранятся промпты для работы с LLM, в частности промпты для ответов на вопросы определенного типа/тематики, а также резюмирования текста вакансии или (пардон за каламбур) резюме.

Большинство из этих промптов я взял из проекта AIHawk в нетронутом виде. Поменял лишь промпт на написание сопроводительного письма (так как с оригинальным промптом получался уж совсем лютый кринж), ну и добавил промпт для определения интересности вакансии для соискателя.

Если захотите что-то поменять:

  • промпт для определения интересности вакансии находится в переменной job_is_interesting

  • промпт для написания сопроводительного письма находится в переменной coverletter_template

  • текст фиксированного сопроводительного письма для всех вакансий находится в переменной fixed_cover_letter

6. data_folder_example

Папка data_folder_example содержит примеры того, как должны быть структурированы и заполнены файлы, необходимые для работы приложения. Эта папка служит практическим справочником, который поможет вам правильно настроить приложение.

Содержимое

Внутри этой папки вы найдете примеры настроечных файлов:

  • search_config.yaml
  • secrets.yaml
  • structured_resume.yaml

Эти файлы уже заполнены вымышленными, но реалистичными данными. Они показывают вам правильный формат и тип информации для ввода в каждый файл.

Использование data_folder_example

Использование этой папки в качестве руководства может быть полезным для:

  1. Понимания правильной структуры каждого конфигурационного файла
  2. Просмотра примеров допустимых данных для каждого поля
  3. Опорной точки в заполнении ваших личных файлов

Использование

  1. data_folder: Убедитесь, что данная папка содержит в себе следующие файлы, и они корректно заполнены:

    • secrets.yaml
    • search_config.yaml
    • structured_resume.yaml
  2. data_folder/output: Содержит файлы, в которые записаны результаты работы приложения.

    • answers.json список предыдущих вопросов и ответов, которые давала на них LLM в предыдущие разы, позволяет избежать повторного запуска LLM
    • failed.json список вакансий, отклики на которые не были отправлены по причине программной ошибки
    • llm_api_calls.json лог всех запросов, сделанных к LLM, и полученных на них ответов
    • skipped.json список вакансий, отклики на которые не были отправлены по иной причине (причина указана)
    • success.json список вакансий, отклики на которые были отправлены успешно
  3. Запуск:

    Просто зайдите в папку с проектом и введите в терминале:

    python main.py

    При первом запуске потребуется авторизоваться на сайте. При последующих запусках этого не потребуется, так как все данные для входа сохраняются в папке chrome_profile.

    Затем приложение введет на сайте настройки поиска и, перед тем как продолжить, попросит вас все проверить. После проверки нажмите Enter в терминале, и приложение продолжит работу. Либо ничего не делайте, и работа продолжится сама автоматически через 2 минуты.

    Дальше приложение начнет искать вакансии в соответствии с критериями поиска и откликаться на них.

    Для остановки приложения введите комбинацию клавиш Ctrl + C в терминале.

    Видео работы приложения

Проблемы

0. Ошибки во время установки.

В частности на этапе выполнения команы pip install -r requirements.txt

Проверьте версию python введя в терминал команду python и убедившись, что его версия совпадает с версией, установленной ранее и что эта версия соответствует версии, на которой проверялась работа приложения (3.12.0 или 3.12.7).

В противном случае удалите все версии python с компьютера и повторите весь процесс установки заново.

1. Ошибки OpenAI API

Сообщение об ошибке:

openai.RateLimitError: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}

Решение:

  • Проверьте настройки биллинга API OpenAI на странице https://platform.openai.com/account/billing
  • Убедитесь, что баланс положительный
  • Если нет возможности пополнить баланс со своей карточки, воспользуйтесь услугами оплаты зарубежных сервисов
  • Обратите внимание, что подписка ChatGPT Plus отличается от доступа к API
  • Если вы недавно добавили средства или обновились, подождите 12–24 часа, чтобы изменения вступили в силу

Сообщение об ошибке:

Unexpected error occurred: Error code: 403 - {'error': {'code': 'unsupported_country_region_territory', 'message': 'Country, region, or territory not supported', 'param': None, 'type': 'request_forbidden'}}

Решение:

Включите VPN, выберите любую европейскую страну или США/Канаду, должно помочь.

2. Неверная информация в сопроводительном письме к вакансии или ответах на вопросы

Проблема: Бот предоставляет неточные данные об опыте, навыках, зарплатных ожиданиях и т.д.

Решение:

  • Обновите промпты для сопроводительного письма или ответов на вопросы соответствующей тематики
  • Проверьте наличие и корректность соответствующих полей в structured_resume.yaml
  • Проверьте содерижимое файла answers.json, исправьте или удалите его по необходимости - данный файл используется для кэширования ответов LLM, поэтому может содержать ошибочные ответы от предыдущих вызовов LLm

3. Ошибка конфигурации

Сообщение об ошибке:

Ошибка конфигурации: Отсутствует или неверный тип ключа ...

или

Ошибка конфигурации: Поле '...' не может быть пустым в конфигурационном файле ...

Решение:

  • Скопируйте search_config.yaml из папки data_folder_example и меняйте в нем данные на свои постепенно
  • Скопируйте structured_resume.yaml из папки data_folder_example и меняйте в нем данные на свои постепенно
  • Убедитесь, что все отступы и пробелы в файле YAML выставлены верно
  • Используйте приложение для проверки правильности YAML файла
  • Избегайте необязательных спецсимволов и кавычек

4. Ошибки Selenium

Сообщение об ошибке:

selenium.common.exceptions.ElementNotInteractableException...

Решение

Возможно посторонние элементы на странице закрывают доступ к элементам, с которыми приложение осуществляет взаимодействие на странице сайта.

Попробуйте изменить размер окна браузера, например развернуть его на весь экран.

5. Иные ошибки

Сообщение об ошибке (Windows):

from Levenshtein.levenshtein_cpp import ( ImportError: DLL load failed while importing levenshtein_cpp: Не найден указанный модуль.

Решение

Установите Visual C++ Redistributable

6. Приложение запустилось, но не работает

Проблема: Приложение запустилось, но не начало искать вакансии или вылетело с ошибкой

Решение:

  • Проверьте не появилась ли CAPTCHA на сайте
  • Убедитесь, что файл search_config.yaml настроен корректно, и что с такими параметрами находятся хотя бы какие-нибудь вакансии
  • Посмотрите в логе или окне терминала, выводило ли приложение сообщения об ошибках и если да, то какие

Общие советы по устранению неполадок

  • Используйте последнюю версию приложения
  • Убедитесь, что все зависимости установлены и обновлены
  • Проверьте стабильность интернет-соединения
  • Закройте все открытые во время предыдущих запусков программы окна Chrome
  • Удалите папку chrome_profile, если проблемы сохраняются

Для получения дополнительной помощи создайте запрос в репозитории GitHub с подробной информацией о вашей проблеме, включая сообщения об ошибках и вашу конфигурацию (не забудьте удалить или заменить конфиденциальную информацию).

Участники

  • beatwad - автор проекта

  • feder-cr - автор оригинального проекта

XX_Auto_Jobs_Applier на данный момент находится в стадии бета-тестирования, и я был бы благодарен за ваши отзывы и предложения. Не стесняйтесь сообщать о проблемах, предлагать улучшения или отправлять pull requests, чтобы помочь улучшить проект.

Лицензия

Этот проект распространяется по лицензии MIT - см. файл LICENSE

Предупреждение

XX_Auto_Jobs_Applier, предоставляется AS IS ("как есть") и предназначен только для образовательных целей. Автор не несет ответственности за любые последствия, возникшие в результате его использования. Пользователям рекомендуется соблюдать правила соответствующих платформ и придерживаться всех законов, правил и этических принципов. Использование автоматизированных инструментов для подачи заявлений на работу может нести риски, включая ограничение или блокировку учетной записи пользователя. Действуйте с осторожностью и по своему усмотрению.

Поставь ⭐ если понравился репозиторий!

Наверх 🚀

About

XX_Auto_Jobs_Applier это приложение для автоматизации поиска работы на сайте hh.ru. Оно использует искусственный интеллект, что позволяет пользователю откликаться на множество вакансий, отвечать на вопросы и писать сопроводительные письма в автоматическом режиме, учитывая при этом интересы и резюме пользователя, а также особенности вакансии

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages