jobwise
JobWise
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 demonpm 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 |
| „Worauf sollte ich mich bewerben?“ – scannt, filtert, rankt, mit Begründungen |
| „Wo steht meine Suche?“ – zählt nach Phase, was sich zuletzt bewegt hat |
| „Was sollte ich nachverfolgen?“ – Bewerbungen, die still geworden sind, terminale ausgeschlossen |
| „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.ymlLege 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
alwaysAllowwird vorblockausgewertet. 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 · trackDie 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 boardsDie 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
This server cannot be installed
Maintenance
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
- AlicenseAqualityBmaintenanceEnables 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.4812MIT

trackly-cliofficial
AlicenseNot gradedqualityAmaintenanceMCP 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,0933MIT- AlicenseNot gradedqualityDmaintenanceAn 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.331AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceAn 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
Related MCP Connectors
AI job search MCP — fact-checked jobs, application tracker, alerts. ChatGPT, Claude, Cursor.
Job platform for AI agents. Track tech jobs from companies that match your stack.
Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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