Браузерное приложение для Google Chrome

Юрий12 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
30.11.2018

Задача сделать браузерное приложение для гугл хром, которое будет работать с сайтом hh.ru.

Браузерное приложение - это бот и выполняет 2 главных функции:

- имитирует рассылку резюме по вакансиям по заданным критериям;

- имитирует нажатие кнопки “обновить дату” в резюме пользователя.

Для работы приложения используется серверная часть, которая находится на сервере заказчика и связана с сайтом ----.ru.

Для обеспечение работы бота необходимы следующие возможности приложения:

1. Авторизация.

Пользователь регистрируется или авторизуется на сайте hh.ru

Далее скачивает приложение архивом или устанавливает его сразу с интернет-магазина хром.

При запуске приложения и находясь авторизованным на hh.ru, программа добавляет на сайт свой код в разделе “Мои резюме”. Обычно это адрес hh.ru/applicant/resumes

Интерфейс сайта до активации приложения: http://joxi.ru/vAWdBMU1xoaWrW.jpg

Нам нужен этот блок: http://joxi.ru/LmGbw4ceNzLxrl.jpg 

Интерфейс с активированным приложением в блоке Мои резюме: 

http://joxi.ru/brRBwjCJRpv9r1.jpg - появились 3 элемента:

  • доступно отправок
  • общий дневной лимит
  • чекбокс “обновление даты”
  • переключатель
2. Элементы: доступно отправок, чекбокс “обновление даты”, переключатель.

  • Доступно отправок.

    • Это ссылка, при клики на которую открывается в новом окне (заказчик укажет ссылку позже).
    • Количественный показатель (на примере это 100) редактируется в базе данных на серверной части, если значение равно 0, бот не выполняет отправки, значение привязывается к пользователю hh.ru. У каждого пользователя, а точнее, у каждого аккаунта hh.ru есть свой id пользователя, его нужно связываться со значением доступных отправок.
  • Общий дневной лимит - это оставшееся дневное количество отправок. 

    • Сайтом hh.ru установлен дневной лимит 200 отправок резюме. Так как резюме несколько и в каждом резюме может быть несколько разных рассылок, на каждую рассылку можно выставить свой лимит, чтобы распределить все рассылки. Ниже к этому еще вернемся в пункте “4. Критерии поиск вакансия для отправки на них резюме”.
    • Сама надпись кликабильна, при клики на которую открывается в новом окне (заказчик укажет ссылку позже).
  • Чекбокс “обновление даты” - при выставлении галочки в чекбокс бот будет заходить по соответствующему адресу для данного резюме и нажимать “Обновить дату”. 

    Кнопка находится в резюме здесь:http://joxi.ru/zANbw4cBo1MXA9.jpg

    • Если резюме несколько обновляется, в верху списка будет то резюме, которое самое свежее по дате. Именно это и будет являться приоритетом запуска бота для отправки резюме, если бот запущен в нескольких резюме, приоритет по самой свежей дате.
    • Нажатие чекбокса не связано с Переключателем из пункта выше, даже если Переключатель выключен, а чекбокс зажат, автообновление работает. Изначально это две функции, включаемые отдельно.
    • Промежуток нажатия кнопки является переменным значением между “4 ч:01 мин:11 сек” и “4 ч:04 мин:58 сек”. Если в счетчике нет секунд, то тогда промежуток будет между “4 ч:01 мин” и “4 ч:05 мин”. Эти значения можно настроить на серверной части.
    • Если скрипт заходит в момент, когда кнопка не активна (например, в ручную пользователь сам обновил 2 часа назад резюме), то второй раз на проверку скрипт зайдет опять через заданный промежуток между “4 ч:01 мин:11 сек” и “4 ч:04 мин:58 сек”.
  • Переключатель - когда он активен, выдвигаются под соответствующим резюме критерии настройки запуска бота для рассылки резюме по вакансиям. Бот не будет работать, если переключатель выключен. Включенный переключатель раскрывает элементы:

    • Сопроводительное письмо.
    • Критерии поиск вакансия для отправки на них резюме.
3. Сопроводительное письмо.

Надпись кликабельна, по клику разворачивает текст.

Вариации интерфейса:

- когда текст не сохранен: http://joxi.ru/KAx31XIMGG8128.jpg

- когда текст сохранен: http://joxi.ru/Y2Lbw4c9WWqvr6.jpg

- когда развернуто и нет текста: http://joxi.ru/gmvaxOTLGGZdra.jpg

- когда развернуто и есть текст: http://joxi.ru/52axwyc4QQvXm0.jpg

- когда кликнули в поле (оно активно для ввода текста), пример, если там уже есть текст:

http://joxi.ru/5mdyDoTkQQPL21.jpg

Сохранение текста идет на серверную часть и привязан к конкретному резюме в профиле по id на hh.ru

4. Критерии поиск вакансия для отправки на них резюме.

Вариации интерфейса:

- когда еще ничего не создано: http://joxi.ru/p270J1TodRq4A7.jpg

- без зажатого чекбокса о принятии правил кнопка “добавить критерии поиска” не кликабельна

- ссылка “правила” открывают внешнюю ссылку (заказчик укажет ссылку позже)

- когда созданы критерии, они отображаются в таком виде: http://joxi.ru/n2YlwBto19JEm6.jpg 

Пояснения к названиям:

  • Переключатель - включить или выключить работу бота. Если переключатель включен, то каждый раз выключая и включая приложение в браузере или закрывая и открывая сам браузер, бот начинает запускатся если лимит не исчерпан и количество отправок не равно 0.
  • Нумерация - очередность создания. Это приоритетность запуска бота по резюме. Приоритет запуска бота по резюме было описано выше в пункте “Чекбокс “обновление даты””.
  • Поисковые фразы по вакансиям - название ключевых слов по которым ищет вакансию, их может быть несколько, могут быть различные уточнения. Количество слов не ограничено поиском hh, но визуально отображать в этом интерфейсе не более 256 символов или не более 4 строчек.
  • Редактирование критериев - по нажатию “карандаша” или по нажатию на текст поисковой фразы можно будет отредактировать критерии поиска и сохранить изменения.
  • Лимиты - о чем писалось ранее, это ограничение количества отправок в день.
  • Вакансии - количество всех вакансий, найденных по заданным критериям поиска.
  • Отклики - количество отправленных резюме на вакансии за весь период.
  • Отказы - количество полученных отказов по тем вакансиям, которые были найдены и на которые были отправлены резюме, актуальная информация собирается в этом разделе сайтаhttps://novosibirsk.hh.ru/applicant/negotiations (отклики и приглашения)
  • Приглашения - аналогично отказам, только статус положительный (приглашен).
  • Крестик - удалить данную строку сохраненных критериев поиска.
5.Добавление критерия поиска.

На hh.ru это называется расширенный поиск: http://joxi.ru/eAObwMcxovza2o.jpg 

Расширенный поиск на hh (поиск вакансий): https://hh.ru/search/vacancy/advanced 

Именно то, что туда вводится, начиная от самого текста поиска и заканчивая выводом вакансий за период (месяц, неделя, 3 дня, сутки) - это и есть критерии поиска.

Выполняются 2 функции:

1 - вывод данный поиска на экран пользователя в виде выпадающего блока расширенного поиска, таким же образом происходит и редактирование уже сохраненного критерия поиска:

http://joxi.ru/v29vgDT3Kn8jAG.jpg 

2 - вместо кнопки “найти” отображается кнопка “добавить критерий поиска” именно к этому резюме: http://joxi.ru/n2YlwBto193pm6.jpg

Единственный не нужный пункт расширенного поиска: http://joxi.ru/Vm6GNzCDW9GW2Z.jpg 

6. Запуск бота. 

  • Порядок обработки ботом вакансий для отправки является порядок найденных вакансий, по этому это будет являтся не маловажным критерием расширенного поиска:http://joxi.ru/Q2Kbw4c467Ykmj.jpg
  • Какие вакансии бот пропускает и не рассылает резюме:

    • Если вакансия при нажатии на кнопку “откликнутся” предлагает пройти тест.
    • Если на вакансию уже был сделан отклик:http://joxi.ru/BA08xOcJ8aLJAy.jpg
    • Если возникает иная ошибка. Бот не останавливается, а продолжает дальше.
    • Дневной лимит 200 отправок. Попробовать отправить 201 резюме - чтобы походило на имитацию человека.
    • Повторное возобновление запуска бота в промежутке между 24 ч:01:м и 24 ч:23:м.

      Эти значения можно настроить на серверной части.

  • Промежуток между отправками это переменное значение в секундах от 14 до 26.

    Эти значения можно настроить на серверной части.

  • Если у пользователя несколько резюме, система hh всегда будет спрашивать какое резюме отправить, скрипт должен выбирать соответствие того резюме, которое он рассылает.
  • Некоторые вакансии обязательно спрашивают присутствие текста сопроводительного письма. Если не установлен текст сопроводительного письма, а вакансия это запрашивает, бот пропускает данные вакансии.
  • Бот не должен делать рассылку, если в этот момент запущена другая страница сайта hh.
Можно сделать одно из двух решений:

- Либо он полностью останавливается и вручную его нужно вкл. переключателем.

- Либо он останавливается и делает паузу до закрытия всех вкладок, кроме 1 единственной страницы “Мои резюме”.

  • Нельзя, чтобы бот во время рассылки одновременно и делал “обновление даты”.

    Бот может делать только одну операцию во времени.

  • Каждый день бот делает новый поиск по критериям и получая список актуальных вакансий, продолжает делать отправку резюме, пропуская те, на которые уже ответил.
7. Дополнительные обязательные условия работы.

  • У браузерного приложения будут версии разработок, это должно быть записано в приложение.

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

  • Бот работает под ip-адресом пользователя, то есть под каким ip-адресом заходит пользователь на свое устройство, такой адрес и отображается у бота. Пользователь может зайти из дома, с рабочего места, с wi-fi.
  • Нельзя использовать запуск бота с нескольких вкладок, с нескольких браузеров, с нескольких устройств, а тем более с нескольких ip-адресов. То есть заходить и настраивать приложение можно, но процесс рассылки может быть идти только 1-м потоком. Да, он может чередоваться, если человек переходит из одного устройства на другое (при переходе соответственно бот будет останавливаться).
  • Бот работает тогда, когда открыт браузер и пользователь авторизован на hh.ru, даже если нет открытых вкладок hh.ru. Бот работает фоном в том случае, если включены требуемые “переключатели” и зажаты нужные “чекбоксы”.
-----

Проверочным заданием будет запуск рассылок с заданными критериями поиска и проверка "обновления даты".

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

- имитацию рассылки резюме по вакансиям по заданным критериям в разных пользователях с разными резюме;

- имитацию нажатия кнопки “обновить дату” в резюме нескольких разных пользователях.

Заявки фрилансеров