jobwise
JobWise
Búsqueda de empleo con una interfaz nativa para agentes. Un motor, dos superficies: un MCP servidor que cualquier agente de IA puede usar, y — próximamente — una aplicación web.
JobWise lee ofertas de empleo de APIs públicas de ATS, las puntúa según tu currículum, y hace seguimiento de tus solicitudes. La puntuación se explica a sí misma, y nada se extrae de sitios web.
Estado: Fase 0 completada — motor principal y servidor MCP. La aplicación web es lo siguiente. Ver ROADMAP.md.
Por qué MCP
Las herramientas de empleo están hechas para que un humano haga clic en una interfaz. Eso las hace invisibles para los agentes con los que la gente trabaja cada vez más.
JobWise expone su motor a través del Model Context Protocol, para que puedas preguntarle a tu asistente "¿a qué debería postularme esta semana?" y él consulte tu flujo real — sin navegador, sin copiar y pegar, sin una aplicación aparte que recordar abrir.
Related MCP server: trackly-cli
Inicio rápido
git clone https://github.com/HadarAlfasi/jobwise.git
cd jobwise
npm ci
npm run build
npm run demonpm run demo escanea los tableros incluidos, los filtra y los puntúa según un currículum
de ejemplo, e imprime las mejores coincidencias. Sin configuración, sin claves de API, sin nada que
registrar.
Luego conéctalo a tu agente:
claude mcp add jobwise -s user -e JOBWISE_DIR="$PWD" -- node "$PWD/packages/mcp/build/index.js"Reinicia tu cliente y pregúntale a qué deberías postularte.
Cómo se ve una sesión
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.(Los roles anteriores son ofertas reales de los tableros incluidos; las solicitudes son
del rastreador de ejemplo en fixtures/.)
Herramientas
Herramienta | Qué responde |
| "¿A qué debería postularme?" — escanea, filtra, puntúa, con razones |
| "¿Cómo va mi búsqueda?" — cuenta por etapa, qué se movió recientemente |
| "¿Qué debería perseguir?" — solicitudes inactivas, excluyendo las cerradas |
| "Marca esto como rechazado" — cambio de estado de solo añadidura |
Además, un recurso jobwise://pipeline: cada solicitud con su historial completo.
record_event solo escribe en tu almacén local. JobWise nunca envía una
solicitud, manda un mensaje, ni contacta a un empleador.
Configuración
Dos archivos, ambos en YAML simple.
config/boards.yml — los tableros de empresas a escanear. Una entrada por tablero;
añadir una empresa es una línea y no requiere cambios de código.
boards:
- { provider: greenhouse, slug: catonetworks, company: Cato Networks }
- { provider: ashby, slug: finout, company: Finout }Viene precargado con empleadores tecnológicos israelíes verificados que tienen un tablero escaneable.
Reemplázalos con los tuyos — encuentra el slug en la URL de carreras de la empresa
(job-boards.greenhouse.io/SLUG, jobs.lever.co/SLUG, jobs.ashbyhq.com/SLUG).
config/profile.yml — tus preferencias. Copia el ejemplo:
cp config/profile.example.yml config/profile.ymlDefine tus reglas de ubicación, títulos objetivo y la ruta a tu currículum.
config/profile.yml y my-resume.* están en .gitignore, así que tu búsqueda de empleo real
nunca termina en el control de versiones.
Una trampa que el ejemplo advierte, porque costó solicitudes reales:
alwaysAllowde ubicación se evalúa antes queblock. Pon un país ahí y todas las reglas de bloqueo dejan de aplicarse silenciosamente — recibes roles de ciudades que excluiste explícitamente, sin nada que te diga por qué. Mantenlo en tu ciudad. Una prueba de regresión fija este comportamiento.
Cobertura, honestamente
JobWise lee Greenhouse, Lever y Ashby a través de sus APIs públicas de JSON. Sin claves, sin extracción de sitios, sin juegos de límites de tasa.
Eso no es todo. Muchos empleadores grandes — empresas que usan Workday, iCIMS o una página de carreras personalizada — no exponen una API escaneable, y ninguna herramienta de este tipo puede verlos. El soporte para más plataformas ATS está en el roadmap; las que ya están listadas usan HTTP simple.
Las plataformas ATS tampoco publican un índice de quién las usa, así que "escanearlo todo" es un problema de descubrimiento, no de obtención de datos. Ver el roadmap para el enfoque.
Sin extracción de sitios, por diseño
JobWise no extrae tableros de empleo de sitios web, y no lo hará. Va contra sus términos, se rompe constantemente, y en una herramienta dirigida a reclutadores es la señal equivocada. Obtener una oferta pública individual que un usuario pega explícitamente es un acto diferente y está planificado; extraer un tablero completo no lo está.
Cómo funciona
Greenhouse ┐
Lever ├──▶ @jobwise/core ──┬──▶ MCP server (agents drive it)
Ashby ┘ fetch · normalize └──▶ web app (next)
your resume ─▶ match · trackToda la lógica vive en @jobwise/core. Las superficies son adaptadores delgados que
traducen y formatean — si un comportamiento aparece en una de ellas, pertenece al
núcleo.
La puntuación es determinista y explicable. Cinco componentes ponderados — título, coincidencia de habilidades, antigüedad, actualidad, ubicación — cada uno aporta puntos con una razón legible. Sin llamadas a modelos, sin clave de API, las mismas entradas siempre dan la misma puntuación. Esto es deliberado: es la línea base que cualquier puntuación futura basada en LLM debe superar de forma medible, en lugar de asumirse mejor.
Un componente sin datos se abstiene en lugar de puntuar cero, así que un tablero que no publica fechas no queda silenciosamente por debajo de uno más hablador.
El historial de solicitudes es de solo añadidura. El estado se deriva del registro de eventos, no al revés, así que el historial nunca puede contradecir el estado actual. Una corrección es otro evento, nunca una edición.
Desarrollo
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 boardsLa suite bloquea fetch por completo (test/no-network.ts), así que una caída de un ATS nunca
puede poner la build en rojo. Las pruebas de proveedores se ejecutan contra fixtures guardados
capturados de respuestas reales — actualízalos con node scripts/capture-fixtures.mjs.
stdout es el canal JSON-RPC. Un console.log en cualquier parte de core o mcp
corrompe el flujo de MCP, y la aplicación web toleraría la misma línea felizmente. Una
prueba escanea el código fuente y falla la build si encuentra uno, y la prueba de integración inicia
el servidor real y verifica que cada línea que escribe en stdout es JSON-RPC válido.
Créditos
El importador del rastreador lee el formato de archivo de career-ops de Santiago Fernández de Valderrama, para que sus usuarios puedan sembrar JobWise con historial existente en un comando. JobWise es un trabajo separado y no comparte código con él.
Licencia
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