Skip to main content
Glama
HadarAlfasi

jobwise

by HadarAlfasi

JobWise

CI

에이전트 네이티브(agent-native) 인터페이스를 갖춘 구직 검색 도구입니다. 하나의 엔진, 두 개의 표면: 어떤 AI 에이전트든 구동할 수 있는 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

"이것은 거절로 표시" — 추가(append-only) 상태 변경

그리고 jobwise://pipeline 리소스도 있습니다. 모든 지원과 그 전체 이력을 담고 있습니다.

record_event는 로컬 저장소에만 기록합니다. JobWise는 절대 지원서를 제출하거나, 메시지를 보내거나, 고용자에게 연락하지 않습니다.

설정

두 파일 모두이고, 둘 다 표준 YAML입니다.

config/boards.yml — 회사 보드를 스캔되는 대상. 보드마다 한 항목. 회사 추가는 한 줄이며 코드 변경 할 필요가 많습니다.

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

배포판에는 스캔 가능한 보드를 운영하고 확인된 이스라엘 테크 기업들이 시드로 들어 있습니다. 그 자리를 여러분의 기업으로 교체하세요 — 회사 채용 URL(job-boards.greenhouse.io/SLUG, jobs.lever.co/SLUG, jobs.ashbyhq.com/SLUG)에서 slug를 찾으면 됩니다.

config/profile.yml — 지침입니다. 예시를 복사하세요.

아래와 같습니다. GXP5

본인의 위치 규칙, 목표 직함, 이력서 경로를 설정하세요. config/profile.ymlmy-resume.*는 gitignore되어 있어, 실제 구직은 버전 관리를 통째로 들어가지 않습니다.

예제가 구체적으로 경고해 준 함정 그리고, 실제 지원 기회에 비용에 걸린 함정인데: 위치 alwaysAllowblock보다 먼저 평가된다는 점입니다. 여기에 국가 하나를 넣으면 모든 block 규칙이 조용하게 적용을 멈추고 — 명시적으로 제외한 도시의 공고부터 아무 이유에 가질 수 있습니다. 그 항목은 홈 시티까지만 유지하세요. 회귀 테스트가 그 동작을 고정합니다.

지원 범위에 대해, 솔직하게

JobWise는 그들의 Greenhouse, Lever, Ashby를 그 회사의 public JSON로 API로 읽어 옵니다. em, 스크래핑, rate-limit trick 모두 없값습니다.

그러나 대부분 그게 전부는 아닙니다.많은 large employer — Comeet 호스팅 스타트업이나 Workday, iCIMS 또는 전용 채용 피드를 쓰는 회사는 스캔이 가능 API가 노출하지 않았으며, 종류는 도구도 그들을 볼 수 없습니다. 더 많은 ATS에 대한 지지는 여기 roadmap에 있습니다.

ATS 플랫폼들은 누가 이용하는지 목록을 발행하지 않으므로, "한 번에 스캔"하기가 이야기는 "가져오기" 문제라고 아니라 "머리를 알아내는 것" 문제입니다. 그 접근법은 로드맵을 봐라주세요.

스크래핑을 하지 않는 것의 이유

JobWise는 채용 보드를 스크래핑하지 않고, 앞으로도 하지 않습니다. 폐지하고, 곳 그리고 여러 번, 특히 수많은 구인을 상대로 한 도구로서 alert이라 잘못된 신호입니다. 사용자가 명시적으로 붙여 넣고 요청した 1 공개 채용을 가져오는 것은 인접과 다르며 계획한 것이지만, 보드 전체를 수집하는 것은 옳지 않습니다.

어떻게 동작하는가

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

모든 로직은 @jobwise/core에 있습니다. 바깥 인터페이스는 번역·포맷팅을 하는 아주 얺은 어댑터입니다 — 그들의 집단에는 동작은 텟정에서는 코어로 들어가는 것이 정상입니다.

점수화는 결정론적임과모럼로 설명이 가능합니다. 제목, 스킬! 겹침, 시니어리티, 최신성, 그리고 홈 위치의 다섯 가중 component 각각이 사람이 읽을 수 있는 근거와 함께 점수로 내. No model call, no API key, all same input always same outcome point. 그 정답이라는 의도는 답이 있으며, 미래의 LLM 기반 평가가 측정 가능하도록 억제해야 하는 기준점이 존재할 — "더 낫다"고 가정되는 것 그냥 넘겨서는 안 되는 것의 의미입니다. 데이터가 없는 항목은 점수 0을 주는 대신 기권(abstain) 하므로, 날짜를 게시하지 않는 보드게 것도 게시하기만을 더 유직하는 보드 아래에 존재하지 않게 됩니다.

지원 내역은 append-only 리스인 것. 상태를? support, 저장하지 않고 이벤트 로그에서 도출되도록 함다. 그래서 이력과 현재 상태 인문 불일치할 수 없습니다. 수정은 편집의 아니라 추가 새로운 이벤트입니다.

개발

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

아래 blocks:

테스트 스위트는 fetch를 전면 차단합니다 (test/no-network.ts). 어떤 ATS가 장애가 여러 빌드가 레드가 되지 않습니다. 이미지 처리 테스트는 실제 응답을 넣은 커밋된 픽스처로 실행되고, node scripts/capture-fixtures.mjs 명령하여 갱신할 수 있습니다.

stdout은 JSON-RPC 채널입니다. core 안이나 mcp 안에서 console.log한 순간 MCP 스트림이 손상됩니다. 웹 알아만된 것처럼 등한 표기는 해도 stdout...`는 안됩니다. 테스트 하나가 소스를 스캔하면서 그런 줄을 찾으면 빌드가 정지하고, 통합 테스트는 실제 player 서버를 띄운 하고 그니까 줄 stdout에 쓴 모든 줄이 JSON-RPC임을 한다.

크레딧

트래커 임포터는 career-ops(작성자: Santiago Fernández de Valderrama)의 파일 형식을 그대로 읽어들이므로, 이 기존 사용자들은 한줄로 기존 이력이 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