Glassdoor MCP Server
Размещённый сервер Model Context Protocol (MCP), который предоставляет Claude, Cursor, Windsurf и любому другому MCP-клиенту два инструмента Glassdoor с доступом только для чтения. Ищите вакансии по ключевым словам и местоположению, а затем просматривайте полное описание выбранной вакансии вместе с рейтингом работодателя, размером зарплаты и источником этих данных — всё в структурированном JSON. Аккаунт партнёра Glassdoor и собственный хостинг не требуются.
Сервер получает данные с общедоступных страниц вакансий Glassdoor, которые видны посетителям без входа в аккаунт, на американском сайте и 22 региональных сайтах.
1 000 бесплатных кредитов каждый месяц, банковская карта не требуется. По тарифу 10 кредитов за вызов этого хватит на 100 вызовов Glassdoor.
https://mcp.hasdata.com/mcp?apis=glassdoor
Содержание
-
Требования
-
Быстрый старт
-
Примеры запросов
-
Инструменты
-
Ошибки и сценарии сбоев
-
Стоимость, бесплатный тариф и ограничения
-
Выбор инструмента
-
Сравнение с аналогами
-
Часто задаваемые вопросы
-
Ссылки HasData
-
Разработка
-
Участие в проекте
-
Лицензия
Требования
MCP-клиент и API-ключ HasData, который можно бесплатно получить в панели управления. Для регистрации банковская карта не нужна, а бесплатного тарифа хватит примерно на 100 вызовов в месяц по 10 кредитов за вызов. Это удалённый сервер, поэтому для подключения достаточно URL и заголовка x-api-key — запускать контейнер не нужно. Если клиент поддерживает только stdio, подключиться к серверу поможет лёгкая программа-запускатель: пакет @hasdata/glassdoor-mcp в npm или hasdata-glassdoor-mcp в PyPI. Примеры приведены ниже.
Быстрый старт
URL сервера одинаков для всех клиентов. Мы проверили подключение в Claude Code и Claude Desktop. Для остальных клиентов приведены настройки в формате, предусмотренном их документацией для удалённых серверов.
| Параметр | Значение |
|---|---|
| URL | https://mcp.hasdata.com/mcp?apis=glassdoor |
| Транспорт | HTTP, потоковый |
| Заголовок авторизации | x-api-key: HASDATA_API_KEY |
Клиенты с поддержкой OAuth можно подключить по тому же URL и выполнить вход, не добавляя ключ в файл конфигурации.
Claude Code
claude mcp add --transport http glassdoor "https://mcp.hasdata.com/mcp?apis=glassdoor" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
Откройте Settings, затем Connectors, выберите Add custom connector, вставьте https://mcp.hasdata.com/mcp?apis=glassdoor и выполните вход.
Если вы используете файл конфигурации, учтите, что Claude Desktop загружает только локальные серверы (stdio). Чтобы подключиться к удалённому серверу, используйте программу-запускатель stdio. Для этого предназначен пакет @hasdata/glassdoor-mcp: он получает ключ из переменной окружения. Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"glassdoor": {
"command": "npx",
"args": ["-y", "@hasdata/glassdoor-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Если вместо Node вы используете Python, замените программу-запускатель на пакет из PyPI. Его можно запускать через uvx без ручной установки:
{
"mcpServers": {
"glassdoor": {
"command": "uvx",
"args": ["hasdata-glassdoor-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Cursor
Файл ~/.cursor/mcp.json — для всех проектов, а .cursor/mcp.json — для одного:
{
"mcpServers": {
"glassdoor": {
"url": "https://mcp.hasdata.com/mcp?apis=glassdoor",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Windsurf
Файл ~/.codeium/windsurf/mcp_config.json. В Windsurf поле называется serverUrl, а не url:
{
"mcpServers": {
"glassdoor": {
"serverUrl": "https://mcp.hasdata.com/mcp?apis=glassdoor",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
VS Code
Файл .vscode/mcp.json в рабочей области:
{
"servers": {
"glassdoor": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=glassdoor",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Примеры запросов
Каждый запрос ниже обращается к одному инструменту или последовательно к двум, если для второго нужен URL, полученный от первого.
-
Найди вакансии инженера данных в Остине, штат Техас, и покажи только те, в которых работодатель указал зарплату.
-
Какова медианная зарплата, указанная для этой должности в Остине, и сколько объявлений использовано для расчёта?
-
Полностью прочитай это объявление о вакансии на Glassdoor и перечисли обязательные квалификации.
-
У каких компаний, нанимающих на эту должность, рейтинг работодателя выше 4?
-
Покажи объявления об этой должности, опубликованные за последнюю неделю, и отсортируй их по дате публикации.
-
Сравни зарплаты, указанные для этой должности на британском и немецком сайтах Glassdoor.
Запрос с названием должности обращается к инструменту поиска вакансий. Чтобы прочитать полное описание, для каждого объявления потребуется ещё один вызов. В результатах поиска уже есть зарплата, рейтинг работодателя и навыки, поэтому для сравнения нескольких вакансий достаточно одного вызова, а не отдельного вызова для каждой.
Инструменты
| Инструмент | Что возвращает |
|---|---|
hasdata_glassdoor_job_getJobDetails | Название должности, название компании и её рейтинг, местоположение, оценку зарплаты, тип занятости, дату публикации, полное описание вакансии, требования и преимущества, а также ссылку для отклика. 10 кредитов за вызов |
hasdata_glassdoor_listing_getJobListings | Массив вакансий с названием должности, компанией, местоположением, оценкой зарплаты, датой публикации, URL вакансии и jobId, а также токеном следующей страницы. 10 кредитов за вызов |
Доступны два инструмента. Каждый успешный вызов стоит 10 кредитов.
Получение списка вакансий Glassdoor
hasdata_glassdoor_listing_getJobListings
Одна страница с вакансиями по должности и местоположению содержит до 30 объявлений.
| Параметр | Тип | Обязательный | Примечания |
|---|---|---|---|
keyword | строка | да | Должность для поиска, например data engineer |
location | строка | да | Местоположение для поиска, например Austin, TX |
sort | строка | relevant или recent | |
domain | строка | Один из 22 региональных сайтов Glassdoor | |
nextPageToken | строка | Токен для перехода на следующую страницу, полученный из предыдущего ответа |
Возвращает searchInformation с полями totalResults и URL Glassdoor, соответствующим запросу, массив jobs и объект pagination.
Для каждого объявления возвращаются title, id, url, location, ageInDays, sponsored, массив skills, краткое описание description, объект salary и объект employer с рейтингом rating и URL логотипа logoUrl.
Объект salary — то, что отличает этот инструмент от обычной ленты вакансий. В нём указаны min, median, max, currency, period и, что особенно важно, source: значение будет EMPLOYER_PROVIDED или ESTIMATED. В первом случае зарплату указал работодатель, во втором — это оценка по модели Glassdoor. В приведённом ниже примере зарплата в 19 из 30 объявлений указана работодателем, а в 10 — рассчитана платформой.
{
"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
}
}
Получение подробной информации о вакансии Glassdoor
hasdata_glassdoor_job_getJobDetails
Полная информация об одном объявлении. Для запроса используется URL вакансии на Glassdoor.
| Параметр | Тип | Обязательный | Примечания |
|---|---|---|---|
url | строка | да | URL вакансии, возвращённый инструментом поиска |
Возвращает объект job. Помимо названия должности, зарплаты и данных о работодателе, уже полученных через поиск, он содержит полное описание description в виде обычного текста и то же описание в формате descriptionHtml, объект requirements с полями educationRequirements и массивом experienceRequirements, объект address с координатами, datePosted и флаг 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
}
Ошибки и нестандартные ситуации
Учитывайте возможные ошибки, а не рассчитывайте на идеальный сценарий.
salary.source определяет, является ли сумма фактическими данными или результатом модели. Значение EMPLOYER_PROVIDED означает, что сумму указали в вакансии. ESTIMATED — это собственная оценка Glassdoor для данной должности и рынка. Если объединить эти значения в одну медиану, получится цифра, которая не описывает ни одну из категорий. Перед агрегацией отфильтруйте данные по source и укажите, на какой категории основана опубликованная цифра.
Если в вакансии указана одна сумма, значения min, median и max совпадают. В выборке так выглядели три из 30 вакансий. Нулевой диапазон означает фиксированную сумму, а не отсутствие диапазона.
Поле salary может отсутствовать, а значение period может быть HOURLY, а не ANNUAL. В одной вакансии из выборки зарплата не была указана. Перевод почасовой ставки в годовую — это ваше допущение, а не действие, которое выполняет ответ.
Поле description в результатах поиска содержит сокращённый фрагмент. В 18 из 30 примеров описание обрывалось на полуслове и заканчивалось многоточием. Полный текст доступен только через инструмент подробностей, поэтому запрос, который анализирует описания, требует отдельного вызова для каждой вакансии.
Пагинация работает на основе токенов, а в otherPages хранятся токены, а не URL страниц. В pagination.otherPages номеру страницы соответствует непрозрачный токен в формате base64. Именно его нужно передать в nextPageToken. При переходе между страницами не меняйте остальные параметры.
www.glassdoor.com используется по умолчанию, и передать его в качестве значения нельзя. В перечислении domain указаны 22 региональных сайта, поэтому при отсутствии параметра domain используется сайт для США. Для него ничего передавать не нужно.
Поле expired есть только в инструменте подробностей. В результатах поиска может отображаться вакансия, которую работодатель уже закрыл. Узнать об этом можно только через вызов инструмента подробностей. Перед тем как использовать устаревшее значение ageInDays, проверьте флаг.
Значения зарплат и рейтинги работодателей — это данные Glassdoor. Они основаны на собственных данных и моделях Glassdoor, поэтому указывайте их источник, а не представляйте как общепринятые рыночные показатели.
В результаты с данными также входит requestMetadata.id. Его стоит указывать при обращении в службу поддержки.
Стоимость, бесплатный тариф и ограничения
Каждый инструмент Glassdoor стоит 10 кредитов за успешный вызов. Размер ответа не влияет на стоимость: страница с 30 вакансиями обходится столько же, сколько один вызов инструмента подробностей. Поэтому инструмент поиска вакансий — экономичный способ охватить рынок, а инструмент подробностей обходится дороже.
Бесплатный тариф включает 1 000 кредитов в месяц без привязки карты — это 100 вызовов Glassdoor по базовой ставке. Кредиты обновляются с началом расчётного цикла, поэтому агент с небольшим объёмом запросов может бессрочно работать на бесплатном тарифе.
Платные тарифы начинаются от $59 в месяц за 200 000 кредитов — это 20 000 вызовов. По мере увеличения объёма стоимость единицы снижается: с $2.95 за 1 000 вызовов на начальном тарифе до $1.19 на Basic и $0.83 на тарифах Growth. Актуальные цены указаны на странице тарифов.
Тариф также определяет допустимое количество одновременных запросов. Бесплатный тариф позволяет выполнять 1 запрос за раз, Startup — 5, Basic — 15, а тарифы Growth — от 50 до 500. Для автоматических процессов настройте повторные попытки с увеличивающейся задержкой при ответе 429: агент, обходящий страницу вакансий, может достичь лимита раньше, чем вы это заметите.
За запрос, завершившийся ответом с кодом, отличным от 200, списание не производится. Успешный вызов, даже если он не вернул результатов, всё равно учитывается.
О стоимости одного ответа. За 10 кредитов можно получить 30 вакансий, а просмотр полного текста всех тридцати потребует ещё 300 кредитов. На большинство вопросов о компенсациях и найме можно ответить по данным из результатов поиска, поэтому обращайтесь к инструменту подробностей для отдельных вакансий, а не для целой страницы.
Выбор инструмента
Начните с того, что указано в запросе. Если заданы должность и местоположение, используйте инструмент поиска вакансий. Если указан URL Glassdoor — сразу вызывайте инструмент подробностей.
Затем определите, какие данные нужны для ответа. Зарплата, рейтинг работодателя, навыки, местоположение и давность публикации доступны в результатах поиска. Одного вызова достаточно для сравнения компенсаций, отслеживания тенденций найма и составления списков потенциальных кандидатов. Инструмент подробностей нужен для получения полного описания и указанных требований: эти данные необходимы для сопоставления вакансий или адаптации резюме, но не для обзора рынка.
Сравнение
У Glassdoor нет общедоступного API для вакансий, поэтому сравнивать этот сервер корректно с лентой вакансий и с самим сайтом Glassdoor.
| Лента вакансий | Glassdoor на сайте | Этот сервер | |
|---|---|---|---|
| Доступ | Партнёрское соглашение с каждой площадкой | Браузер и запрос на вход | Ключ API |
| Рейтинг работодателя | Не включён | Отображается | Есть у каждой вакансии |
| Источник данных о зарплате | Указывается редко | Отображается | Поле source для каждой суммы |
| Теги навыков | Зависит от площадки | Отображаются | Массив для каждой вакансии |
| Региональные сайты | Отдельные интеграции | Отдельные сайты | Параметр |
| Структурированный вывод | Зависит от ленты | Отсутствует | JSON |
Ключевое различие — источник данных о зарплате. Сравнение компенсаций теряет смысл, когда в одном столбце оказываются сумма от работодателя и оценка модели. Это поле позволяет их различать.
Часто задаваемые вопросы
Есть ли у Glassdoor официальный MCP-сервер?
Glassdoor не выпускает собственный сервер и не предоставляет общедоступный API для вакансий. Этот сервер поддерживает HasData, и он работает с общедоступными страницами Glassdoor.
Что такое MCP-сервер Glassdoor?
MCP-сервер предоставляет инструменты, которые может вызывать клиент с AI. Этот сервер преобразует результаты поиска вакансий Glassdoor и данные о вакансиях в формат JSON, который агент может анализировать без браузера или библиотеки для скрейпинга в вашем стеке.
Нужна ли учётная запись Glassdoor?
Нет. Для работы нужен только ключ HasData.
Зарплаты указаны работодателями или рассчитаны?
В ответе встречаются оба типа данных, и для каждого указан источник. Значение salary.source равно EMPLOYER_PROVIDED, если сумму указал работодатель, и ESTIMATED, если это собственная оценка Glassdoor. Перед расчётом среднего проверьте это поле.
Возвращаются ли отзывы о компаниях?
Нет. Эти два инструмента работают с объявлениями о работе и вакансиями. Объект работодателя содержит агрегированный rating, который Glassdoor показывает рядом с названием компании, но тексты отзывов в ответ не входят.
Какие страны поддерживаются?
По умолчанию используется сайт для США, а также доступны 22 региональных сайта: от www.glassdoor.co.uk до www.glassdoor.co.in, www.glassdoor.com.au и сайтов Бельгии, Канады и Швейцарии с разделением по языкам. Чтобы выбрать другой сайт, передайте параметр domain.
Как переходить между страницами результатов?
Возьмите токен нужной страницы из pagination.otherPages и передайте его в nextPageToken, не меняя значения keyword, location и sort.
Можно ли использовать этот сервер вместе с другими API HasData?
Да. Один ключ подходит для всех сервисов, а все они доступны через один endpoint с помощью параметра apis. Укажите для клиента ?apis=glassdoor,indeed, чтобы получить оба набора инструментов через одно подключение, или перейдите на mcp.hasdata.com/api/mcp, чтобы ознакомиться с полным каталогом.
Связана ли HasData с Glassdoor?
Нет. HasData — независимый сервис, не связанный с Glassdoor и не получивший одобрения или спонсорской поддержки этой компании. Glassdoor — товарный знак соответствующего владельца. Инструменты работают только с общедоступными данными. Вы несёте ответственность за использование результатов в соответствии с условиями Glassdoor и применимым законодательством.
Соблюдение требований и персональные данные
Объявления о работе — это деловая информация, и эти инструменты не возвращают данные о кандидатах или авторах отзывов. Однако два момента требуют внимания. Рейтинги работодателей и оценки зарплат — это агрегированные данные Glassdoor, поэтому их публикация без указания источника создаёт ложное впечатление о том, кому принадлежат эти данные. Кроме того, в объявлении небольшой компании в качестве контактного лица может быть указан конкретный человек — это единственный случай, когда в результатах встречаются персональные данные.
Ссылки HasData
-
Glassdoor Scraper API — REST-эндпоинты, на которых основаны эти инструменты
Другие MCP-серверы HasData: Indeed, Google Search, Google Maps, Google Trends, Google Flights, DuckDuckGo, YouTube, TikTok, Instagram, Amazon, Walmart, Shopify, Yelp, Zillow, Redfin, Airbnb, Booking.com.
Разработка
Лаунчер — это простой мост stdio к удалённому серверу, поэтому сборка не требуется.
npm install
HASDATA_API_KEY=your_key_here npm test
Тесты в test/ проверяют контракт инструментов — то, что может измениться без коммита в этом репозитории. Они проверяют, что ?apis=glassdoor возвращает ожидаемое количество инструментов, их названия не меняются, каждый инструмент объявляет обязательные параметры и содержит описание, параметр sort по-прежнему поддерживает оба порядка сортировки, а используемый ключ действительно принимается. Последняя проверка вызывает инструмент в реальном режиме и расходует 10 кредитов — это цена контрольного теста, который может завершиться ошибкой по обоснованной причине.
Один из тестов проверяет, что у действующей вакансии по-прежнему есть поле salary.source. В README это поле используется, чтобы отличать данные о зарплате от работодателя от оценочных значений. Если бы это поле незаметно исчезло из ответа, рекомендации остались бы без оснований.
Набор тестов контракта также запускается еженедельно по расписанию, поскольку список инструментов во внешнем сервисе может измениться без каких-либо изменений в этом репозитории.
Участие в разработке
Если таблица инструментов, пример ответа или описание поведения не соответствуют действительности, сообщите об этом через issue. Для таких случаев предусмотрен специальный шаблон. Также приветствуются pull request с исправлениями и любые улучшения лаунчера.
Лицензия
MIT. См. LICENSE.