Files
career-ops-vbleroy/modes/ru/pipeline.md
T
redlineo d295c7f139
Release Please / release-please (push) Failing after 4m2s
Web CI / web typecheck + build (push) Successful in 3m39s
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 1h1m49s
CodeQL Analysis / Analyze (go) (push) Failing after 1h1m49s
init
2026-07-13 10:14:00 +03:00

59 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Режим: 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
```markdown
## Ожидающие
- [ ] 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:
```bash
node cv-sync-check.mjs
```
Если рассинхронизация — предупредить пользователя.