Skip to main content
Glama
pendevster

job-search-mcp

by pendevster

job-search-mcp

Un servidor MCP para la búsqueda de empleo bajo una restricción de visado.

Si necesitas patrocinio, la mayoría de las herramientas de búsqueda de empleo responden a la pregunta equivocada. Te dicen que un puesto existe. No te dicen si el empleador puede contratarte legalmente, ni si el título «nivel medio» oculta una función de senior, ni si la empresa que publica la oferta es una agencia de reclutamiento que no tiene licencia alguna.

Este servidor responde a esas preguntas. Expone cuatro herramientas a través del Model Context Protocol para que un asistente de IA pueda comprobarlas por sí mismo en lugar de adivinar.

Herramientas

Herramienta

Responde

check_sponsor

¿Tiene este empleador de un Reino Unido una licencia de Trabajador Cualificado (Skilled Worker) y cuánto puedo fiarme de la coincidencia?

screen_posting

¿Hay barreras infranqueables? ¿El título dice la verdad sobre la senioridad?

search_roles

¿Qué hay publicado ahora mismo, excluyendo a las agencias?

application_history

¿Ya me he postulado aquí?

Related MCP server: recruiting-jobs-mcp

Por qué existe la calificación de confianza

La forma más obvia de comprobar una licencia de patrocinio es buscar el nombre de la empresa en el registro. Así empezó esto, y falla lo bastante a menudo como para ser peligroso.

Los nombres de las empresas colisionan. Para emparejar Pimberly con su nombre registrado Pimberly Software Development Limited hay que quitar palabras como "Software" y "Limited". Esa misma normalización convierte Minerva Defence en minerva, que coincide con trece empresas sin relación: un negocio de mobiliario, una agencia de crédito y un proveedor de vivienda asistida.

Por eso check_sponsor devuelve un grado de confianza en lugar de un booleano:

  • high — la parte distintiva del nombre coincidió exactamente, una sola vez.

  • verify — algo coincidió, pero podría ser casualidad. Confirma la entidad legal registrada del empleador y luego busca ese nombre.

  • none — no coincidió nada. Esto no es una prueba de que no puedan patrocinar. Muchos empleadores con licencia comercializan con un nombre distinto al registrado.

Casos reales que dieron forma a esto:

Buscado

Coincidencia

Lo que era cierto

Minerva Defence

13 filas "Minerva" no relacionadas

MINERVA DEFENCE LTD no está en el registro, ni su nombre anterior PARABELLUM TECHNOLOGIES LTD

Prevail

Prevail Technology Limited (Poole)

El empleador es Prevail Partners Ltd, que no aparece. Misma ciudad, empresa distinta

MAGIC

MAGIC SOFTWARE SERVICES LTD

Respuesta correcta, prueba incorrecta. El empleador es MAGIC TECH LTD, que también tiene licencia

TransPerfect

PERFECT DIGITAL LTD

Coincidió con la palabra "perfect"

eFinancialCareers

eFinancialCareers Ltd

Correcto e inútil: tiene licencia, pero es un portal de trabajo. Las facilidades a su nombre son de terceros sin nombre

Why screen_posting read the body, not the title

Una oferta titulada "Software Engineer" abría con «Como ingeniero de software sénior, tendrás que…» y pedía a alguien unirse al «equipo fundador». Otra oferta titulada "Software Engineer (Java Mid)" mencionaba una posición sénior tres párrafos más abajo. Filtrar por el título se pierde ambas.

screen_posting también detecta barreras infranqueables que ninguna adaptación de la candidatura puede superar:

You must be a UK citizen and have lived in the UK for the past 10 years.
You must already hold high-level UK security clearance.

y la que más importa cuando necesitas patrocinio, de una empresa que tiene una licencia con calificación A:

We are unable to offer visa sponsorship for this role. Candidates who need visa
sponsorship now or will need it in the future will not be considered.

Una licencia no significa que una empresa puede patrocinarutshell. No significa que lo hará.

Why search_roles returns a funnel

Los portales de empleo del Reino Unido están dominados por agencias de reclutamiento, y una agencia no tiene la licencia de patrocinio del puesto que publica. Excluirlas es esencial y es brutal: una búsqueda típica pasa de siete resultados a uno.

Un único resultado sin explicación parece un error. Por eso, la herramienta devuelve lo que cada etapa eliminó:

{
  "totalFromSource": 7,
  "funnel": { "fromSource": 7, "afterAgencyFilter": 2, "afterSalaryAndAge": 1 },
  "notes": ["5 of 7 results were recruitment agencies or job boards. ..."]
}

Los salarios no publicados se conservan, nunca se eliminan. El silencio sobre el salario no es una prueba de que el salario sea bajo.

Instalación

npm install && npm run build

Descarga el registro actual (unos 11 MB, actualizado con regularidad):

https://www.gov.uk/government/publications/register-of-licensed-sponsors-workers

Guárdalo como data/register.csv o apunta SPONSOR_REGISTER_PATH hacia él.

Claude Desktop / Claude Code

{
  "mcpServers": {
    "job-search": {
      "command": "node",
      "args": ["/absolute/path/to/job-search-mcp/dist/index.js"],
      "env": {
        "SPONSOR_REGISTER_PATH": "/absolute/path/to/data/register.csv",
        "REED_API_KEY_FILE": "/absolute/path/to/.reed-api-key"
      }
    }
  }
}

Variable

Otocolor

Propósito

SPONSOR_REGISTER_PATH

no

CSV del registro. El valor por defecto es ./data/register.csv

REED_API_KEY_FILE

para search_roles

Ruta de un archivo que contiene la clave. Preferible: el secreto vive en un solo sitio y la configuración del cliente solo contiene la ruta

REED_API_KEY

alreal

La clave directamente. Más sencillo, pero copia el secreto en tu configuración de M

APPLICATION_LEDGER_PATH

no

Historial de solicitudes en NDJSON

Ninguna credencial se lee nunca de un archivo del repositorio, y el registro está en .gitignore.

O con la CLI de Claude Code:

claude mcp add job-search --scope user \
  --env SPONSOR_REGISTER_PATH=/path/to/data/register.csv \
  --env REED_API_KEY_FILE=/path/to/.reed-api-key \
  -- node /path/to/job-search-mcp/dist/index.js

Pruebas

npm test

Hay 54 pruebas. Cada fixture es una oferta real o de entrada real del registro que venció a una versión anterior de este código. Las pruebas de Reed mockean fetch, de modo que la suite se ejecuta sin conexión y no cuesta a cuota de API.

Dos errores que la suite detectó mientras se escribía:

  • £40,000-85,000 se interpretaba como una cantidad única de £40,000, porque la segunda cifra omitía el símbolo de divisa ..... Frente a un umbral de salario, esa es la diferencia entre «lo supera» y «no lo supera».

  • Un filtro de agencias escrito como \brecruit\b nunca coincidió con Recruitment ni con Consultancy. Unas cincuenta agencias pasaron directamente.

Notas de diseño

core() destruye la información deliberadamente. Quitar descriptores es lo que hace que la relación entre la marca y el nombre legal funcione, y es exactamente lo que causa falsos positivos. El grado de confianza dosentable ese equilibrio en lugar de ocultarlo.

La ausencia no es un no. none incluye una advertencia en ese sentido. El error más costoso en este ámbito es concluir que un empleador sin listar no puede patrocinar.

Solo de lectura. El servidor lee el libro de solicitudes; nunca escribe en él. Registrar un resultado es una decisión que una persona debe tomar.

Licencia

MIT

Install Server
A
license - permissive license
A
quality
C
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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-driven job application automation for LinkedIn and SEEK platforms with intelligent cover letter generation, automated application submission, and application tracking management. Supports anti-detection measures and complies with platform usage policies for safe job hunting automation.
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to pull live job listings from major ATS platforms (Greenhouse, Lever, Ashby, Workable), Hacker News hiring threads, and detect hiring signals on company career pages.
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to discover, filter, and track job openings based on the user's local resume, without uploading data to the cloud.
    11
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to search live jobs, view full details, save and track applications in a Kanban board, set follow-up reminders, and subscribe to job alerts—no account needed for searching.
    20
    269
    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/pendevster/job-search-mcp'

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