Skip to main content
Glama
strelov1

freehire

by strelov1

freehire MCP servidor

Un servidor MCP sobre la API de empleos de freehire. Permite que cualquier host MCP — Claude Desktop, Claude Code o un agente compatible — busque, filtre y postule a empleos de TI sin navegador, autenticándose con una clave API personal. Las ofertas se extraen directamente de los portales de empleo de las empresas: más de 3,3 millones de puestos abiertos en 294 000 empresas, normalizados en un único esquema y etiquetados con stack, seniority, región y modalidad de trabajo (cifras en vivo).

Refleja el CLI de freehire: misma API, mismas credenciales, expuesto como herramientas MCP en lugar de comandos de shell.

Instalación

No se necesita instalación global: el host lo ejecuta mediante npx. Añádelo a la configuración MCP de tu host (Claude Desktop → Configuración → Desarrollador → Editar configuración, o ~/.claude.json para Claude Code):

{
  "mcpServers": {
    "freehire": {
      "command": "npx",
      "args": ["-y", "freehire-mcp"],
      "env": { "FREEHIRE_TOKEN": "fhk_xxxxxxxx" }
    }
  }
}

Crea la clave fhk_… en la aplicación web (freehire.me → menú de cuenta → Claves API). Si ya usas el CLI de freehire (freehire auth login), puedes omitir env — el servidor lee el mismo ~/.freehire/creds.json.

Related MCP server: job-monitor

Autenticación

El token y la URL base de la API se resuelven con precedencia env → ~/.freehire/creds.json → predeterminado https://freehire.me:

Qué

Fuentes

Token

FREEHIRE_TOKEN → archivo de credenciales

URL base de la API

FREEHIRE_API_URL → archivo de credenciales → https://freehire.me

El servidor solo lee el archivo de credenciales (nunca lo escribe; iniciar sesión sigue siendo tarea del CLI). Si no se configura ningún token, las herramientas devuelven un error claro de "no autenticado" en lugar de que el servidor falle al iniciar.

Herramientas

Herramienta

Propósito

whoami

Usuario autenticado (verifica la clave).

facets

El vocabulario de filtros/habilidades: valores en vivo de cada faceta con recuentos. Llama primero.

search

Búsqueda de empleos por palabra clave + facetas; devuelve empleos con su descripción completa en markdown y el total de coincidencias.

market_fit

Evalúa una lista de habilidades contra la demanda del mercado en vivo (cobertura + brechas).

job

Contenido completo de un empleo por slug.

company

Una empresa y sus empleos abiertos por slug.

apply

Marca un empleo como postulado.

save / unsave

Marcar / quitar marcador.

stage

Establece la etapa de postulación (validado por el servidor).

note

Adjunta una nota de texto libre.

my

Empleos de seguimiento del llamante (todos/vistos/guardados/postulados) con etapa + nota.

cv_tailor

Inicia (o reabre) el ajuste para una vacante; devuelve el id de CV que usan las otras herramientas cv_*.

cv_list

CVs personalizados del llamante con la vacante para la que se escribieron.

cv_context

El análisis de contexto que un CV debe reencuadrar (missing_have vs missing_gap).

cv_get

Documento completo de un CV personalizado.

cv_edit

Aplica un lote de ediciones direccionadas por ruta a un CV personalizado, atómicamente (validado por el servidor; las afirmaciones sin citar se rechazan).

cv_render

Renderiza un CV personalizado a PDF, devuelto como recurso application/pdf en base64.

experience_list

El banco de experiencia del candidato, con la procedencia de cada logro. El evidence_id de cv_edit proviene de aquí.

experience_add_employment / experience_add_achievement

Registra un lugar o una pieza de evidencia.

experience_update_employment / experience_update_achievement

Corrige uno. A nivel de campo: lo que no se nombra se conserva.

experience_remove_employment / experience_remove_achievement

Elimina uno. Sin deshacer; un lugar debe estar vacío primero.

submit

Envía una vacante para moderación.

my_submissions

Las presentaciones del llamante con estado.

jobs_add / jobs_edit

Moderador: crear o editar un empleo (403 sin el rol).

submissions_pending

Moderador: la cola de revisión.

submission_approve / submission_reject

Moderador: decide sobre una presentación.

Filtros. search, market_fit y facets comparten los mismos parámetros de filtro de mercado: remote, region, country, city, company, category, role, seniority, employment_type, english_level, exclude_skill, salary_min, visa, más un mapa facets genérico ({"source": "greenhouse"}) para cualquier otra faceta del vocabulario. Descubre los valores válidos con la herramienta facets — no los inventes. En search, skills es un filtro; en market_fit, skills es el conjunto medido.

La geografía amplía. region, country y city son un grupo OR: region: ["eu"] con country: ["IT"] significa "en Europa o en Italia" y devuelve todo lo que la región sola devolvería. Para buscar un solo país, pasa country y omite region. Los tres nombran un único concepto — dónde — por lo que elegir dos lugares se lee como "o", lo que hace útil region: ["eu"] con country: ["BR"] ("Europa o Brasil"). No hay AND que activar: _mode=and no se aplica a la geografía.

Los parámetros no reconocidos se ignoran, no se rechazan. Una clave de filtro que la API no reconoce no hace fallar la solicitud, la amplía. Estas claves aparecen en la lista ignored del resultado, con did_you_mean cuando solo el número gramatical era incorrecto. search lo informa junto a total; facets y market_fit responden un único objeto, por lo que lo envuelven como {data, ignored} — y solo entonces, dejando intacta la forma de una llamada limpia. Cualquier número de un resultado que contenga ignored responde a una pregunta más amplia que la planteada — reintenta con el nombre sugerido antes de informarlo.

Descripciones. search lee el endpoint de agente de la API, por lo que cada resultado ya incluye la descripción completa de la oferta como markdown — un host puede revisar un conjunto de resultados sin una llamada job por cada uno. Las descripciones son largas, así que mantén limit moderado.

La regla de evidencia. Cada logro en el banco registra quién lo afirmó. cv_import, stated_in_chat y manual significan que el candidato lo hizo, y pueden citarse en un CV; agent_inferred significa que un modelo lo leyó en el registro, y no puede. cv_edit rechaza cualquier afirmación sobre el candidato sin un evidence_id que apunte a uno citable, por lo que experience_list es la herramienta que hace que cv_edit sea utilizable.

Corregir un logro no cambia esa etiqueta: uno agent_inferred permanece no citable aunque se reformule. La única forma de que sea citable es preguntar al candidato y luego registrar lo que él diga con experience_add_achievement.

Eliminar es definitivo — el banco no tiene deshacer. Un lugar debe vaciarse antes de poder eliminarse, porque eliminarlo llevaría todos los logros que contiene. Fusionar dos logros en uno, conservando los números de ambos, se hace en el sitio.

Cada herramienta devuelve los data crudos de la API como texto JSON; un error de la API se convierte en un resultado isError que lleva el estado HTTP (un 401 añade una pista de autenticación).

Desarrollo

npm install
npm test        # vitest: config, client (mock server), facets, tool dispatch
npm run build   # tsc → dist/

Licencia

MIT — ver LICENSE. El backend y el CLI de freehire también son MIT.

Install Server
A
license - permissive license
A
quality
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
    -
    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,296
    2
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Searches LinkedIn, Indeed, USAJobs, and Google Jobs from the command line, deduplicates across sources, and optionally finds hiring manager emails; also runs as an MCP server for AI agents.
    MIT
  • F
    license
    -
    quality
    B
    maintenance
    Enables job search on LinkedIn through MCP tools, including keyword and location search, filtering by remote, easy apply, experience level, job type, and date, and retrieving job details.
  • A
    license
    -
    quality
    C
    maintenance
    Enables to interact with job application workflows through MCP, allowing users to find jobs, generate non-trivial applications with proof-maps, and build offline dashboards, all without auto-submitting.
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Search live startup jobs from Claude, Cursor, or ChatGPT via MCP. Free, no account needed.

  • GetJobzi MCP server for job search, application tracking, and career forecasting.

  • RemoteOK MCP — remote-work job board (tech-heavy), keyless.

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/strelov1/freehire-mcp'

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