init
This commit is contained in:
commit
d295c7f139
1527 files changed
+270726
No files matched your search
@@ -0,0 +1,58 @@
|
||||
# Режим: 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
|
||||
```
|
||||
Если рассинхронизация — предупредить пользователя.
|
||||
Reference in new issue
Block a user