Files
santifer--career-ops/modes/ru/pipeline.md
T
wehub-resource-sync d083df1fdb
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 2s
Web CI / web typecheck + build (push) Failing after 1s
Release Please / release-please (push) Failing after 1s
CodeQL Analysis / Analyze (go) (push) Failing after 16s
chore: import upstream snapshot with attribution
2026-07-13 12:02:43 +08:00

4.1 KiB
Raw Blame History

Режим: pipeline — Очередь URL (Second Brain)

Обрабатывает URL вакансий из data/pipeline.md. Пользователь добавляет URL когда угодно, затем запускает /career-ops pipeline для обработки.

Workflow

  1. Прочитать data/pipeline.md → найти - [ ] в секции "Ожидающие" (или "Pendientes" / "Pending" — pipeline.md может содержать заголовки на любом языке)
  2. Для каждого URL: a. Зарезервировать следующий REPORT_NUM атомарно, запустив node reserve-report-num.mjs (и освободить маркер, запустив node reserve-report-num.mjs --release <num> после записи отчета) b. Извлечь JD через Playwright → WebFetch → WebSearch c. Если URL недоступен → пометить - [!] с заметкой, продолжить d. Выполнить auto-pipeline: Оценка A-F → Отчёт .md → PDF (если балл >= 3.0) → Трекер e. Переместить из "Ожидающие" в "Обработанные": - [x] #NNN | URL | Компания | Роль | Балл/5 | PDF ✅/❌
  3. Если 3+ URL, запустить агентов параллельно (Agent tool с run_in_background). Ограничение: Playwright требует ресурсов — использовать только один Playwright-агент одновременно (правило _shared.md). Все прочие шаги (WebFetch, оценка, генерация отчёта) допускают полную параллелизацию. Рекомендуемая схема: один агент с Playwright верифицирует активность вакансии; остальные агенты получают JD через WebFetch и параллельно проводят оценку.
  4. По завершении показать таблицу:
| # | Компания | Роль | Балл | PDF | Рекомендуемое действие |

Формат pipeline.md

## Ожидающие
- [ ] https://jobs.example.com/posting/123
- [ ] https://hh.ru/vacancy/12345678 | Компания | Senior Backend
- [!] https://private.url/job — Ошибка: требуется авторизация

## Обработанные
- [x] #143 | https://jobs.example.com/posting/789 | Acme Corp | AI PM | 4.2/5 | PDF ✅
- [x] #144 | https://hh.ru/vacancy/87654321 | BigCo | Backend | 2.1/5 | PDF ❌

Определение JD из URL

  1. Playwright (предпочтительно): browser_navigate + browser_snapshot. Работает со всеми SPA.
  2. WebFetch (fallback): Для статических страниц.
  3. WebSearch (последний ресурс): Поиск на вторичных порталах.

Особые случаи:

  • hh.ru: API доступен: https://api.hh.ru/vacancies/{id} — JSON с полным описанием
  • LinkedIn: Может требовать логин → пометить [!], попросить вставить текст
  • PDF: Если URL на PDF — прочитать через Read tool
  • local: префикс: Читать локальный файл. Пример: local:jds/company-role.md

Нумерация

  1. Запустить node reserve-report-num.mjs для атомарного резервирования следующего порядкового номера (stdout вернет {###}).
  2. Записать файл отчета, используя этот номер.
  3. Освободить маркер, запустив node reserve-report-num.mjs --release {###} после записи отчета.

Синхронизация источников

Перед обработкой URL:

node cv-sync-check.mjs

Если рассинхронизация — предупредить пользователя.