workopia/workopia-mcp

workopia/workopia-mcp

от workopia
Workopia MCP сервер для поиска работы, адаптации резюме, составления сопроводительных писем и отслеживания откликов. Работает через MCP с Claude, Cursor и другими клиентами. Требуется бесплатная регистрация в Workopia через OAuth — все инструменты доступны после входа. Поиск по миллионам вакансий...

Workopia MCP Server

Job search, resume tailoring, cover letters & application tracking — available via the Model Context Protocol for Claude Code, Claude Desktop, Cursor, Windsurf, and other MCP clients.

Note: This is a hosted MCP server. Connect via the public endpoint below and sign in with Workopia (OAuth) — no API key to manage. All tools require a free Workopia sign-in; searching, job detail, resume tailoring, cover letters, and your dashboard are all scoped to your account. Resume tailoring and cover letters run on your own AI client's model — Workopia hosts no LLM and never charges for AI.

Endpoint

https://workopia.io/api/mcp-jobs
  • Transport: Streamable HTTP
  • Auth: OAuth 2.0 (Dynamic Client Registration + PKCE; handled automatically by the client)
  • Website: https://workopia.io

Install as a Claude Code plugin

/plugin marketplace add workopia/workopia-mcp
/plugin install workopia-jobs

On first tool use, Claude Code opens the Workopia OAuth flow in your browser; the token is then stored and refreshed automatically.

Часто задаваемые вопросы

Инструменты были проиндексированы:
cover_letter_tool

Напишите сопроводительное письмо для КОНКРЕТНОЙ вакансии: ДВА шага. ШАГ 1 (по умолчанию; action не указан или 'prepare'): сервер возвращает JD вакансии и сведения о кандидате, а также инструкции по написанию. ЗАТЕМ ВЫ (модель) ПИШЕТЕ сопроводительное письмо (250–350 слов, под конкретную роль, соотнося реальные достижения кандидата с JD: ничего не выдумывайте). ШАГ 2: снова вызовите этот инструмент с параметрами action:'save', cover_letter_text:<ваше письмо> и job_id: сервер сформирует PDF и сохранит его в личном кабинете Workopia кандидата (требуется вход в систему). Используйте этот инструмент, когда пользователь просит сопроводительное письмо для конкретной вакансии. Для определения job_id действуют те же правила, что и для tailor_resume_tool / job_detail_tool: передавайте значение Job Id из самого последнего результата поиска или уточнения ДОСЛОВНО; никаких заглушек вроде 'JOB_1' или '#1'. Для ШАГА 1 укажите ОДИН из параметров: job_id (предпочтительно, сервер загружает JD из Mongo) ЛИБО job_description, а также резюме кандидата через resume_text / resume_content / json_resume / user_profile.

Параметры
  • actionenum

    Omit or 'prepare' = STEP 1 (server returns JD + background + instructions for you to write). 'save' = STEP 2 (pass cover_letter_text; server renders a PDF and saves it to the dashboard; requires sign-in).

  • companystring

    Optional; used in the confirmation line.

  • cover_letterobject

    Optional wrapper containing the same fields above (legacy shape).

  • cover_letter_textstring

    STEP 2 only: the cover letter you wrote (plain text). The server renders it to PDF and stores it on profile.applications[job_id].coverLetter.

  • job_descriptionstring

    Full JD text when the user pastes it directly (alternative to job_id).

  • job_idstring

    ID of a job from a prior search/refine result. Use the Job Id value from the prior search result's content text VERBATIM. Server fetches full JD from Mongo.

  • job_titlestring

    Optional; used in the 'for <role> at <company>' confirmation line.

  • json_resumeobject

    Optional JSON Resume object (basics/work/skills). Takes precedence over resume_text when both present.

  • parametersobject
  • resume_contentstring
  • resume_textstring

    User's resume content (plain text or JSON Resume as string).

  • session_idstring
  • user_emailstring

    If provided, server fetches the full Workopia profile for the cover letter header + writes the generated cover letter back to profile.applications[jobId].coverLetter.

  • user_profileobject

    Optional main-site profile object; used as a fallback source for summary/skills/experience and for the cover letter header (firstName, lastName, email, phone, city, country).

dashboard_toolтолько чтение

Показывает панель Workopia вошедшего в систему пользователя (сохранённые, адаптированные и откликнутые вакансии + последнее резюме). Требует OAuth. Действие по умолчанию - список; необязательный параметр status_filter (all | saved | tailored | applied). Используйте всякий раз, когда пользователь просит вспомнить свою активность в Workopia: «мои отклики», «какие вакансии я сохранил / на какие откликнулся / какие адаптировал», «покажи мою панель», «где я остановился». Возвращает защищённую ссылку для открытия полной панели в вебе.

Параметры
  • actionenum
  • status_filterenum
job_detail_toolтолько чтениевнешний мир

Отображает полную карточку вакансии для конкретной должности, о которой спрашивает пользователь. Используй это действие всякий раз, когда пользователь ссылается на конкретную вакансию из предыдущих результатов поиска — по номеру (#1, «1», «первая», «третья», «вакансия 3»), по названию компании (частично или полностью, например «Morgan Stanley», «Morstan»), по должности или названию роли («роль аналитика», «та, что про кредитный риск») или по любому запросу в духе «покажи эту вакансию» / «расскажи подробнее о X» / «просмотри эту роль». Определение job_id из ссылки пользователя: найди нужную вакансию в самом последнем результате поиска/уточнения (в сгенерированном тобой нумерованном списке): (a) число/порядковый номер → N-я вакансия; (б) название компании → частичное совпадение по полю Company; (в) должность или роль → частичное совпадение по полю Job Title. Затем передай значение Job Id этой вакансии из текста предыдущего результата поиска ДОСЛОВНО как job_id. НЕ используй заглушки вроде 'JOB_1', '#1' или любой синтетический идентификатор — только настоящая строка Job Id из предыдущего результата будет принята сервером. Обязательно: job_id. ПОВЕДЕНИЕ ПРИ ВЫВОДЕ: Оформи ответ в виде структурированной карточки в Markdown с заголовком вакансии (со ссылкой на страницу подачи заявки), компанией, местоположением, зарплатой, типом занятости, форматом работы, обязательными навыками, ключевыми требованиями, основными моментами и кратким описанием. После этого добавь короткую подсказку о следующем шаге (например: «Хотите сохранить её, найти похожие вакансии, узнать о компании или адаптировать резюме под эту роль?»).

Параметры
  • get_job_detailobject
  • job_idstring

    The id from a prior search result's job_cards[].card.id. Required.

  • parametersobject
  • user_emailstring
job_toolвнешний мир

Ищет вакансии в более чем 90 странах по названию, местоположению, зарплате, формату работы (удалённо/гибридно) или типу занятости. Находит позиции в сфере технологий, финансов, продукта, дизайна, маркетинга и в любой другой отрасли. Данные агрегируются из более чем 1000 источников ATS по всему миру. Действие по умолчанию: поиск; используйте refine, когда пользователь просит больше совпадений или даёт обратную связь по предыдущему набору результатов; используйте save, чтобы сохранить вакансию для вошедшего пользователя (требуется OAuth). ПРОТОКОЛ REFINE (у action=refine есть ТРИ различных режима): (1) Простое продолжение / «покажи больше» / «следующая партия» / «ещё набор» / «больше похожих»: передайте refine_recommendations.exclude_ids = полный массив значений Job Id из текста содержимого последнего результата поиска/уточнения (дословно) + refine_recommendations.session_id = session_id предыдущего ответа, если он есть. Сервер возвращает следующие 10 уникальных вакансий. (2) «Покажи больше похожих на #N» / «похожие на ту, что у Atlassian» / «вакансии как #2»: передайте refine_recommendations.liked_indexes = [N] (позиция, начиная с 1, из предыдущего нумерованного списка) + exclude_ids + session_id. Аналогично можно передать refine_recommendations.liked_job_ids = [<значение **Job Id** этой вакансии дословно>]. Сервер строит рекомендацию на основе названия, навыков и профиля компании этой вакансии. (3) «Меньше похожих на #N» / «никаких вакансий в стиле N» / «исключи похожие вакансии»: передайте refine_recommendations.disliked_indexes = [N] (или disliked_job_ids = [<Job Id>]) + exclude_ids + session_id. Сервер подавляет похожие вакансии. Во всех трёх режимах: если пропустить exclude_ids, пользователь увидит дубликаты, это ошибка. Обработчик объединяет exclude_ids с серверной памятью AgentKit, поэтому частичные списки всё равно работают. НИКОГДА не выдумывайте 'JOB_1' / '#1' в качестве значений job_id, всегда используйте настоящую строку Job Id из текста содержимого предыдущего результата. Для запросов деталей (пользователь спрашивает о конкретной вакансии из списка, например, «детали по #1», «покажи эту вакансию», «расскажи подробнее о <компании>») НЕ вызывайте этот инструмент, вместо этого вызывайте job_detail_tool. Этот отдельный инструмент привязан к карточке виджета с деталями вакансии, поэтому полная вакансия…

Параметры
  • actionenum

    Optional; omitted = search. refine = after results/feedback; save = bookmark a job for the signed-in user.

  • parametersobject
  • refine_recommendationsobject

    Refine args. Pass exclude_ids (array of Job Id strings from prior result) and session_id always. For 'more like #N': pass liked_indexes=[N] or liked_job_ids=[<Job Id>]. For 'less like #N': pass disliked_indexes=[N] or disliked_job_ids=[<Job Id>]. job_title/city optional — auto-filled from prior search via session memory.

  • save_jobobject

    Save args. Required: job_id (from job_cards[].card.id in a prior search result). Optional: job_title, company, job_url.

  • search_jobsobject

    Search args. Required: city. Optional filters surface only when the user explicitly mentions them — omit otherwise. job_title+city uses indexed snapshot; company+city (optional job_title) uses legacy DB match.

tailor_resume_tool

Адаптирует резюме под КОНКРЕТНУЮ вакансию - ДВА шага. ШАГ 1 (по умолчанию; параметр action опущен или равен 'prepare'): сервер возвращает полное описание вакансии (JD), её обязательные навыки/требования и текущее резюме кандидата, а также инструкции по адаптации. ЗАТЕМ ВЫ (модель) ПИШЕТЕ адаптированное резюме в формате JSON Resume, следуя инструкциям: вплетайте ключевые слова из JD в существующие пункты только там, где у кандидата действительно есть опыт, никогда не выдумывайте опыт, должности, даты или работодателей, сохраняйте все даты и названия компаний и помечайте любое ключевое слово, которое честно добавить не удалось. ШАГ 2: снова вызовите этот инструмент с параметрами action:'save', tailored_resume:<ваш JSON Resume> и job_id - сервер формирует PDF и сохраняет его в личный кабинет Workopia кандидата (требуется вход в систему). Используйте всякий раз, когда пользователь упоминает конкретную вакансию, под которую нужно адаптировать резюме: 'tailor for #1', 'for Morgan Stanley', 'tailor my resume for this role: <JD>'. Определение job_id (те же правила, что и у job_detail_tool): из самого последнего результата предыдущего поиска/уточнения - (a) число/порядковый номер → N-я вакансия; (b) название компании → совпадение по полю Company; (c) фраза с должностью → совпадение по полю Job-Title - затем передайте значение Job Id этой вакансии ДОСЛОВНО. НЕ используйте заполнители вроде 'JOB_1' или '#1'. Для ШАГА 1 укажите ОДИН из параметров: job_id (предпочтительно - сервер получает JD из Mongo) ЛИБО job_description, плюс резюме кандидата через resume_text / resume_content / resume_data. Для общего запроса 'улучшить моё резюме' (без конкретной вакансии) НЕ вызывайте этот инструмент - вместо этого вызовите resume_tool с action=improve. Примечание: адаптированное резюме пишет собственная модель вашего AI-клиента - тот самый ассистент, которого вы уже используете, - поэтому всё работает из коробки, настраивать ничего не нужно; Workopia не запускает собственную LLM и никогда не берёт плату за AI.

Параметры
  • actionenum

    Omit or 'prepare' = STEP 1 (server returns JD + resume + instructions for you to tailor). 'save' = STEP 2 (pass tailored_resume; server renders a PDF and saves it to the dashboard; requires sign-in).

  • companystring
  • customization_levelenum
  • job_descriptionstring

    Full JD text when the user pastes it directly (alternative to job_id).

  • job_idstring

    ID of a job from a prior search/refine result. Use the Job Id value from the prior search result's content text VERBATIM. Server fetches full JD from Mongo.

  • job_titlestring
  • parametersobject
  • resume_contentstring
  • resume_dataobject

    PREFERRED shape — structured resume per utils/tailor/types.ts ResumeTree. Server, widget, and main-site PDF template all consume this exact shape. Collect these fields from the user before calling when possible.

  • resume_textstring

    User's resume content (plain text or JSON Resume as string). Fallback when resume_data is not provided.

  • session_idstring
  • tailored_resumeobject

    STEP 2 only: the tailored resume you generated, as a JSON Resume object (or a JSON string). The server renders it to PDF and stores it on profile.applications[job_id].resumeTailor.

  • tailor_resumeobject

    Optional wrapper containing the same fields above (legacy shape).

  • user_emailstring
  • user_profileobject

    Optional main-site profile object; used as a fallback source for name/title/contact/experience when resume_data and resume_text are both absent.

У этого сервера пока нет списка версий.

Выберите клиент, чтобы установить workopia/workopia-mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "workopia-workopia-mcp-kj88nbeqbh": {
      "type": "streamable-http",
      "url": "https://workopia.io/api/mcp-jobs"
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "workopia-workopia-mcp-kj88nbeqbh": {
      "type": "streamable-http",
      "url": "https://workopia.io/api/mcp-jobs"
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "workopia-workopia-mcp-kj88nbeqbh": {
      "type": "streamable-http",
      "url": "https://workopia.io/api/mcp-jobs"
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"workopia-workopia-mcp-kj88nbeqbh\",\"type\":\"streamable-http\",\"url\":\"https://workopia.io/api/mcp-jobs\"}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "workopia-workopia-mcp-kj88nbeqbh": {
      "type": "streamable-http",
      "url": "https://workopia.io/api/mcp-jobs"
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add --transport http workopia-workopia-mcp-kj88nbeqbh https://workopia.io/api/mcp-jobs

Либо через JSON-конфиг:

claude mcp add-json workopia-workopia-mcp-kj88nbeqbh "{\"type\":\"streamable-http\",\"url\":\"https://workopia.io/api/mcp-jobs\"}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add workopia-workopia-mcp-kj88nbeqbh --url https://workopia.io/api/mcp-jobs

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.workopia-workopia-mcp-kj88nbeqbh]
url = "https://workopia.io/api/mcp-jobs"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите workopia/workopia-mcp.

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "workopia-workopia-mcp-kj88nbeqbh": {
      "type": "streamable-http",
      "url": "https://workopia.io/api/mcp-jobs"
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "workopia-workopia-mcp-kj88nbeqbh": {
      "type": "streamable-http",
      "url": "https://workopia.io/api/mcp-jobs",
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например workopia-workopia-mcp-kj88nbeqbh.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: workopia-workopia-mcp-kj88nbeqbh
    type: streamable-http
    url: https://workopia.io/api/mcp-jobs
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "workopia-workopia-mcp-kj88nbeqbh": {
      "type": "streamable-http",
      "url": "https://workopia.io/api/mcp-jobs"
    }
  }
}

Похожие MCP-сервера

mnoomnoo/resume-mcp-server

mnoomnoo/resume-mcp-server

от mnoomnoo

MCP сервер для поиска по коллекции резюме и сопроводительных писем. Парсит docx, pdf, md, txt, индексирует навыки, компании, достижения. Полезен соискателям и рекрутерам, позволяя ИИ-клиентам находить нужные документы по любому критерию без ручного копирования.

Python1
6figr-com/jobgpt-mcp-server

6figr-com/jobgpt-mcp-server

от 6figr-com

MCP сервер JobGPT интегрирует AI-ассистентов с платформой поиска работы для автоматического поиска и отклика, генерации резюме под должность и отслеживания заявок. Помогает соискателям автоматизировать процесс.

TypeScript24
Himalayas-App/himalayas-mcp

Himalayas-App/himalayas-mcp

от himalayas-app

MCP-сервер для поиска удалённых вакансий, публикации вакансий, найма кандидатов и проверки зарплатных данных через AI. Работает с Claude, ChatGPT и другими платформами. Полезен рекрутерам и соискат...

20
Exa MCP Server

Exa MCP Server

официальный

от exa-labs

Exa MCP Server даёт AI-ассистентам доступ к веб-поиску, поиску кода и исследованию компаний через Exa. Сервер легко интегрируется в Cursor, VS Code и Claude, предоставляя готовые инструменты для разработчиков. Просто подключите API-ключ и получите актуальные данные.

TypeScript5035
kagisearch/kagimcp

kagisearch/kagimcp

от kagisearch

MCP-сервер для поиска и извлечения контента через Kagi API. Поддерживает веб, новости, видео, подкасты, изображения и выгрузку страниц в Markdown. Полезен разработчикам MCP-клиентов.

Python526
andyliszewski/webcrawl-mcp

andyliszewski/webcrawl-mcp

от andyliszewski

MCP сервер для веб-скрапинга, поиска и обхода сайтов без headless-браузера. Использует бесплатные библиотеки (trafilatura) для извлечения контента, с опциональным Fallback на Firecrawl для JS-тяжёл...

Python16
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин