Одним предложением: вы уже пишете код с помощью Claude Code — почему бы не использовать его и для поиска работы? Career-Ops превращает AI-программирующий CLI в командный центр для трудоустройства: вставьте URL JD, и он автоматически оценит вакансии, сгенерирует ATS-резюме и будет отслеживать прогресс. Сам автор отфильтровал с помощью него 740+ офферов, сгенерировал 100+ персонализированных резюме и в итоге вышел на работу на позицию Head of Applied AI.
Обзор проекта
Career-Ops (также известен как careerops) — это AI-ориентированный конвейер для поиска работы, GitHub: santifer/career-ops, лицензия MIT. Его ключевая идея:
Превратить любой AI-программирующий CLI в полноценный командный центр поиска работы.
Это не очередной инструмент «AI улучшает резюме» и не бот для массовой рассылки. Философия Career-Ops — делать вычитание: из сотен офферов помочь вам отобрать только те, в которые действительно стоит подаваться, используя оценку A–F + 6 больших измерений + оптимизированный под ATS PDF + полностью автоматическое отслеживание.
Ключевые возможности (15 slash-команд):
| Сценарий | Команда | Описание |
|---|---|---|
| Вставить JD URL | /career-ops | Автоконвейер (оценка + отчёт + PDF + трекер) |
| Оценка одного варианта | /career-ops evaluate | Оценка A–F + анализ по 6 измерениям |
| Сравнение нескольких | /career-ops compare | Сортировка по нескольким офферам |
| Сканирование вакансий | /career-ops scan | 45+ преднастроенных компаний, запуск Ashby/Greenhouse/Lever API |
| Массовая оценка | /career-ops batch | Параллельный запуск claude -p workers |
| Генерация PDF | /career-ops pdf | ATS-оптимизированное резюме (шрифты Space Grotesk + DM Sans) |
| Экспорт в LaTeX | /career-ops latex | Удобный для Overleaf .tex |
| Отслеживание отправок | /career-ops tracker | Общая сводка по статусам |
| Заполнение форм заявок | /career-ops apply | Помощь AI при заполнении форм (без нажатия Submit) |
| Глубокое исследование | /career-ops deep | Исследование компании |
| Подготовка к интервью | /career-ops interview | Истории STAR+R под компанию |
| Установление контакта в LinkedIn | /career-ops contact | Поиск людей + черновик сообщения |
| Режим ретроспективы (patterns) | /career-ops patterns | Анализ отказов, оптимизация стратегии |
| Темп follow-up | /career-ops followup | Тайминг и планирование повторных контактов |
| Оценка курсов/проектов | /career-ops training / project | Путь саморазвития |
Поддерживаемые AI-программирующие CLI: Claude Code / OpenCode / Gemini CLI / Codex / Qwen / GitHub Copilot / Kimi — главное, чтобы они соответствовали open agent skill standard.
Поддержка языков: по умолчанию английский; также есть немецкий (modes/de/) / французский (modes/fr/) / японский (modes/ja/) / турецкий (modes/tr/) / упрощённый китайский (README.cn.md) / традиционный китайский (README.zh-TW.md).
Результаты: автор santifer с его помощью оценил 740+ офферов, сгенерировал 100+ персонализированных резюме и в итоге получил оффер Head of Applied AI.
Сложность / длительность / что вы получите
- Сложность: ⭐⭐ (средняя; нужно уметь пользоваться AI-программирующим CLI вроде Claude Code)
- Время: 30–60 минут на первичное onboarding (включая подготовку cv.md + настройку profile)
- Что вы получите:
- Пройдёте настоящий рабочий AI-конвейер для трудоустройства
- Поймёте дизайн архитектуры агента «User Layer vs System Layer»
- Научитесь делать точечный поиск с помощью A–F и историй STAR+R
- Увидите, как собрать open-source проект, который освещали WIRED / Business Insider
- Подготовите «в кармане» 15 slash-команд и будете использовать их каждый день в период поиска работы
Портрет целевого читателя
- Разработчики, которые сейчас ищут работу / меняют работу / смотрят возможности
- Уже пользуются Claude Code / OpenCode / Gemini CLI
- Хотят перейти с «массовых рассылок» на «точечную подачу» и не тратить время на мусорные офферы
- Хотят понять, как выглядит production-level AI-агент проект с 7k+ stars
TIP
Самые дорогие расходы в период поиска работы — это токены. В batch-режиме Career-Ops оценка 10+ офферов доставляет удовольствие, но когда вы прогоняете 100 офферов через официальные API Claude / Anthropic, за ночь счёт становится $20–40, а за месяц легко выходит пятизначная (в валюте) сумма — это нормально.
Как подключаю я (делюсь, не рекомендую): подключаю Defapi, используется Anthropic-совместимый протокол — достаточно изменить Base URL одной строкой:
# Допустим, вы используете Claude Code — поменяйте в ~/.claude/settings.json или в env
ANTHROPIC_BASE_URL=https://api.defapi.org
ANTHROPIC_API_KEY=sk-xxxxx # получить в админке defapi.org
Все модели Defapi в основном совместимы с тремя популярными наборами протоколов — v1/chat/completions (OpenAI) / v1/messages (Anthropic) / v1beta/models (Gemini) — без правок на стороне Agent: оценки prompt / истории STAR / schema трекера остаются прежними. Модель всё та же, просто закупка обходится дешевле — и токен-счёт за месяц в реальности срезается почти вдвое. Дальше в FAQ Q5 это раскрою.
Базовые зависимости и окружение
Минимальные требования:
| Проект | Требования |
|---|---|
| Node.js | 20+ |
| AI-программирующий CLI | минимум один (Claude Code / OpenCode / Gemini CLI / Codex / Qwen / Copilot) |
| Playwright | Chromium-браузер (нужен для генерации PDF) |
| ОС | macOS / Linux / Windows (WSL рекомендуется) |
Опционально / усиление:
| Проект | Зачем |
|---|---|
| Go 1.21+ | запуск TUI Dashboard |
| Google AI Studio API Key | запуск отдельного скрипта gemini-eval.mjs (бесплатная квота) |
| Chromium браузер | проверка, живы ли офферы (Playwright установит автоматически) |
| Разные LLM API Key | достаточно протокола для подключения Claude / OpenAI / Anthropic |
TIP
Не обязательно оформлять подписку Claude Max. Career-Ops — это «LLM-протокол-ориентированный» проект: любой API, совместимый с
v1/messagesилиv1/chat/completions, подойдёт (конкретные способы подключения — см. TIP выше после раздела «Целевой читатель»).
Полное дерево структуры проекта
career-ops/
├── AGENTS.md # Общие инструкции для Agent (между CLI)
├── CLAUDE.md # Специфика для Claude Code (import AGENTS.md)
├── GEMINI.md # Специфика для Gemini CLI
├── cv.md # Ваше резюме (создаёте сами, ключевой файл)
├── article-digest.md # Ваши доказательства ярких достижений (опционально)
├── config/
│ └── profile.example.yml # Шаблон вашего профиля
├── modes/ # 15 skill mode
│ ├── _shared.md # общий контекст на уровне системы
│ ├── _profile.template.md # кастомизация на уровне пользователя (ваш личный archetype)
│ ├── oferta.md # оценка одного оффера
│ ├── pdf.md # генерация PDF
│ ├── scan.md # сканирование вакансий
│ ├── batch.md # пакетная обработка
│ ├── auto-pipeline.md # URL → оценка + PDF + tracker
│ ├── de/ # режим на немецком
│ ├── fr/ # режим на французском
│ ├── ja/ # режим на японском
│ └── tr/ # режим на турецком
├── templates/
│ ├── cv-template.html # ATS-шаблон CV для оптимизации
│ ├── cv-template.tex # LaTeX-шаблон
│ ├── portals.example.yml # 45+ преднастроенных компаний
│ └── states.yml # словарь статусов отправок
├── data/ # данные отправок (gitignored)
│ ├── applications.md # основная таблица трекинга
│ ├── pipeline.md # входной ящик для URL в обработку
│ ├── scan-history.tsv # сканирование + дедупликация
│ └── follow-ups.md # история follow-up
├── reports/ # отчёты об оценке (gitignored)
├── output/ # сгенерированные PDF (gitignored)
├── jds/ # тексты JD храните тут (опционально)
├── interview-prep/ # подготовка к интервью
│ ├── story-bank.md # накопленные истории STAR+R
│ └── {company}-{role}.md # инсайты под компанию
├── batch/
│ ├── batch-prompt.md # промпт для worker'ов
│ ├── batch-runner.sh # скрипт-оркестратор
│ └── tracker-additions/ # добавления к основной таблице трекинга
├── dashboard/ # Go TUI (Bubble Tea)
│ ├── main.go
│ └── internal/
├── fonts/ # Space Grotesk + DM Sans
├── providers/ # конфигурация LLM-провайдера
├── docs/ # многоязычная документация + медиа-упоминания
├── examples/ # примеры CV / отчётов / ярких моментов
└── *.mjs # скрипты для сканирования / валидации / мерджа / health-check
Как пользователь, вам нужно трогать только 4 файла: cv.md / config/profile.yml / modes/_profile.md / portals.yml — это и есть User Layer, системные обновления не будут его затрагивать. Всё остальное пусть обрабатывает Agent.
Пошаговая инструкция
Шаг 1: Clone + установка
git clone https://github.com/santifer/career-ops.git
cd career-ops
npm install
npx playwright install chromium # нужен для генерации PDF
WARNING
Не пропускайте
npx playwright install chromium. Далее команда/career-ops pdfрендерит через Playwright, и если Chromium нет — напрямую будет ошибка «browser not found».
Шаг 2: Health check
npm run doctor
Проверит версию Node.js, Playwright, ключевые файлы и права на директории. Если упадёт — врач подскажет, чего не хватает; исправьте и запустите снова.
Шаг 3: Создайте ваш cv.md
Это источник всего конвейера — без него Agent не сможет оценить офферы.
В корне проекта создайте cv.md:
# Your Name
**Email:** [email protected]
**Location:** Berlin, Germany (CET)
**LinkedIn:** linkedin.com/in/you
**GitHub:** github.com/you
## Summary
Senior backend engineer with 6 years building distributed systems...
(цель: 2–3 абзаца, пишите «что вы делаете + ваши 1–2 сильнейшие вещи»)
## Experience
### Staff Engineer — Company A (2023 - Present)
- Led migration of X to Y, reducing Z by 40%
- (по возможности с цифрами; Agent использует это для match JD)
### Senior Engineer — Company B (2020 - 2023)
- ...
## Education
...
## Skills
Backend: Go, Python, PostgreSQL, Kafka
AI/ML: PyTorch, LangChain, RAG
...
TIP
Не хотите писать сами? После запуска Claude Code скажите ему «я вставлю своё старое резюме» / «вот мой LinkedIn URL» / «я продиктую — помоги написать», и Agent превратит это в
cv.md. В README есть подсказки для трёх сценариев onboarding.
Шаг 4: Настройте config/profile.yml
cp config/profile.example.yml config/profile.yml
Откройте config/profile.yml и заполните:
personal:
name: "Your Name"
email: "[email protected]"
location: "Berlin, Germany"
timezone: "CET"
targeting:
roles:
- "Senior Backend Engineer"
- "Staff Engineer"
- "AI Platform Engineer"
comp_target:
base_min: 130000
base_target: 160000
currency: "EUR"
remote_preference: "remote-first"
deal_breakers:
- "no on-call"
- "no Java"
- "no < 20 person startups"
# Если хотите режимы на китайском / немецком / французском / японском / турецком — добавьте эту строку
# language:
# modes_dir: modes/de
WARNING
Не меняйте
modes/_shared.mdвручную. Системные обновления перезапишут его. Ваш личный archetype / формулировки для переговоров / цели по зарплате — всё записывайте только вmodes/_profile.mdилиconfig/profile.yml. Это правило Data Contract, которое многократно подчёркивается в README.
Шаг 5: Настройте portals.yml
cp templates/portals.example.yml portals.yml
По умолчанию включены 45+ компаний и 19 поисковых query — покрытие:
# AI Labs
- anthropic
- openai
- mistral
- cohere
# Voice AI
- elevenlabs
- vapi
- deepgram
# AI Platforms
- retool
- airtable
- vercel
- temporal
Хотите добавить свои компании, за которыми следите — просто добавьте их в portals.yml. Job board покрывает Ashby / Greenhouse / Lever / Wellfound / Workable / RemoteFront.
Шаг 6: Пусть Agent поможет вам «Onboard»
# выберите один из установленных AI CLI
claude # Claude Code
# или
gemini # Gemini CLI
# или
opencode # OpenCode
# или
codex # Codex
В CLI скажите:
Настрой мне career-ops. Я только что клонировал проект, cv.md и config/profile.yml уже заполнены.
Проверь, полный ли мой onboarding, и что ещё стоит добавить.
Agent прогонит проверку при запуске:
cv.mdесть? ✅config/profile.ymlнастоящий (не.example)? ✅modes/_profile.mdсделан как копия из_profile.template.md? ⚠️portals.ymlнастоящий (не.example)? ✅
Любой ❌ переведёт в режим гида, где 1:1 подскажет, что нужно до заполнить.
TIP
При первом запуске Agent сам спросит: «кадровое достижение, которым вы больше всего гордитесь?», «какие ваши deal-breaker?», «в чём ваша суперсила?» — потрать 5 минут на вдумчивые ответы. Эта часть попадёт в
modes/_profile.md, и именно от этого будет зависеть, насколько точной будет оценка в дальнейшем. В первую неделю это ощущается как onboarding нового рекрутера, а во вторую — он начнёт разбираться в вас лучше, чем большинство реальных recruiter’ов.
Шаг 7: Первая оценка
Вставьте Agent URL JD:
/career-ops https://jobs.anthropic.com/staff-software-engineer-applied-ai
Agent прогонит полностью автоматизированный конвейер:
- Определение archetype — классифицирует в LLMOps / Agentic / PM / SA / FDE / Transformation
- Оценка A–F — 6 измерений (Role summary / CV match / Level strategy / Comp research / Personalization / Interview prep)
- Генерация отчёта — записывает в
reports/001-anthropic-2026-06-09.md - Генерация PDF — рендерит ATS-резюме через Playwright и выводит в
output/001-anthropic-cv.pdf - Запись в трекер — добавляет строку в
data/applications.md - Проверка целостности pipeline — запускает
node verify-pipeline.mjsдля health-check
Через 30–60 секунд вы должны увидеть: полный отчёт об оценке + PDF ATS-резюме.
WARNING
Первая оценка будет неточной. Система ещё не знает вас — вероятны завышенные или заниженные баллы. Не переживайте: прогоните 3–5 оценок, а по результатам скажите Agent «этот скор я не согласен, потому что XX» / «я не упоминал, что у меня есть опыт XX» — и Agent запишет это как выученное в
modes/_profile.md. Чем больше прогонов, тем точнее.
Шаг 8: Первая сканировка
/career-ops scan
или эквивалентно:
node scan.mjs # без токенов, только захват данных по API
node scan.mjs --verify # API + повторная валидация через Playwright, фильтрация просроченных вакансий
После одного прохода (45+ преднастроенных компаний + 19 поисковых query) обычно появляется 200–500 новых вакансий — они сразу попадут во входной ящик data/pipeline.md. Затем claude -p workers параллельно запускают оценку; обработать за одну ночь 100+ офферов — не мечта.
Шаг 9: Запуск TUI Dashboard (опционально)
Если вы хотите смотреть прогресс в терминальном UI:
cd dashboard
go build -o career-dashboard .
./career-dashboard --path ..
6 фильтров вкладок, 4 режима сортировки, групповой/плоский вид, ленивые превью, состояние меняется при выборе. Тема Catppuccin Mocha — выглядит отлично.
Шаг 10: Обновление системы (важно!)
Career-Ops развивается быстро — раз в пару недель появляются новые modes / новые конфигурации компаний.
# в корне проекта, попросите Agent проверить
claude # скажите ему: «проверь, есть ли у career-ops новая версия»
Agent автоматически запускает node update-system.mjs check, JSON-вывод выглядит примерно так:
{"status": "update-available", "local": "1.3.0", "remote": "1.4.0", "changelog": "..."}
Он сообщит: «v1.3.0 → v1.4.0 доступно, ваши данные (CV / profile / tracker / reports) не будут тронуты, обновляться?» Для обновления:
node update-system.mjs apply # обновить
node update-system.mjs rollback # если не понравилось — откатить
Частые вопросы и диагностика
Q1: cv.md не найден / Agent зависает на onboarding
Самая частая причина: cv.md лежит не в корне проекта.
# проверьте, что файл в корне
ls -la cv.md
# должно быть что-то вроде -rw-r--r-- cv.md
# если нет — создайте (в корне)
cd career-ops
touch cv.md
# затем заполните содержимое
Q2: Ошибка генерации PDF, «browser not found»
Не установлен Playwright или не установлен Chromium:
npx playwright install chromium
# если в сети из России всё медленно, можно добавить mirror
PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwright npx playwright install chromium
Q3: Оценки завышены / занижены
Так бывает в первую неделю. Исправление:
- Прогоните 3–5 оценок — каждый раз дайте Agent обратную связь «с этим скором я не согласен, потому что XX»
- Agent запишет это в
modes/_profile.md - Сфокусируйтесь на том, есть ли дополняющее в
modes/_profile.md: ваша минимальная зарплата / предпочтение по удалёнке / позиционирование роли / reverse case
Важно: персонализированный контент записывайте в
modes/_profile.mdилиconfig/profile.yml, не меняйтеmodes/_shared.md— он будет перезаписан системными обновлениями.
Q4: Верификация WebSearch / WebFetch — насколько точно
Не точно. Внутреннее правило Career-Ops: обязательно верифицировать, что оффер ещё жив, через Playwright:
# через slash-команду, внутри запустится Playwright
/career-ops verify --url <JD_URL>
В batch-режиме (
claude -p) Playwright недоступен — будет пометка**Verification:** unconfirmed (batch mode), и вы должны перепроверить вручную.
Q5: В batch-оценке токены начинают «улетать»
При оценке 100+ офферов за ночь легко набирается счёт более $20. Исправление в три шага:
- Уменьшить количество batch — прогоняйте по 10–20 за раз, не сканируйте сразу 100+
- Локальная модель в качестве запасного варианта — структурированные задачи типа
ofertas(для сравнения) /tracker/pdfможно заменить локальными небольшими моделями - Подключить Defapi API со скидкой — протокол полностью совместим; вы используете тот же тип модели, но месячный счёт выходит почти вдвое ниже (конкретная настройка — в TIP после раздела «Целевой читатель»)
Q6: Хотите сменить режим на немецкий / французский / японский / турецкий
# 1. Отредактируйте config/profile.yml
language:
modes_dir: modes/de # или fr / ja / tr
Или просто скажите Agent: «запусти на немецком», и он переключит логику оценок на modes/de/ (с локальными терминами рынка DACH: 13. Monatsgehalt / Probezeit / AGG / Tarifvertrag и т. п.).
WARNING
После переключения на
modes/de/вы будете прогонять и английские вакансии через немецкую оценку. Если вы подаёте не только на немецкие вакансии — оставляйте режим по умолчанию английским и вручную переключайте только для немецких офферов.
Q7: В полях статусов появляется «грязная» разметка вроде **Applied**
Статус трекера был вручную выделен жирным. Исправление:
node normalize-statuses.mjs # нормализация статусов
node dedup-tracker.mjs # дедупликация
node verify-pipeline.mjs # health-check
Дальше замените в templates/states.yml на canonical статусы.
Дополнительное чтение / направление для углубления
- User Layer vs System Layer: это самая интересная часть инженерного дизайна Career-Ops —
modes/_profile.md(user) никогда не перезаписываетсяmodes/_shared.md(system). Вся персонализация для onboarding остаётся при системных обновлениях: хоть 100 раз обновляй систему — ничего не пропадёт. Рекомендуется прочитатьDATA_CONTRACT.md, чтобы понять полную картину - Сменить archetype: скажите Agent «change the archetypes to data engineering roles» — он поменяет
modes/_profile.md, а неmodes/_shared.md - Переключение языков: при подаче на вакансии DE/FR/JP/TR переключайте
modes/{de,fr,ja,tr}/— логика оценок автоматически локализуется (включая местные термины вроде CDI / 賞与 / 通勤手当) - Углубление TUI Dashboard: dashboard написан на Go + Bubble Tea + Lipgloss, цветовая схема Catppuccin Mocha. Исходники в
dashboard/internal/; чтобы добавить кастомные фильтры/сортировки — правьте там - Банк историй STAR+R:
interview-prep/story-bank.mdнакапливает ваши истории «Situation + Task + Action + Result + Reflection» через оценки; после 3–5 оценок у вас появится 5–10 историй, с которыми можно закрыть практически любые поведенческие вопросы на интервью - Fork-подборка портфолио: портфолио автора тоже open-source — santifer/cv-santiago. Там есть AI-чат-бот + панель LLMOps + case studies — форкните и переделайте под себя
GitHub репозиторий: santifer/career-ops. Многоязычная документация лежит в README.{cn,es,ja,ko-KR,pt-BR,ru,ua,zh-TW}.md. Философию дизайна смотрите в DATA_CONTRACT.md. Медиа-упоминания — в docs/press/. Roadmap — в ROADMAP.md (если не находится в проекте, попросите Agent: «show me your roadmap»).