jobhunt_mcp
jobhunt_mcp
Un servidor MCP personal que convierte a Claude en tu gestor de operaciones de búsqueda de empleo:
Busca ofertas en vivo en LinkedIn, Indeed, ZipRecruiter, Glassdoor (API de JSearch) además de Adzuna
Realiza un seguimiento de cada solicitud en una Google Sheet (estado, prioridad, notas)
Haz seguimiento según lo programado: los recordatorios vencidos aparecen automáticamente
Crea contactos: mantén contactos por empresa e intégralos en la preparación
Personaliza: una herramienta reúne la descripción del puesto + tu currículum maestro + contactos para que Claude pueda redactar un currículum y una carta de presentación específicos, guardados directamente en Google Drive
Por diseño, nunca envía solicitudes automáticamente. Los bots de envío automático violan los términos de servicio de los portales de empleo y son marcados. La herramienta prepare_application_package te lleva a «revisar y hacer clic en enviar» en un solo paso.
Requisitos previos
Python 3.10+
Un cliente MCP: a continuación se asume Claude Desktop, pero cualquier cliente compatible con MCP funciona.
Una cuenta de Google (para el seguimiento en Sheets + el almacenamiento del currículum en Drive).
(Opcional) cuentas gratuitas de RapidAPI y/o Adzuna para la búsqueda de empleo en vivo.
Related MCP server: cv-job-assistant
Configuración
La configuración consiste en: crear una cuenta de servicio de Google, compartir una Sheet + una carpeta de Drive + el currículum con ella, (opcionalmente) obtener claves de API de búsqueda y luego apuntar Claude Desktop a server.py. Dedica unos 10 minutos a los pasos de Google.
1. Cuenta de servicio de Google (~5 minutos)
Ve a https://console.cloud.google.com → crea un proyecto (p. ej.
jobhunt).Habilita la API de Google Sheets y la API de Google Drive (APIs y servicios → Biblioteca).
APIs y servicios → Credenciales → Crear credenciales → Cuenta de servicio. Cualquier nombre sirve; omite los pasos opcionales.
Abre la cuenta de servicio → Claves → Añadir clave → JSON. Guarda el archivo en un lugar seguro, p. ej.
~/.config/jobhunt/service-account.json.Copia la dirección de correo electrónico de la cuenta de servicio (termina en
.iam.gserviceaccount.com): compartirás cosas con ella a continuación.
2. Google Sheet (la base de datos del seguimiento)
Crea una Google Sheet en blanco llamada, por ejemplo, «Job Hunt Tracker».
Compártela con el correo de la cuenta de servicio como Editor.
Obtén el ID de la hoja de cálculo de la URL:
docs.google.com/spreadsheets/d/<THIS_PART>/edit.
El servidor crea las pestañas Jobs, Contacts y Activity con encabezados automáticamente en el primer uso.
3. Carpeta de Google Drive + currículum maestro
Crea una carpeta de Drive, por ejemplo «Job Applications»; compártela con la cuenta de servicio como Editor. Copia su ID de carpeta de la URL.
Coloca tu currículum maestro en Drive como un Google Doc (la versión de todo lo que has hecho: la personalización lo recorta). Compártelo con la cuenta de servicio. Copia su ID de archivo.
4. Claves de API de búsqueda (opcional)
JSearch (recomendado: busca en todos los portales a la vez): gratis en https://rapidapi.com → busca «JSearch» → suscríbete al plan Basic (gratuito) → copia tu clave de RapidAPI en RAPIDAPI_KEY.
Adzuna: gratis en https://developer.adzuna.com → regístrate → copia tu App ID y App Key en ADZUNA_APP_ID y ADZUNA_APP_KEY.
Omite estos pasos si prefieres pegar las ofertas manualmente con jobhunt_add_job.
5. Instalación y configuración
pip install -r requirements.txtCopia claude_desktop_config.example.json en tu configuración de Claude Desktop (claude_desktop_config.json) y luego completa la ruta de args a server.py, la ruta de GOOGLE_SERVICE_ACCOUNT_FILE y los ID/claves de los pasos anteriores.
Ubicaciones de los archivos de configuración:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json(usa"python"paracommandy rutas con doble barra invertida, p. ej.C:\\Users\\you\\jobhunt-mcp\\server.py)Linux:
~/.config/Claude/claude_desktop_config.json
Reinicia Claude Desktop (ciérralo por completo: en Windows/macOS revisa la bandeja/barra de menú). Las herramientas jobhunt aparecen cuando el servidor se inicia.
Variables de entorno
Todo se configura mediante el bloque env de la configuración de Claude Desktop:
Variable | Requerido | Descripción |
| ✅ | Ruta absoluta a tu clave JSON de la cuenta de servicio |
| ✅ | ID de la Google Sheet de seguimiento (compartida con la cuenta de servicio) |
| ✅ | ID de la carpeta de Drive para los documentos guardados |
| ✅ | ID de tu Google Doc de currículum maestro |
| opcional | Clave de RapidAPI para JSearch ( |
| opcional | App ID de Adzuna para |
| opcional | App Key de Adzuna para |
| opcional | Código de país de Adzuna (por defecto |
6. Verifica que funciona
Prueba el servidor de forma independiente con MCP Inspector en cualquier momento (no se necesita Claude Desktop):
npx @modelcontextprotocol/inspector python3 server.pyLuego prueba jobhunt_get_master_resume (confirma el acceso a Drive) y jobhunt_list_jobs (confirma el acceso a Sheets). Si ambos devuelven resultados sin error de autenticación, estás listo.
Herramientas
Tool | Qué hace |
| Búsqueda agregada en LinkedIn/Indeed/ZipRecruiter/Glassdoor mediante JSearch (RapidAPI) |
| Busca ofertas en vivo (Adzuna) |
| Guarda una oferta en el seguimiento (¡pega la descripción completa!) |
| Explora el proceso / registro completo |
| Avanza por discovered → preparing → applied → interviewing → offer |
| Registra entrevistas, correos, notas; programa seguimientos ( |
| Muestra los seguimientos vencidos y próximos |
| CRM de contactos por empresa |
| Obtén tu currículum maestro de Drive |
| Guarda currículums/cartas de presentación personalizados en Drive como Google Docs |
| Todo lo necesario para personalizar y solicitar, en una sola llamada |
Ejemplos de indicaciones para probar
«Busca en todos los portales roles de ingeniero de detección SOC cerca de Dallas publicados esta semana y guarda los tres que mejor encajen».
«Prepara un paquete de solicitud para el trabajo a1b2c3d4, personaliza mi currículum para él y guarda ambos documentos».
«¿Qué seguimientos tengo pendientes?»
«Acabo de terminar la entrevista telefónica con Acme: regístrala y recuérdame enviar una nota de agradecimiento mañana».
Notas de seguridad
La clave JSON de la cuenta de servicio es una credencial: mantenla fuera de git y de las carpetas compartidas.
La cuenta de servicio solo puede acceder a los archivos que compartiste explícitamente con ella.
Trata las descripciones de empleo obtenidas de la web como contenido no confiable; el servidor las almacena como datos simples.
This server cannot be deployed
Maintenance
Related MCP Connectors
Job search tracker for Claude and ChatGPT: applications, interviews, follow-ups, company watch.
1- jobwyreOAuthapp.jobwyre
Track job applications on a board: let Claude or ChatGPT read and update jobs, interviews, notes.
Find jobs, then get a tailored résumé and cover letter for each one. Tracks your applications too.
1Analyze job listings against your resume, track applications, and generate cover letters.
Related MCP Servers
- FlicenseAqualityDmaintenanceTransforms Claude into an AI job-hunting assistant that searches remote job boards, scores roles against your CV, generates tailored cover letters, and logs everything to a Notion tracker.11-
- FlicenseNot gradedqualityCmaintenanceEnables Claude to parse CVs, search job boards (Remotive, Arbeitnow, Adzuna, Greenhouse/Lever), tailor resumes and cover letters, and prepare application packages with direct apply links—without ever auto-submitting. It runs 100% locally and free, storing jobs and applications as JSON files.-
- FlicenseAqualityBmaintenanceEnables managing a job search through natural language: tracking applications, discovery leads, interview prep, and resume generation. Connects to Claude via MCP to read and update local Excel files and documents.35-
- FlicenseNot gradedqualityBmaintenanceEnables Claude Desktop to manage a job search end-to-end: find and score job listings, tailor resumes, generate application messages, and track application history, while leaving final external actions to the user.-