career-ops — open-source AI-агент поиска работы, который живёт прямо в вашем AI-CLI
📂 Исходный код на GitHubOpen-source AI-агент для поиска работы, который работает локально внутри вашего AI-CLI: оценивает вакансии по вашему резюме, готовит ATS-совместимые CV и черновики откликов, сканирует порталы компаний — и оставляет финальное решение за человеком
career-ops — AI-агент поиска работы, который живёт прямо в вашем AI-CLI
career-ops (он же careerops) — это open-source агент для поиска работы. Он запускается локально внутри вашего AI-CLI: Claude Code, Codex, OpenCode и других. Схема простая: вставляете вакансию, а агент проверяет, открыта ли она ещё, оценивает, насколько она подходит под ваше резюме, готовит tailored CV и черновики ответов. Финальное слово всегда за человеком: агент никогда не отправляет отклики сам.
Автор проекта — Сантьяго Фернандес де Вальдеррама Апарисио (santifer). Он собрал career-ops для собственного поиска работы, и система отработала: 740 разобранных вакансий, 68 откликов, 12 интервью, один оффер. Он получил роль Head of Applied AI, а через полгода ушёл из неё и занялся проектом полный день.
Идея автора хорошо ложится в текущую реальность найма: компании уже используют AI, чтобы фильтровать кандидатов. career-ops даёт AI самим кандидатам — чтобы они могли выбирать компании, а не только проходить отбор.
Как это работает
Ядро системы — конвейер, который запускается одной вставкой URL вакансии или текста описания:
Вы вставляете URL вакансии или её описание
│
▼
┌──────────────────┐
│ Archetype │ Определяет тип роли: LLMOps / Agentic / PM / SA / FDE
│ Detection │
└────────┬─────────┘
│
┌────────▼─────────┐
│ A–H Evaluation │ Совпадение с CV, пробелы, вилки, STAR-истории, легитимность
│ (читает cv.md) │
└────────┬─────────┘
│
┌────┼────┐
▼ ▼ ▼
Отчёт PDF Трекер
.md .pdf заявки
Основной этап — оценка по блокам A–H. Агент резюмирует роль, сверяет её с вашим резюме (cv.md) и оценивает каждое требование. Важная деталь: для каждого требования указано, насколько оно критично, и откуда взялся этот вес — из текста вакансии, из её структуры или из оценки модели. Прикидка модели никогда не попадает в высший диапазон. Блок G проверяет легитимность вакансии: жива ли она ещё и не является ли репостом. Отдельный сигнал ловит прямые запреты на спонсорство визы.
Что умеет
- ATS-совместимые PDF. tailored CV под каждую вакансию на основе вашего опыта. Генерация через HTML-шаблон и Playwright, шрифты Space Grotesk и DM Sans.
- Сопроводительные письма. Автоматически черновик создаётся после каждой оценки; генерация — через
/career-ops cover, тот же PDF-конвейер. - Больше, чем резюме. Режим
deepисследует компанию: AI-стратегия, свежие новости, инженерная культура. Режимcontactoнаходит нанимающего менеджера или рекрутёра и готовит сообщение до 300 символов, настроенное под тип контакта. Режимemailготовит черновик официального письма с темой и чек-листом вложений. - Сканер порталов. Свыше 100 преднастроенных компаний (Anthropic, OpenAI, ElevenLabs, Retool, n8n и другие) плюс 55+ модулей к ATS-платформам: Greenhouse, Lever, Ashby, Wellfound. Флаг
--verifyперепроверяет вакансии через Playwright и отсеивает закрытые. - Анализ паттернов. Скрипты
analyze-patterns.mjsиstats.mjsпоказывают, где вы проходите дальше всего, аdetect-reposts.mjsловит «призрачные» вакансии по репостам. - Подготовка к интервью. Банк STAR-историй накапливается между оценками: 5–10 базовых историй под behavioural-вопросы. Отдельные режимы ведут практику с фидбеком, разбор после интервью и даже детектор красных флагов работодателя.
- Оффер-стейдж. Помощник по чтению контракта со списком вопросов юристу и анализатор разрыва между желаемой и предложенной зарплатой (
salary-gap.mjs). - Трекер и дашборд. Каждая заявка попадает в трекер. Терминальный TUI-дашборд на Go и Bubble Tea позволяет смотреть воронку, фильтровать и менять статусы.
- Batch-обработка. Параллельная оценка вакансий через headless-воркеров (
claude -p,opencode run).
Полный список режимов — длинный: от переговорных скриптов до калькулятора follow-up. Список поддерживаемых джоб-бордов — в документации сканера.
Чего он принципиально не делает
Эта часть README — фактически манифест проекта, и она важнее списка фич:
- Не отправляет отклики автоматически. Агент готовит черновик для каждого поля формы. Отправляете вы. Скрипт подготовки заявки не делает POST-запросов по определению.
- Не отправляет письма. Только черновики. Почтового транспорта в кодовой базе нет вообще.
- Не следит за вами. Ни телеметрии, ни бэкенда. Резюме идёт с вашей машины только к тому AI-провайдеру, которого вы выбрали.
- Не толкает к слабым заявкам. Рекомендация ниже 4.0/5 всегда «не подавайтесь». Преодолеть её можно, но агент это зафиксирует.
Отдельная история — защита от выдумок. Агенту прямо запрещено фабриковать опыт: можно переформулировать, нельзя придумать. Генератор PDF проверяет, что цифры и факты из tailored CV реально есть в вашем cv.md и дайджесте статей. Несовпадение — и PDF заблокирован, если вы не передали флаг --skip-fact-check. Проверка пока не покрывает названия должностей, за этим следят открытые issue #2677 и #1411. Отсюда совет автора: перечитывайте каждое CV перед отправкой.
Установка
Самый быстрый путь — одна команда:
npx @santifer/career-ops init
cd career-ops
claude # или codex / qwen / opencode / agy / grok
npx входит в Node.js. Команда клонирует свежий релиз в папку career-ops и ставит зависимости. При первом запуске агент сам спрашивает в чате всё нужное: резюме, профиль, целевые роли. Настраивать файлы руками не обязательно.
Ручной путь стандартный: git clone, npm install, npx playwright install chromium (нужно только для PDF), затем npm run doctor для проверки окружения. Полная инструкция — в SETUP.md.
После установки работа идёт через общий роутер команд. В CLI со слэш-командами это выглядит так:
/career-ops {JD} → полный конвейер: оценка + отчёт + PDF + трекер
/career-ops pipeline → разобрать очередь URL из inbox
/career-ops scan → просканировать порталы и найти новые вакансии
/career-ops pdf → только tailored CV в PDF
/career-ops tracker → статусы всех заявок
/career-ops patterns → анализ отказов и корректировка таргетинга
Работает с любым AI-CLI
career-ops не привязан к одному вендору. Скилл определён по открытому стандарту агентов в файле .agents/skills/career-ops/SKILL.md, а для конкретных CLI подключается обёртками. Из коробки поддерживаются Claude Code, OpenCode, Antigravity CLI, Codex, Qwen, Kimi, GitHub Copilot, Grok Build CLI и Pi. В Codex слэш-команды не гарантированы — те же режимы вызываются обычным текстом или через codex exec.
Есть и путь без CLI вообще: отдельный скрипт gemini-eval.mjs работает с бесплатным ключом Gemini API и оценивает вставленное описание вакансии.
Бесплатно и на локальных моделях
Проект сознательно не требует платной подписки. Работают бесплатные модели OpenRouter, локальные модели через Ollama и любой OpenAI-совместимый эндпоинт. Разбор дешёвых конфигураций — в RUNNING_ON_A_BUDGET.md.
Там же — полезное предупреждение про подписки. Если в окружении задана переменная ANTHROPIC_API_KEY, CLI возьмёт её вместо вашей активной подписки Claude Pro/Max и начнёт списывать за токены. Лечится удалением переменной, перезапуском терминала и /login.
Манифест и сообщество
career-ops — первая референсная реализация CareerOps Manifesto. Суть в шести строках:
Подавайтесь лучше, но меньше. Сигнал важнее объёма. Доказательства важнее ключевых слов. Решает человек. Local-first. Достоинство с обеих сторон стола.
Истории найма собираются в публичный список HIRED.md: каждая карточка — открытый issue, который можно прочитать. Код распространяется по лицензии MIT.
Отдельно занятно, как сам проект устроен внутри: автор ведёт заметки о том, как репозиторий обслуживается флотом AI-агентов, где человек утверждает каждый merge. Для сайта про AI-ассистированную разработку это почти более интересная история, чем сам поиск работы.