Skip to main content
Glama
HadarAlfasi

jobwise

by HadarAlfasi

JobWise

CI

Jobsuche mit einer agenten-nativen Oberfläche. Eine Engine, zwei Oberflächen: ein MCP-Server, den jeder KI-Agent steuern kann, und – als Nächstes – eine Web-App.

JobWise liest offene Stellen aus öffentlichen ATS-APIs, bewertet sie anhand deines Lebenslaufs und verfolgt deine Bewerbungen. Die Bewertung erklärt sich selbst, und nichts wird gescraped.

Status: Phase 0 abgeschlossen – Kern-Engine und MCP-Server. Web-App als Nächstes. Siehe ROADMAP.md.

Warum MCP

Job-Tools sind für Menschen gebaut, die durch eine Benutzeroberfläche klicken. Das macht sie unsichtbar für die Agenten, mit denen Menschen zunehmend arbeiten.

JobWise stellt seine Engine über das Model Context Protocol bereit, sodass du deinen Assistenten fragen kannst: „Worauf sollte ich mich diese Woche bewerben?“ – und er fragt deine echte Pipeline ab – kein Browser, kein Kopieren und Einfügen, keine separate App, an die du dich erinnern musst.

Related MCP server: trackly-cli

Schnellstart

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

npm run demo scannt die mitgelieferten Boards, filtert und rankt sie gegen einen Beispiel-Lebenslauf und gibt die besten Treffer aus. Keine Konfiguration, keine API-Schlüssel, keine Anmeldung erforderlich.

Dann binde es in deinen Agenten ein:

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

Starte deinen Client neu und frage ihn, worauf du dich bewerben solltest.

Wie eine Sitzung aussieht

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.

(Die Rollen oben sind echte Einträge aus den mitgelieferten Boards; die Bewerbungen stammen aus dem Beispiel-Tracker in fixtures/.)

Tools

Tool

Was es beantwortet

search_roles

„Worauf sollte ich mich bewerben?“ – scannt, filtert, rankt, mit Begründungen

pipeline_status

„Wo steht meine Suche?“ – zählt nach Phase, was sich zuletzt bewegt hat

needs_attention

„Was sollte ich nachverfolgen?“ – Bewerbungen, die still geworden sind, terminale ausgeschlossen

record_event

„Als abgelehnt markieren“ – nur anhängende Statusänderung

Plus eine jobwise://pipeline-Ressource: jede Bewerbung mit ihrer vollständigen Historie.

record_event schreibt nur in deinen lokalen Speicher. JobWise reicht niemals eine Bewerbung ein, sendet keine Nachricht oder kontaktiert keinen Arbeitgeber.

Konfiguration

Zwei Dateien, beide in einfachem YAML.

config/boards.yml – die Unternehmens-Boards, die du scannen möchtest. Ein Eintrag pro Board; das Hinzufügen eines Unternehmens ist eine Zeile und erfordert keine Codeänderung.

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

Es wird mit israelischen Tech-Arbeitgebern ausgeliefert, die nachweislich ein scannbares Board betreiben. Ersetze sie durch deine – finde den Slug in der Karriere-URL eines Unternehmens (job-boards.greenhouse.io/SLUG, jobs.lever.co/SLUG, jobs.ashbyhq.com/SLUG).

config/profile.yml – deine Präferenzen. Kopiere das Beispiel:

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

Lege deine Standortregeln, Zielpositionen und den Pfad zu deinem Lebenslauf fest. config/profile.yml und my-resume.* sind gitignored, damit deine echte Jobsuche nie in der Versionskontrolle landet.

Eine Falle, vor der das Beispiel warnt, weil sie echte Bewerbungen gekostet hat: Der Standort alwaysAllow wird vor block ausgewertet. Wenn du dort ein Land einträgst, werden alle Block-Regeln stillschweigend nicht mehr angewendet – du bekommst Rollen aus Städten, die du explizit ausgeschlossen hast, ohne dass dir etwas sagt, warum. Beschränke es auf deine Heimatstadt. Ein Regressionstest fixiert das Verhalten.

Abdeckung, ehrlich

JobWise liest Greenhouse, Lever und Ashby über ihre öffentlichen JSON-APIs. Kein Schlüssel, kein Scraping, keine Rate-Limit-Spiele.

Das ist nicht alles. Viele große Arbeitgeber – Comeet-gehostete Startups und Unternehmen auf Workday, iCIMS oder einer maßgeschneiderten Karriereseite – bieten keine scannbare API, und kein Tool dieser Art kann sie sehen. Unterstützung für weitere ATS-Plattformen ist auf der Roadmap; die bereits dort aufgeführten sind alle einfaches HTTP.

Die ATS-Plattformen veröffentlichen auch keinen Index darüber, wer sie nutzt, daher ist „alles scannen“ eher ein Entdeckungsproblem als ein Abrufproblem. Siehe die Roadmap für den Ansatz.

Kein Scraping, bewusst

JobWise scraped keine Job-Boards und wird es auch nicht. Es verstößt gegen deren Bedingungen, es bricht ständig, und bei einem Tool, das sich an Recruiter richtet, ist es das falsche Signal. Das Abrufen eines einzelnen öffentlichen Beitrags, den ein Benutzer explizit einfügt, ist eine andere Handlung und ist geplant; das Ernten eines Boards ist es nicht.

So funktioniert es

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

Die gesamte Logik lebt in @jobwise/core. Die Oberflächen sind dünne Adapter, die übersetzen und formatieren – wenn Verhalten in einem von ihnen auftaucht, gehört es in den Kern.

Die Bewertung ist deterministisch und erklärbar. Fünf gewichtete Komponenten – Titel, Skill-Überlappung, Seniorität, Aktualität, Heimatstandort – jede trägt Punkte mit einer verständlichen Begründung bei. Kein Modellaufruf, kein API-Schlüssel, gleiche Eingaben ergeben immer die gleiche Punktzahl. Das ist beabsichtigt: Es ist die Basislinie, die jede zukünftige LLM-basierte Bewertung messbar übertreffen muss, anstatt als besser angenommen zu werden.

Eine Komponente ohne Daten enthält sich der Stimme, statt null zu geben, sodass ein Board, das keine Daten veröffentlicht, nicht stillschweigend unter einem gesprächigeren rangiert.

Der Bewerbungsverlauf ist append-only. Der Status wird aus dem Ereignisprotokoll abgeleitet und nicht gespeichert, sodass die Historie nie mit dem aktuellen Zustand in Konflikt geraten kann. Eine Korrektur ist ein weiteres Ereignis, nie eine Bearbeitung.

Entwicklung

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

Die Testsuite blockiert fetch vollständig (test/no-network.ts), sodass ein ATS-Ausfall den Build nie rot machen kann. Provider-Tests laufen gegen festgeschriebene Fixtures, die aus echten Antworten erfasst wurden – aktualisiere sie mit node scripts/capture-fixtures.mjs.

stdout ist der JSON-RPC-Kanal. Ein console.log irgendwo in core oder mcp beschädigt den MCP-Stream, und die Web-App würde dieselbe Zeile problemlos tolerieren. Ein Test scannt den Quellcode und lässt den Build fehlschlagen, und der Integrationstest startet den echten Server und stellt sicher, dass jede Zeile, die er auf stdout schreibt, gültiges JSON-RPC ist.

Danksagungen

Der Tracker-Importer liest das Dateiformat von career-ops von Santiago Fernández de Valderrama, sodass dessen Benutzer JobWise mit vorhandener Historie in einem Befehl befüllen können. JobWise ist separate Arbeit und teilt keinen Code damit.

Lizenz

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