Skip to main content
Glama
HadarAlfasi

jobwise

by HadarAlfasi

JobWise

CI

Поиск работы с нативным интерфейсом для агентов. Один движок, две поверхности: MCP сервер, которым может управлять любой ИИ-агент, и — далее — веб-приложение.

JobWise читает открытые вакансии из публичных ATS API, оценивает их по вашему резюме и отслеживает ваши отклики. Оценка объясняет себя, и ничего не скрейпится.

Статус: Фаза 0 завершена — ядро движка и MCP-сервер. Веб-приложение — далее. См. ROADMAP.md.

Зачем MCP

Инструменты для поиска работы созданы для человека, кликающего по интерфейсу. Это делает их невидимыми для агентов, с которыми люди всё чаще работают.

JobWise предоставляет свой движок через Model Context Protocol, поэтому вы можете спросить своего ассистента «на что мне откликнуться на этой неделе?», и он обратится к вашему реальному конвейеру — без браузера, без копипаста, без отдельного приложения, о котором нужно помнить.

Related MCP server: trackly-cli

Быстрый старт

git clone https://github.com/HadarAlfasi/jobwise.git
cd jobwise
npm ci
npm run build
npm run demo

npm run demo сканирует встроенные доски, фильтрует и ранжирует их по образцу резюме и выводит лучшие совпадения. Без конфигурации, без API-ключей, без необходимости регистрироваться.

Затем подключите его к своему агенту:

claude mcp add jobwise -s user -e JOBWISE_DIR="$PWD" -- node "$PWD/packages/mcp/build/index.js"

Перезапустите клиент и спросите его, на что вам стоит откликнуться.

Как выглядит сессия

You:  What should I apply to this week?

      → search_roles { limit: 4 }

      42 matching role(s), showing 4:

      71  Payoneer — Team Lead R&D, CLM
          Ramat HaSharon, Tel Aviv District, Israel · posted 2026-08-19
          https://www.payoneer.com/careers/position/8146...
          · Title matches "Team Lead"
          · Seniority matches your target
          · Mentions 8 of your 31 skills: agile, go, kafka, microservices…

      70  Riskified — Software Engineering Manager
          Tel Aviv-Yafo, Gush Dan, Israel · posted 2026-08-11
          · Title matches "Software Engineer"
          · Seniority matches your target
          · Mentions 8 of your 31 skills: agile, aws, ci/cd, kubernetes…

You:  Anything I should be chasing?

      → needs_attention { silentForDays: 7 }

      2 application(s) quiet for 7+ days, longest first:

         30d  Northwind — Senior Backend Engineer   [applied]  id=app-northwind
         11d  Meridian Labs — Platform Team Lead    [applied]  id=app-meridian

You:  Meridian got back to me, I have a phone screen.

      → record_event { applicationId: "app-meridian", type: "interview",
                       note: "phone screen booked" }

      Recorded "interview" on Meridian Labs — Platform Team Lead.
      Status is now interview with 2 events on record.

(Роли выше — реальные объявления со встроенных досок; отклики — из образца трекера в fixtures/.)

Инструменты

Инструмент

На какой вопрос отвечает

search_roles

«На что мне откликнуться?» — сканирует, фильтрует, ранжирует с пояснениями

pipeline_status

«Где мой поиск?» — подсчёт по этапам, что сдвинулось последним

needs_attention

«За чем мне следить?» — отклики, затихшие без ответа, без завершённых

record_event

«Отметить как отклонённый» — добавляет событие без перезаписи истории

Плюс ресурс jobwise://pipeline: каждое отклик с полной историей.

record_event пишет только в ваш локальный стор. JobWise никогда не отправляет отклики, не пишет сообщения и не связывается с работодателем.

Конфигурация

Два файла, оба в простом YAML.

config/boards.yml — доски компаний для сканирования. Одна запись на доску; добавить компанию — одна строка, без изменения кода.

boards:
  - { provider: greenhouse, slug: catonetworks, company: Cato Networks }
  - { provider: ashby,      slug: finout,       company: Finout }

Поставляется с проверенными израильскими tech-работодателями, у которых есть сканируемая доска. Замените их на свои — найдите слаг в URL карьеры компании (job-boards.greenhouse.io/SLUG, jobs.lever.co/SLUG, jobs.ashbyhq.com/SLUG).

config/profile.yml — ваши предпочтения. Скопируйте пример:

cp config/profile.example.yml config/profile.yml

Задайте правила для локации, целевые должности и путь к резюме. config/profile.yml и my-resume.* в .gitignore, так что ваш реальный поиск работы никогда не попадёт в систему контроля версий.

Одна ловушка, о которой предупреждает пример, потому что она стоила реальных откликов: alwaysAllow вычисляется до block. Поместите туда страну — и каждое правило block молча перестанет применяться: вы получите вакансии из городов, которые явно исключили, и ничего не укажет на причину. Держите его для своего родного города. Регрессионный тест фиксирует это поведение.

Охват, честно

JobWise читает Greenhouse, Lever и Ashby через их публичные JSON API. Без ключей, без скрейпинга, без обхода лимитов.

Это не всё. Многие крупные работодатели — стартапы на Comeet, компании на Workday, iCIMS или с собственными страницами карьеры — не предоставляют сканируемого API, и ни один инструмент такого типа не может их увидеть. Поддержка других ATS-платформ — в роадмапе; те, что уже есть, — это простой HTTP.

ATS-платформы также не публикуют индекс того, кто их использует, так что «сканировать всё» — это задача обнаружения, а не загрузки. См. роадмап для планируемого подхода.

Без скрейпинга, осознанно

JobWise не скрейпит доски вакансий и не будет. Это против их условий, это постоянно ломается, а для инструмента, нацеленного на рекрутеров, это неверный сигнал. Загрузка одного публичного объявления, которое пользователь явно вставил, — другое действие и оно запланировано; массовый сбор досок — нет.

Как это работает

  Greenhouse ┐
  Lever      ├──▶  @jobwise/core  ──┬──▶  MCP server   (agents drive it)
  Ashby      ┘   fetch · normalize  └──▶  web app      (next)
  your resume ─▶ match · track

Вся логика — в @jobwise/core. Поверхности — тонкие адаптеры, которые переводят и форматируют; если поведение появляется в одной из них, ему место в ядре.

Оценка детерминирована и объяснима. Пять взвешенных компонентов — должность, совпадение навыков, старшинство, свежесть, местоположение — каждый даёт баллы с человекочитаемым пояснением. Без вызова модели, без API-ключа, одинаковые входные данные всегда дают одинаковый результат. Это осознанно: это базовый уровень, который любая будущая LLM-оценка должна превзойти измеримо, а не просто предположительно.

Компонент без данных воздерживается, а не ставит ноль, так что доска без дат не будет молча опускаться ниже более активной.

История откликов только добавляется. Статус вычисляется из журнала событий, а не хранится, поэтому история никогда не может разойтись с текущим состоянием. Исправление — это новое событие, а не правка.

Разработка

npm run build      # compile both packages
npm run typecheck  # includes test files
npm test           # 204 tests, no network
npm run demo       # end-to-end against live boards

Набор тестов блокирует fetch целиком (test/no-network.ts), так что сбой ATS не может остановить сборку. Тесты провайдеров запускаются на зафиксированных данных, полученных из реальных ответов; обновите их с помощью node scripts/capture-fixtures.mjs.

stdout — это JSON-RPC канал. Любой console.log в core или mcp ломает поток MCP, и веб-приложение с радостью потерпит то же самое. Тест сканирует исходники и роняет сборку на любой console.log; интеграционный тест поднимает реальный сервер и проверяет, что каждая строка в stdout — валидный JSON-RPC.

Благодарности

Импортёр трекера читает формат файлов career-ops Сантьяго Фернандеса де Вальдеррамы, так что пользователи могут перенести свою историю в JobWise одной командой. JobWise — отдельный проект и не делит с ним код.

Лицензия

MIT © Hadar Alfasi

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables searching over 1 million enriched job listings from 20,000+ companies directly from MCP-compatible AI tools. Provides tools for job search, company profiles, and AI-powered similar job recommendations with real-time data updates.
    4
    81
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for job search and application tracking, enabling AI agents to search jobs, get details, manage applications, and find contacts across 128K+ jobs and 1,900+ companies.
    1,093
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI-assisted job search workflows including job discovery, application tracking, resume evaluation, and cover letter generation, with support for multiple job sources and scheduled scraping.
    33
    1
    AGPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that exposes job-search and application-management capabilities to compatible AI clients, enabling discovery of vacancies, drafting of tailored application materials, and coordinated human-approved submissions.
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HadarAlfasi/jobwise'

If you have feedback or need assistance with the MCP directory API, please join our Discord server