Kitty has a job — скилл
Навык для Claude оценивает вакансии, подгоняет резюме под описание, ведет таблицу откликов и по почте обновляет статусы.
- 52 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Навык работает с персональными данными резюме и по коннектору читает почту Gmail для статусов откликов.
- Таблица откликов хранится в Notion или локальных файлах и содержит сведения о работодателях и собеседованиях.
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/kitty-has-a-jobОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Навык работает с персональными данными резюме и по коннектору читает почту Gmail для статусов откликов.
- Таблица откликов хранится в Notion или локальных файлах и содержит сведения о работодателях и собеседованиях.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Вы присылаете ссылку на вакансию, а Kitty оценивает соответствие и говорит, стоит ли откликаться. Карточка соответствия показывает уровень роли, область, закрытые обязательные требования, условия работы и зарплатную вилку против вашей цели. Со временем оценка учитывается результаты ваших собеседований. Затем навык подгоняет резюме: читает ваш шаблон `.docx`, сопоставляет опыт с описанием, составляет список правок по разделам с явными сокращениями и ничего не меняет, пока вы не согласитесь. Каждый отклик попадает в таблицу: в Notion или, без него, в локальные файлы `tracker.csv` и `kitty-settings.md`. Через коннектор Gmail навык обновляет статусы откликов по расписанию. Отчет показывает, сколько собеседований на каждом этапе, где воронка проседает и какие роли конвертируются лучше. Навык не выдумывает факты: недостающие метрики он спрашивает у вас.
Для кого. Тем, кто ищет работу и устал рассылать резюме без ответа: нужен порядок откликов, правки под вакансию и честная картина воронки.
Подходит, если
- Перед откликом на вакансию надо понять, стоит ли тратить время, по карточке соответствия.
- Резюме нужно подогнать под слова вакансии, не меняя шаблон и не раздувая число страниц.
- Откликов уже десятки, и таблица должна показывать, куда вы уже писали.
- Хочется видеть по этапам, где теряются приглашения на собеседование.
Не подходит, если
- Нужны гарантии прохождения ATS: навык следует общей практике и отмечает проблемы макета, но парсеры у всех разные.
- Резюме хранится не в `.docx`: другие форматы пока не поддерживаются.
- Нужна работа в другом агенте: навык проверен только в Claude.
Пример запроса к агенту
Вот описание вакансии. Оцени соответствие, предложи правки в резюме по разделам и отметь, какие термины вакансии мне нечем подтвердить.Ограничения
Навык проверен в Claude Cowork и Claude Code, а в других средах, например Codex, нет. Нужны Python 3 с пакетами `python-docx`, `pypdf`, `lxml` и LibreOffice (`soffice`) для подсчета страниц. Резюме должно быть в `.docx`. Ссылки LinkedIn навык открыть не может, потому что сайт блокирует автоматические читалки, поэтому текст вакансии вставляют вручную. Notion и Gmail подключают коннекторами в настройках Claude, без Notion таблица ведется в локальных файлах, а синхронизация статусов всегда требует Gmail. Навык не обещает гарантированного прохождения ATS.
Как отключить. Удалите папку `~/.claude/skills/kitty-has-a-job/`, а в Claude Cowork снимите загруженный навык. Таблицу откликов в Notion или в `tracker.csv` и коннекторы Notion и Gmail отключайте отдельно.
Частые вопросы
Как поставить навык?
Скачайте `dist/kitty-has-a-job.zip` из репозитория. В Claude Code распакуйте его в `~/.claude/skills/`, чтобы получилась папка `~/.claude/skills/kitty-has-a-job/`. В приложении Claude или Cowork загрузите zip как навык.
Как начать работу?
Скажите «hello kitty» или «set up Kitty has a job». Claude создаст таблицу и страницу настроек и спросит о целях, городах, лимите страниц, границах и расписании синхронизации. Потом достаточно прислать ссылку на вакансию.
Меняет ли навык мое резюме без спроса?
Нет. Он читает копию шаблона, показывает полный список правок по разделам, и любой термин вакансии, которого нет в резюме, помечен как новое утверждение. Правки попадают в новый файл, а шаблон остается прежним.
Где хранятся данные?
Файлы резюме остаются в вашей папке, а таблица и настройки лежат в вашем Notion или в локальных файлах. Данные уходят только через Claude и коннекторы, которые вы включили, то есть Notion и Gmail.
Есть ли пример для пробы?
Да, `examples/sample_cv.docx`: вымышленное резюме менеджера продукта на два листа. При пробе поставьте лимит страниц 2. Для реальных откликов берите свое резюме.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыНабор для Claude Code: скилл оценивает вакансию, сборщик делает резюме и письма, ежедневный сканер ищет новые объявления.
Поиск работы в кодовом агенте: оценка вакансии по резюме от 1 до 5, CV в PDF под каждую роль, черновики писем и трекер откликов
Набор скиллов для резюме и поиска работы: адаптация под вакансию, проверка на прохождение ATS, сопроводительные письма и подготовка к собеседованию
Resume Optimizer разбирает резюме по списку проблем, превращает обязанности в результаты и сжимает текст до страницы под вакансию.
Набор скиллов для поиска работы: разбор вакансии, резюме по шаблонам, подготовка к поведенческому интервью, сравнение офферов и переговоры
Плагин для Codex и Claude Code заполняет анкеты вакансий в видимом браузере по вашему резюме и останавливается перед отправкой
Коротко о README
README объясняет, как навык оценивает вакансию, правит резюме, ведет таблицу и читает статусы из почты. Описаны принципы (подлинность, добросовестность, приватность, честность), пример правки одного пункта, быстрый старт, зависимости, локальный режим без Notion и внутреннее устройство.
Бейдж для README
Исходный SKILL.md
--- name: kitty-has-a-job description: Job search copilot that scores a posting for fit, tailors the user's .docx CV according to best practices, logs applications in a tracker (Notion or local CSV), syncs statuses from Gmail, reports funnel stats. Use when the user shares a job posting, asks "should I apply", to tailor their CV, for application stats, to set up or sync their tracker, says "hello kitty" (starts setup), or asks for a cat fact. Not for cover letters, interview prep, salary negotiation or career advice. metadata: version: '1.0.0' --- # Kitty has a job Needs Python 3 (`pip install python-docx pypdf lxml`) and LibreOffice (`soffice`) for page counts; never assume they are installed. Scripts (`cv.py`, `tracker.py`, `stats.py`) are in `scripts/` in this skill's folder: run them, don't read them (`--help` shows usage and exit codes). ## Modes | Mode | When | Do | |---|---|---| | Setup | No settings found, "hello kitty", or "set up / change my Kitty settings" | Read `references/setup.md` and `references/common.md` | | Score | "Should I apply?", "score this role" | Steps 0 to 3 | | Tailor | A posting plus "tailor my CV" / "apply" | Steps 0 to 3, then `references/tailor.md` | | Stats | "Give stats", "how are my applications going" | Step 0, then `references/stats.md` | | Sync | "Sync my applications", or the scheduled task | Step 0, then `references/sync.md` | | Cheer up | "Cat fact", "cheer me up" | Reply with the cat fact rules below; no settings or tracker needed | ## Steps | # | Step | Use | On failure | |---|---|---|---| | 0.1 | Find settings: Notion page "Kitty Settings", else `kitty-settings.md` in the working folder or its direct subfolders (never this skill's or an `evals/` folder), else a file the user names | `Notion:notion-search` | None found: Setup. Several pages: use the user's own, else ask. Notion down: say so, use a local file if one exists | | 0.2 | Read every field; empty means not set | settings | Never guess a value; ask only if this mode needs it | | 0.3 | Read `references/common.md`, plus the tracker branch: `collection://...` → `references/tracker-notion.md`; a file path or `dry run` → `references/tracker-csv.md` | references | Tracker cannot be opened: tell the user, ask whether to reconnect or create one; never create silently | | 1 | Get the posting: LinkedIn via a logged-in browser (try once), other URLs via fetch, else search `"<title>" "<company>" job description` | browser, fetch, web search | Still nothing: ask the user to paste it. No link: one reminder line, carry on | | 2 | Extract title, company, city and country, level, hard requirements, salary band, URL | posting | Employer hidden by an agency: Company `Unknown (via <agency>)`. Posting closed: say so, no row | | 3 | Read the CV with `cv.py read <template>` (template from `settings.template_rules`, else the only or newest .docx), score with the rubric below, show the fit card | `scripts/cv.py` | Script cannot run: use `references/cv-editing.md` and say so | Several postings at once: one short card each, then tailor one at a time in the order the user picks. ## Fit card (use exactly) ``` **Fit: <n>/5, <apply / apply with an angle / skip>** - Role level: <match / stretch / mismatch>, <why> - Domain: <strong / adjacent / new>, <why> - Must-haves: <x of y covered>; missing: <list or none> - Logistics: <location, on-site days, language, visa, or none> - Salary: <published band | "estimate: ... (source)" | "unknown (no published band, no reliable data)"> vs settings.compensation_target - Link: <url | missing, add it when you have it>