HH.RU можешь не давать мне API, я сделаю playwrite бота 🫵

У меня нет воронок, я не инфо-циг... "продавец" поэтому в каком то смысле я не могу стать тем кого презираю даже несмотря на то что многие люди лицемерны и много кто такую двойную жизнь ведет, но речь тут не об этом.

Захотели внедрять ИИ - будет и обратка в виде скрипта автонапоминания и спама о том что бы вы не забывали крутых специалистов и помнили о наших выполненных тестовых заданиях и давали нормальную обратную связь

Сливаю вам часть своего бота по контр-откликам и напоминаниям несправедливому it рынку

def parse_args(argv: Sequence[str] | None = None) -> argparse.Namespace:     parser = argparse.ArgumentParser(         description="Рассылка сообщений по откликам hh.ru старше суток",         epilog='Пример: python3 send.py "Здравствуйте, подскажите по обратной связи"',     )     parser.add_argument("message", help="текст сообщения работодателю")     parser.add_argument(         "--min-age-hours", type=int, default=DEFAULT_MIN_AGE_HOURS, help="возраст отклика в часах (по умолчанию 24)"     )     parser.add_argument(         "--states",         default=None,         help="статусы через запятую (по умолчанию: API — response; браузер — response,invitation,interview)",     )     parser.add_argument("--repeat-after-days", type=int, default=None, help="разрешить повтор через N дней")     parser.add_argument("--limit", type=int, default=None, help="максимум сообщений за запуск")     parser.add_argument("--max-pages", type=int, default=10, help="сколько страниц списка читать (браузер)")     parser.add_argument(         "--newest-first",         action="store_true",         help="идти от новых откликов к старым (по умолчанию — со старых, они чаще «затихшие»)",     )     parser.add_argument("--delay", type=float, default=DEFAULT_DELAY, help="пауза между отправками, сек")     parser.add_argument("--no-chat-check", action="store_true", help="не заглядывать в переписку (быстрее, грубее)")     parser.add_argument(         "--browser",         action="store_true",         help="работать через браузер (вашу сессию hh.ru) вместо API; нарушает правила hh.ru",     )     parser.add_argument("--dry-run", action="store_true", help="показать план без отправки")     parser.add_argument("--quiet", action="store_true", help="только итоговая сводка")     args = parser.parse_args(list(argv) if argv is not None else None)     if not args.message.strip():         parser.error("сообщение не может быть пустым")     if args.min_age_hours < 0:         parser.error("--min-age-hours не может быть отрицательным")     return args

def _states(raw: str | None, default: frozenset[str]) -> frozenset[str]:     if not raw:         return default     return frozenset(part.strip() for part in raw.split(",") if part.strip()) or default

def _run_api(args, reporter: hc.ConsoleReporter) -> hc.Stats:     repository = hc.NegotiationsRepository(hc.build_client())     history = hc.ActionHistory(HISTORY_FILE)     policy = FollowUpPolicy(         min_age=timedelta(hours=args.min_age_hours),         states=_states(args.states, DEFAULT_STATES),         history=history,         repeat_after=timedelta(days=args.repeat_after_days) if args.repeat_after_days else None,         probe=None if args.no_chat_check else repository,     )     broadcaster = FollowUpBroadcaster(repository, policy, history, reporter, delay=args.delay)     return broadcaster.run(args.message.strip(), limit=args.limit, dry_run=args.dry_run)

def _run_browser(args, reporter: hc.ConsoleReporter) -> hc.Stats:     import hh_browser as hb

history = hc.ActionHistory(HISTORY_FILE)     with hb.browser_backend() as (reader, sender):         repository = hb.BrowserNegotiationsRepository(             reader, sender=sender, max_pages=args.max_pages, reverse=not args.newest_first         )         policy = policy_for_browser(args, history, repository)         broadcaster = FollowUpBroadcaster(repository, policy, history, reporter, delay=args.delay)         return broadcaster.run(args.message.strip(), limit=args.limit, dry_run=args.dry_run)

#it #ищуработу #aibot #ai #hh #hr

HH.RU можешь не давать мне API, я сделаю playwrite бота 🫵 | Сетка — социальная сеть от hh.ru