Glassdoor MCP Server

Listados de empleos de Glassdoor y publicaciones de empleo completas con calificaciones de empresas y estimaciones salariales, como JSON estructurado.

Documentación

Servidor MCP de Glassdoor

Un servidor de Protocolo de Contexto de Modelo (MCP) alojado que brinda a Claude, Cursor, Windsurf y cualquier otro cliente MCP dos herramientas de solo lectura para Glassdoor. Busca ofertas de empleo por palabra clave y ubicación, luego lee una publicación completa con la calificación del empleador, la cifra salarial y su procedencia, todo como JSON estructurado, sin cuenta de socio de Glassdoor y sin nada que alojar.

Lee páginas públicas de ofertas de Glassdoor que un visitante sin sesión puede ver, en el sitio de EE. UU. y en 22 sitios regionales.

1,000 créditos gratis cada mes, sin necesidad de tarjeta, lo que equivale a 100 llamadas a Glassdoor a la tarifa de 10 créditos.

https://mcp.hasdata.com/api/mcp?apis=glassdoor

Glama score tool contract MCP Tools npm PyPI License

Contenido

Lo que necesitas

Un cliente MCP y una clave de API de HasData desde el panel de control, gratis de crear sin tarjeta, y el nivel gratuito cubre unas 100 llamadas al mes a la tarifa de 10 créditos. Este es un servidor remoto, por lo que la ruta más simple es una URL y un encabezado x-api-key, sin contenedor que ejecutar. Un cliente que solo habla stdio lo alcanza a través de un lanzador ligero, publicado como @hasdata/glassdoor-mcp en npm y hasdata-glassdoor-mcp en PyPI, como se muestra a continuación.

Inicio rápido

La URL del servidor es la misma para todos los clientes. Lo ejecutamos de forma práctica en Claude Code y Claude Desktop. Los demás bloques siguen el formato documentado de cada cliente para un servidor remoto.

CampoValor
URLhttps://mcp.hasdata.com/api/mcp?apis=glassdoor
TransporteHTTP, transmisible
Encabezado de autenticaciónx-api-key: HASDATA_API_KEY

Los clientes con soporte OAuth pueden agregar la misma URL como conector e iniciar sesión sin poner una clave en un archivo de configuración.

Claude Code
claude mcp add --transport http glassdoor "https://mcp.hasdata.com/api/mcp?apis=glassdoor" \
  --header "x-api-key: HASDATA_API_KEY"
Claude Desktop

Configuración, luego Conectores, luego Agregar conector personalizado, luego pega https://mcp.hasdata.com/api/mcp?apis=glassdoor e inicia sesión.

Para la ruta de archivo de configuración, Claude Desktop solo carga servidores locales (stdio), por lo que alcanza un servidor remoto a través de un lanzador stdio. El paquete @hasdata/glassdoor-mcp es ese lanzador, y lee la clave del entorno. Agrega esto a claude_desktop_config.json:

{
  "mcpServers": {
    "glassdoor": {
      "command": "npx",
      "args": ["-y", "@hasdata/glassdoor-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

Para Python en lugar de Node, cambia el lanzador por el paquete de PyPI, que uvx ejecuta sin instalación manual:

{
  "mcpServers": {
    "glassdoor": {
      "command": "uvx",
      "args": ["hasdata-glassdoor-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}
Cursor

~/.cursor/mcp.json para cada proyecto, o .cursor/mcp.json para uno solo:

{
  "mcpServers": {
    "glassdoor": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=glassdoor",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
Windsurf

~/.codeium/windsurf/mcp_config.json. Windsurf llama al campo serverUrl, no url:

{
  "mcpServers": {
    "glassdoor": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=glassdoor",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
VS Code

.vscode/mcp.json en el espacio de trabajo:

{
  "servers": {
    "glassdoor": {
      "type": "http",
      "url": "https://mcp.hasdata.com/api/mcp?apis=glassdoor",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

Ejemplos de indicaciones

Cada una de estas aterriza en una herramienta, o en dos en secuencia cuando la segunda necesita la URL que devuelve la primera.

  • Encuentra roles de ingeniero de datos en Austin, TX y muéstrame solo aquellos donde el empleador indicó el salario.
  • ¿Cuál es el salario publicado mediano para este rol en Austin, y de cuántas publicaciones proviene?
  • Lee esta publicación de Glassdoor completa y enumera las calificaciones requeridas.
  • ¿Qué empresas que contratan para este rol tienen una calificación de empleador superior a 4?
  • Muéstrame publicaciones para este rol agregadas en la última semana, ordenadas por actualidad.
  • Compara los salarios publicados para este rol en los sitios de Glassdoor del Reino Unido y Alemania.

Una indicación que nombra un rol va a la herramienta de listados, y leer la descripción completa requiere una segunda llamada por publicación. El listado ya lleva el salario, la calificación del empleador y las habilidades, por lo que una comparación entre muchos roles necesita una llamada en lugar de una por publicación.

Herramientas

Dos herramientas, 10 créditos por llamada exitosa.

Obtener listados de ofertas de Glassdoor

hasdata_glassdoor_listing_getJobListings

Una página de publicaciones para un rol en un lugar, 30 por página.

ParámetroTipoRequeridoNotas
keywordstringEl rol a buscar, como data engineer
locationstringDónde buscar, como Austin, TX
sortstringrelevant o recent
domainstringUno de los 22 sitios regionales de Glassdoor
nextPageTokenstringCursor para la siguiente página, tomado de la respuesta anterior

Devuelve searchInformation con totalResults y la URL de Glassdoor detrás de la consulta, un array jobs, y pagination.

Cada publicación lleva title, id, url, location, ageInDays, sponsored, un array skills, un fragmento description, un objeto salary y un objeto employer con su propio rating y logoUrl.

El objeto salary es la razón por la que esta herramienta vale más que un feed de bolsa de trabajo. Reporta min, median, max, currency, period y, de manera decisiva, source, que es o EMPLOYER_PROVIDED o ESTIMATED. El primero es una cifra que el empleador publicó, el segundo es el modelo propio de Glassdoor. En el ejemplo a continuación, 19 de 30 publicaciones tenían salario proporcionado por el empleador y 10 estimado.

{
  "title": "Data Engineer",
  "id": 1010220057561,
  "url": "https://www.glassdoor.com/job-listing/data-engineer-esc-region-xiii-JV_IC1139761_KO0,13_KE14,29.htm?jl=1010220057561",
  "location": "Austin, TX",
  "ageInDays": 36,
  "sponsored": false,
  "skills": ["Azure", "Customer service", "System design"],
  "salary": {
    "currency": "USD",
    "period": "ANNUAL",
    "min": 82572,
    "median": 82572,
    "max": 82572,
    "source": "EMPLOYER_PROVIDED"
  },
  "employer": {
    "id": 477452,
    "name": "Education Service Center Region XIII",
    "shortName": "ESC Region XIII",
    "rating": 4.2,
    "sponsored": false
  }
}

Obtener detalles de oferta de Glassdoor

hasdata_glassdoor_job_getJobDetails

Una publicación completa, por su URL de Glassdoor.

ParámetroTipoRequeridoNotas
urlstringLa URL de la publicación, tal como la devuelve la herramienta de listados

Devuelve un objeto job. Además del título, salario y empleador que el listado ya te dio, agrega la description completa como texto plano, el mismo texto como descriptionHtml, un objeto requirements que contiene educationRequirements y un array experienceRequirements, un objeto address con coordenadas, datePosted, y un indicador expired.

{
  "title": "Data Engineer",
  "employer": {
    "name": "ESC Region XIII",
    "url": "https://www.glassdoor.com/Overview/Working-at-ESC-Region-XIII-EI_IE477452.11,26.htm"
  },
  "address": {
    "country": "United States",
    "region": "Texas",
    "city": "Austin, TX",
    "latitude": 30.26694,
    "longitude": -97.74278
  },
  "requirements": {
    "educationRequirements": "Bachelor's degree",
    "experienceRequirements": ["Azure", "Customer service", "System design", "Windows", "SQL", "AWS"]
  },
  "salary": {
    "payCurrency": "USD",
    "period": "ANNUAL",
    "min": 82572,
    "median": 82572,
    "max": 82572,
    "source": "EMPLOYER_PROVIDED"
  },
  "datePosted": "2026-09-03T00:00:00",
  "ageInDays": 36,
  "expired": false
}

Errores y rutas de fallo

Planifica estos en lugar de asumir un camino feliz.

salary.source decide si la cifra es un hecho o una salida del modelo. EMPLOYER_PROVIDED provino de la publicación. ESTIMATED es la estimación propia de Glassdoor para el rol y el mercado, y mezclar ambos en una mediana produce un número que no describe ninguno. Filtra por source antes de agregar, y di de qué conjunto provino una cifra publicada.

Un salario único indicado llega como min, median y max todos iguales. Tres de las 30 publicaciones en el ejemplo se veían así. Un rango de cero es una cifra puntual, no un rango faltante.

salary puede estar ausente, y period puede ser HOURLY en lugar de ANNUAL. Una publicación en el ejemplo no llevaba salario en absoluto. Convertir por hora a anual es una suposición tuya, no algo que la respuesta haga.

El description del listado es un fragmento truncado. Dieciocho de los 30 ejemplos terminaban a mitad de frase con puntos suspensivos. El texto completo solo está en la herramienta de detalles, por lo que una indicación que lee descripciones cuesta una llamada por publicación.

La paginación se basa en tokens, y otherPages contiene tokens en lugar de URLs de página. pagination.otherPages mapea un número de página a un token base64 opaco, y ese token es lo que va en nextPageToken. Mantén los demás parámetros sin cambios mientras paginas.

www.glassdoor.com es el valor predeterminado y no es un valor que puedas pasar. El enum domain lista los 22 sitios regionales, por lo que el sitio de EE. UU. es lo que obtienes cuando omites domain. No hay nada que enviar para ello.

expired está solo en la herramienta de detalles. Una página de listados aún puede mostrar una publicación que el empleador ha cerrado, y solo la llamada de detalles lo reporta. Verifica el indicador antes de actuar sobre un ageInDays antiguo.

Una cifra salarial y una calificación de empleador son números de Glassdoor. Provienen de los datos y modelos propios de Glassdoor, así que atribúyelos en lugar de presentarlos como verdad del mercado.

Los resultados que llevan datos también llevan un requestMetadata.id que vale la pena citar como respaldo.

Precios, nivel gratuito y límites

Cada herramienta de Glassdoor cuesta 10 créditos por llamada exitosa. El tamaño de la respuesta no cambia el precio, por lo que una página de 30 publicaciones cuesta lo mismo que una sola llamada de detalles, lo que hace que la herramienta de listados sea la forma económica de cubrir un mercado y la herramienta de detalles la forma costosa.

El nivel gratuito es 1,000 créditos cada mes sin tarjeta, lo que equivale a 100 llamadas a Glassdoor a la tarifa base. Se renueva con el ciclo de facturación, por lo que un agente de bajo volumen funciona con el nivel gratuito indefinidamente.

Los planes de pago comienzan en $49 al mes por 200,000 créditos, lo que equivale a 20,000 llamadas. El precio unitario baja con el volumen, desde $2.45 por 1,000 llamadas en el plan de entrada hasta $1.00 en Business, $0.84 en Growth y $0.74 en los planes de alto volumen más grandes.

Tu plan también establece la concurrencia. El nivel gratuito permite 1 solicitud a la vez, Startup 15, Business 30, Growth 50, y los planes de alto volumen van de 200 a 1,500. Reintenta con el 429 con un retroceso en cualquier cosa desatendida, porque un agente que recorre una página de publicaciones alcanzará el techo antes que tú.

Una solicitud que devuelve un código distinto de 200 no se factura. Una llamada exitosa que no encuentra nada sigue siendo una llamada.

Una nota sobre el costo por respuesta. Treinta publicaciones llegan por 10 créditos, y leer las treinta completas cuesta 300 más. La mayoría de las preguntas de compensación y contratación se responden solo con el listado, así que recurre a la herramienta de detalles por publicación en lugar de por página.

Selección de herramientas

Comienza desde lo que la indicación te da. Un rol y un lugar van a la herramienta de listados, y una URL de Glassdoor va directo a la herramienta de detalles.

Luego pregunta qué necesita la respuesta. Salario, calificación del empleador, habilidades, ubicación y antigüedad llegan con el listado, lo que cubre la evaluación comparativa de compensación, el monitoreo de tendencias de contratación y las listas cortas de abastecimiento en una llamada. La herramienta de detalles existe para la descripción completa y las calificaciones indicadas, que es lo que un pipeline de coincidencia o adaptación de currículum necesita y lo que un resumen de mercado no.

Cómo se compara

Glassdoor no tiene una API pública de empleos, por lo que la comparación honesta es contra un feed de bolsa de trabajo y contra el propio sitio de Glassdoor.

Un feed de bolsa de trabajoGlassdoor en el sitioEste servidor
ElegibilidadUn acuerdo de socio por bolsaUn navegador y un aviso de inicio de sesiónUna clave de API
Calificación del empleadorNo incluidaMostradaEn cada publicación
Procedencia del salarioRara vez indicadaMostradasource en cada cifra
Etiquetas de habilidadesDependiente de la bolsaMostradasUn array por publicación
Sitios regionalesIntegraciones separadasSitios separadosUn parámetro
Salida estructuradaDependiente del feedNingunaJSON

La fila que lo decide es la procedencia del salario. El trabajo de compensación se desmorona cuando una cifra del empleador y una estimación modelada caen en la misma columna, y este es el campo que las mantiene separadas.

Preguntas frecuentes

¿Hay un servidor MCP oficial de Glassdoor?

Glassdoor no publica uno, y tampoco publica una API pública de empleos. Este está mantenido por HasData y lee páginas públicas de Glassdoor.

¿Qué es un servidor MCP de Glassdoor?

Un servidor MCP expone herramientas que un cliente de IA puede invocar. Este convierte las búsquedas de empleo y publicaciones de Glassdoor en JSON sobre el que un agente puede razonar, sin necesidad de un navegador ni de una librería de scraping en tu stack.

¿Necesito una cuenta de Glassdoor?

No. La única credencial es tu clave de HasData.

¿Los salarios son reales o estimados?

Ambos, y la respuesta indica cuál es. salary.source es EMPLOYER_PROVIDED para una cifra publicada por el empleador y ESTIMATED para el modelo propio de Glassdoor. Lee ese campo antes de promediar cualquier cosa.

¿Devuelve reseñas de empresas?

No. Estas dos herramientas cubren listados y publicaciones de empleo. El objeto del empleador incluye el rating agregado que Glassdoor muestra junto al nombre de la empresa, y el texto de las reseñas no forma parte de la respuesta.

¿Qué países están cubiertos?

El sitio de EE. UU. por defecto, más 22 sitios regionales desde www.glassdoor.co.uk hasta www.glassdoor.co.in, www.glassdoor.com.au y los sitios divididos por idioma de Bélgica, Canadá y Suiza. Pasa domain para cambiar.

¿Cómo navego por los resultados?

Toma el token de la página que quieras de pagination.otherPages y envíalo como nextPageToken, dejando keyword, location y sort sin cambios.

¿Puedo usar esto junto con otras APIs de HasData?

Sí. Una sola clave cubre todo, y un solo endpoint las sirve todas a través del parámetro apis. Apunta un cliente a ?apis=glassdoor,indeed para obtener ambos conjuntos de herramientas en una sola conexión, o a mcp.hasdata.com/api/mcp para el catálogo completo.

¿HasData está afiliado a Glassdoor?

No. HasData es un servicio independiente y no está afiliado, respaldado ni patrocinado por Glassdoor. Glassdoor es una marca comercial de su respectivo propietario. Las herramientas trabajan únicamente con datos disponibles públicamente, y eres responsable de usar los resultados de acuerdo con los términos de Glassdoor y la ley que te aplique.

Cumplimiento y datos personales

Las publicaciones de empleo son registros comerciales, y estas herramientas no devuelven datos de candidatos ni de revisores. Aun así, hay dos cosas que requieren cuidado. Las calificaciones de empleadores y las estimaciones salariales son agregados propios de Glassdoor, así que republicarlos sin atribución tergiversa de quién son esos números. Y una publicación en un empleador muy pequeño puede nombrar a una persona como contacto, que es el único lugar donde aparecen datos personales.

Enlaces de HasData

Otros servidores MCP de HasData: Indeed, Google Search, Google Maps, Google Trends, Google Flights, DuckDuckGo, YouTube, TikTok, Instagram, Amazon, Walmart, Shopify, Yelp, Zillow, Redfin, Airbnb, Booking.com.

Desarrollo

El lanzador es un puente delgado de stdio hacia el servidor remoto, así que no hay nada que compilar.

npm install
HASDATA_API_KEY=your_key_here npm test

Las pruebas en test/ verifican el contrato de las herramientas, la parte que podría romperse sin un commit aquí. Comprueban que ?apis=glassdoor devuelve el número esperado de herramientas, que ningún nombre cambió, que cada herramienta sigue declarando sus parámetros requeridos y lleva una descripción, que sort sigue ofreciendo ambos órdenes, y que la clave en uso es realmente aceptada. Esa última comprobación invoca una herramienta de verdad y cuesta 10 créditos, que es el precio de un canario que puede fallar por la razón correcta.

Una prueba verifica que una publicación en vivo sigue llevando salary.source. El README se apoya en ese campo para mantener separadas las cifras de empleadores de las estimaciones, y una respuesta que lo omitiera silenciosamente dejaría el consejo en pie sin nada que lo respalde.

La suite de contrato también se ejecuta semanalmente según un cronograma, porque la lista de herramientas upstream puede cambiar sin que nadie toque este repositorio.

Contribuciones

Una tabla de herramientas, una muestra de respuesta o un comportamiento documentado que no coincida con la realidad merece un issue. Hay una plantilla exactamente para eso. Las solicitudes de extracción (pull requests) son bienvenidas para lo mismo, y para cualquier cosa en el lanzador.

Licencia

MIT, ver LICENSE.