BC jobwatch
Автономный наблюдатель рынка труда для OpenClaw. По расписанию cron отслеживает страницы вакансий компаний, которые пользователь ЯВНО настроил, оценивает каждую вакансию по профилю пользователя (виза / уровень должности / красные линии) с помощью LLM, отправляет подходящие совпадения, обрабатывает остальные ежедневно и архивирует вакансии в базу знаний; он также отслеживает статус заявки пользователя и отвечает на вопросы о его собственных отслеживаемых вакансиях. КОНФИДЕНЦИАЛЬНОСТЬ И ВОЗМОЖНОСТИ (см. раздел «Конфиденциальность и поток данных»): этот модуль собирает и хранит личный профиль поиска работы (текст резюме, визовые потребности, уровень должности, красные линии); отправляет отслеживаемые URL-адреса и текст описания вакансии сторонним службам (скрейперы Firecrawl / Jina, конечная точка LLM, совместимая с OpenAI, и база знаний 2brain); считывает учетные данные хоста OpenClaw / Telegram только тогда, когда пользователь выбирает эту опцию (JOBWATCH_ALLOW_HOST_CREDS=1); и регистрирует повторяющуюся задачу cron — каждое автономное действие происходит только после явного шага согласия на онбординг. Используйте ТОЛЬКО тогда, когда пользователь явно хочет автоматического мониторинга вакансий для своего поиска — не при случайном упоминании вакансий. Активируйте, когда пользователь просит настроить или запустить мониторинг вакансий, отслеживать страницы вакансий конкретных компаний, сообщает об обновлении своей заявки или спрашивает о своих отслеживаемых / подходящих вакансиях. Триггеры — только императивные запросы; простое упоминание вакансий, карьеры или 求职 НЕ должно активировать этот модуль: «настроить jobwatch для меня», «начать мониторинг вакансий для моего поиска», «отслеживать страницу вакансий <компании> для меня», «я подал заявку на <конкретную вакансию>», «jobwatch лучшие вакансии на этой неделе», «帮我设置求职监控», «开启求职监控», «帮我盯 <公司> 的岗位», «我投了 <职位>». Если пользователь просто обсуждает или спрашивает о вакансиях в целом, не активируйте. Перед первым вопросом об онбординге — и до сбора каких-либо данных профиля, чтения каких-либо учетных данных или регистрации какой-либо задачи cron — укажите, что будет собираться и отправляться модулем, и получите явное согласие «да».
машинный переводПоказать оригиналСкрыть оригинал«Autonomous job-market watcher for OpenClaw. On a cron schedule it moni…»
Autonomous job-market watcher for OpenClaw. On a cron schedule it monitors the career pages of companies the user has EXPLICITLY configured, judges each posting against the user's own job profile (visa / seniority / red lines) with an LLM, pushes strong matches, digests the rest daily, and archives postings into a knowledge base; it also tracks the user's application status and answers questions about their own watched jobs. PRIVACY & CAPABILITIES (see the Privacy & Data Flow section): this skill collects and stores a personal job-seeking profile (resume text, visa needs, seniority, red lines); sends watched URLs and job-description text to third-party services (Firecrawl / Jina scrapers, an OpenAI-compatible LLM endpoint, and a 2brain knowledge base); reads host OpenClaw / Telegram credentials only when the user opts in (JOBWATCH_ALLOW_HOST_CREDS=1); and registers a recurring cron job — every autonomous action happens only after an explicit onboarding consent step. Use ONLY when the user clearly wants automated job monitoring for their own search — not on casual mention of jobs. Trigger when the user asks to set up or run job monitoring, to watch specific companies' careers pages, reports their own application update, or asks about their own watched/matched jobs. Triggers — imperative requests only; a bare mention of jobs, careers or 求职 must NOT activate this skill: 'set up jobwatch for me', 'start job monitoring for my search', 'watch <company>'s careers page for me', 'I applied to <specific job>', 'jobwatch top jobs this week', '帮我设置求职监控', '开启求职监控', '帮我盯 <公司> 的岗位', '我投了 <职位>'. If the user is only discussing or asking about jobs in general, do not activate. Before the first onboarding question — and before any profile data is collected, any credential is read, or any cron job is registered — state what the skill will collect and send, and get an explicit yes.
Автономный наблюдатель рынка труда для OpenClaw.
Как процесс C 62/100 · Есть пробелы — слабые места: результат и критерий готовности, повторный запуск
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Как улучшить
- Сократите description до 1024 символов.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 2
✓ Критических и высоких находок нет
Средние и низкие: 2
-
средняя Утечка данных
net-redirectable-api-keyscripts/common.py:342Скрипт отправляет API-ключ на хост из переменной окружения — ключ можно перенаправить на другой серверAPI key + configurable base URL from environment
-
низкая Утечка данных
exfil-webhook-urlscripts/notify_telegram.py:32URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (хост вендора самого скилла; в кавычках — упоминание, а не команда)f"https://api.telegram.org/bot{token}/sendMessage",vendor-hostв кавычках
Просканировано файлов: 25. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- ошибка
description-longdescription 1893 символов, лимит 1024 - заметка
description-budgetdescription занимает 1893 из общего бюджета ~15000 символов на все скиллы
Процессный рейтинг: все десять параметров 62/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 30Повторный запуск. Изменяющих операций: 26, без проверки текущего состояния
- 50Ошибки и развилки. Развилок: 0, есть раздел про ошибки
- 60Инструменты и файлы. Используются инструменты (bash, web, python), но во frontmatter они не объявлены
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 70Входы и предусловия. Входные данные и предусловия перечислены
- 70Стоимость исполнения. Тело инструкции 4961 токенов
- 100Шаги. Шагов: 41
- 100Согласованность. Имя и обязательные поля на месте
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- high Скилл велит модели самой совершать необратимое действие, без подтверждения человеком
- low Ответ описан самодельной разметкой (12 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 1893: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- -35 из 14 скриптов не упомянуты в SKILL.md
- +1Лицензия не указана
- +2Инструкции на одном языке
- +4Структура: 11 заголовков
- +3Пошаговые инструкции: 41 пунктов
- +4Есть примеры (2 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (1 из 1)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 54.