BR
LinkedInLinkedIn Recruiter MCP

LinkedIn Recruiter MCP Server para o seu ATS

Seu agente de código lê as rotas do Recruiter do Servidor MCP da Unipile e cria busca de candidatos, projetos de contratação e InMail no seu ATS.
Teste grátis de 7 dias, sem cartão de crédito.
Seu agente de código
Unipile MCP conectado
Sarah
Adicione a busca de candidatos do Recruiter à página de sourcing do meu ATS.
Ler endpointPOST /v2/{account_id}/linkedin/recruiter/search/peopleschema carregado
Adicionei searchCandidates() no backend. Ele confere o contrato primeiro: 40 candidatos na primeira página.
4 arquivos alterados · testado na aplicação Development
Descreva o próximo recurso…
A resposta curta

Existe um servidor MCP oficial do LinkedIn Recruiter?

Não. O LinkedIn não publica um servidor Model Context Protocol, nem para o Recruiter nem para mais nada. O servidor MCP da Unipile é um servidor de terceiros hospedado, gerado a partir da API da Unipile, e expõe as rotas da API do LinkedIn Recruiter: busca de candidatos, projetos de contratação, pipelines, talent pool, candidaturas, vagas e Recruiter InMail. Seu agente de código lê esses endpoints e escreve a integração no seu produto, onde cada recrutador conecta a própria conta do LinkedIn pelo Hosted Auth e seu código age em nome desse usuário autenticado, no contrato Recruiter que ele tem.

A URL do servidor

URL do servidor LinkedIn Recruiter MCPAtivo
https://developer.unipile.com/mcp?branch=v2.0
AutenticaçãoHeader X-API-KEY com uma chave de API de conta com escopo, sobre streamable HTTP. A mesma URL atende LinkedIn Classic, Sales Navigator, Recruiter e outros oito canais.
ContasUma conta de teste do LinkedIn com contrato Recruiter na sua aplicação Development enquanto você constrói; em produção, a conta que cada recrutador conectou pelo Hosted Auth.
Recruiter25 rotas em /v2/{account_id}/linkedin/recruiter, mais o Recruiter InMail em POST /v2/{account_id}/chats/send.
ClientesCodex, Cursor, Claude Code, Gemini CLI, Windsurf ou qualquer cliente MCP sobre streamable HTTP.

Como um prompt vira código no seu ATS

1
Você descreve o recursoAdicione a busca de candidatos do Recruiter à página de sourcing, filtrada por skills, localização e anos de experiência.
2
O agente lê os endpoints do Recruiter
Ler endpointPOST /v2/{account_id}/linkedin/recruiter/search/peopleschema carregado
3
Ele escreve o código e o testa na sua aplicação DevelopmentAdicionei searchCandidates() e um formulário de filtros alimentado pela rota de parâmetros de busca do Recruiter, ligado à página de sourcing. Rodei na aplicação Development: 25 candidatos, perfil aberto com a variante Recruiter.
Toda a API da Unipile, legível pelo seu agente de código
Prompts, não código de cola

O que seu agente de código constrói com o LinkedIn Recruiter MCP

Escolha um recurso de recrutamento. Cada transcrição mostra o prompt que você dá ao agente, os endpoints da API do LinkedIn Recruiter que ele lê e executa pelo servidor MCP da Unipile, e o que chega ao seu ATS. Os paths estão completos, sobre a URL base da API https://api.unipile.com, com uma chave com escopo no X-API-KEY como header.
Codex · sourcing-appAplicação Development
Adicione a busca de candidatos do LinkedIn Recruiter à página de sourcing: skills, cargo, senioridade, um CEP com raio, anos de experiência.
Executar requisiçãoPOST /v2/{account_id}/linkedin/recruiter/search/parametersIDs resolvidos
Executar requisiçãoPOST /v2/{account_id}/linkedin/recruiter/search/people40 candidatos
Adicionei recruiter-search.ts: o formulário de filtros resolve skills, cargos e localizações para IDs com a rota de parâmetros de busca e depois chama a busca de pessoas com skills, title, seniority, postal_code_radius e years_of_experience. Os resultados paginam com o que a API devolve. Testado na aplicação Development: 40 candidatos na primeira página.4 arquivos alterados · testado na aplicação Development

Busca de candidatos do Recruiter, com os filtros do próprio Recruiter

A rota de busca de pessoas aceita o conjunto de filtros do Recruiter: skills, cargos, senioridade, empresas, escolas, localizações, idiomas e sinais do Recruiter como recently_joined, is_past_applicant ou hide_previously_viewed. Os resultados são o que o recrutador conectado pode ver no próprio contrato.
Endpoints usados pelo agente
POST/v2/{account_id}/linkedin/recruiter/search/parametersPOST/v2/{account_id}/linkedin/recruiter/search/peopleGET/v2/{account_id}/users/{user_id}
Erro comum: Enviar uma localização ou uma skill como texto livre. Filtros que apontam para uma entidade do LinkedIn aceitam IDs: resolva-os antes com POST /v2/{account_id}/linkedin/recruiter/search/parameters. É um POST, ao contrário da rota GET de parâmetros do Sales Navigator.
Guia da API de busca do Recruiter
Cursor · ats-appAplicação Development
Deixe os recrutadores colarem uma URL de busca do LinkedIn Recruiter, ou escolherem uma das buscas salvas, e importe os candidatos para o ATS.
Ler endpointPOST /v2/{account_id}/linkedin/recruiter/searchschema carregado
Executar requisiçãoPOST /v2/{account_id}/linkedin/recruiter/search/people25 candidatos
Adicionei um diálogo "Importar do Recruiter". Uma URL colada vai para a rota de busca por URL; uma busca salva passa pela busca de pessoas com load_saved_search. Os candidatos passam por upsert pelo ID do LinkedIn, então uma segunda importação não os duplica.3 arquivos alterados · testado na aplicação Development

Reaproveite as buscas que os recrutadores já montaram no Recruiter

Os recrutadores gastam tempo ajustando uma busca. A rota de busca por URL executa uma URL de busca do Recruiter tal como está, e a busca de pessoas pode carregar uma busca salva ou um filtro personalizado salvo (load_saved_search, load_custom_filter) ou salvar um novo (save_search, save_custom_filter).
Endpoints usados pelo agente
POST/v2/{account_id}/linkedin/recruiter/searchPOST/v2/{account_id}/linkedin/recruiter/search/peoplePOST/v2/{account_id}/linkedin/recruiter/search/parameters
Erro comum: Enviar uma URL do Classic ou do Sales Navigator para a rota do Recruiter. Cada produto tem a própria rota de busca por URL; escolha a rota conforme a origem da URL.
API do LinkedIn para software de recrutamento
Claude Code · ats-appAplicação Development
Quando um recrutador abrir um candidato, mostre o perfil como o LinkedIn Recruiter mostra, com a seção de atividade de recrutamento.
Ler endpointGET /v2/{account_id}/users/{user_id}schema carregado
Executar requisiçãoGET /v2/{account_id}/users/{user_id}?variant=linkedin_recruiter&with_sections=linkedin_recruiting_activity200 OK
Adicionei getRecruiterProfile(id) com variant=linkedin_recruiter e a seção linkedin_recruiting_activity , e uma aba "Atividade de recrutamento" na página do candidato. A chamada só roda quando o recrutador abre o perfil.3 arquivos alterados · testado na aplicação Development

O perfil do candidato como o Recruiter mostra

A rota de perfil tem três variantes de LinkedIn: linkedin_classic, linkedin_sales_navigator e linkedin_recruiter. Com a variante Recruiter, o agente pode pedir a seção de atividade de recrutamento, que só existe no Recruiter, ao lado de seções como experiência, formação, skills e idiomas.
Endpoints usados pelo agente
GET/v2/{account_id}/users/{user_id}POST/v2/{account_id}/linkedin/recruiter/search/peopleGET/v2/{account_id}/linkedin/contracts
Erro comum: Deixar de fora variant=linkedin_recruiter e esperar dados do Recruiter. A seção linkedin_recruiting_activity é exclusiva do Recruiter; peça-a com a variante Recruiter.
Servidor MCP LinkedIn: perfis Classic e mensageria
Gemini CLI · ats-appAplicação Development
Espelhe cada requisição de vaga do ATS como um projeto de contratação do LinkedIn Recruiter: crie-o quando o recrutador abrir a vaga e atualize-o quando a vaga mudar.
Executar requisiçãoGET /v2/{account_id}/linkedin/recruiter/projects12 projetos
Ler endpointPOST /v2/{account_id}/linkedin/recruiter/projectsschema carregado
Adicionei recruiter-projects.ts: a primeira sincronização vincula os projetos existentes às requisições de vaga, "Criar no Recruiter" cria um projeto a partir da página da requisição, e as edições passam por PATCH no projeto. O ID do projeto fica salvo na requisição de vaga.4 arquivos alterados · testado na aplicação Development

Projetos de contratação sincronizados com suas requisições de vaga

Liste, crie, leia e edite projetos de contratação do Recruiter a partir do seu ATS. O ID do projeto delimita todo o resto: pipeline, busca no talent pool, candidaturas e vagas.
Endpoints usados pelo agente
GET/v2/{account_id}/linkedin/recruiter/projectsPOST/v2/{account_id}/linkedin/recruiter/projectsPATCH/v2/{account_id}/linkedin/recruiter/projects/{project_id}
Erro comum: Repetir a criação de um projeto após um timeout. Liste os projetos primeiro para ver se ele foi criado e só então decida; uma nova tentativa às cegas pode deixar dois projetos.
Recursos para software de recrutamento
Claude Code · ats-appAplicação Development
Mostre o pipeline de cada projeto do Recruiter na página da requisição de vaga, adicione uma busca no talent pool e deixe os recrutadores salvarem um candidato no pipeline.
Executar requisiçãoPOST /v2/{account_id}/linkedin/recruiter/projects/{project_id}/pipeline34 candidatos
Executar requisiçãoPOST /v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/search18 resultados
Adicionei a visualização do pipeline (candidatos com upsert na requisição de vaga), uma caixa de busca no talent pool do projeto e um botão "Salvar no pipeline" ligado à rota de salvamento de candidato. Cada salvamento roda no clique do recrutador, um candidato por vez.5 arquivos alterados · testado na aplicação Development

Pipelines e talent pools, dentro da requisição de vaga

A rota de pipeline lista os candidatos de um projeto e a rota de salvamento adiciona um. A busca no talent pool executa uma busca de pessoas a partir do talent pool do projeto, então a página da requisição mostra os mesmos candidatos com que o recrutador trabalha no Recruiter.
Endpoints usados pelo agente
POST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/pipelinePOST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/pipeline/candidate/savePOST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/search
Erro comum: Chamar as rotas de listagem com GET. Listar os candidatos do pipeline e buscar no talent pool são rotas POST que aceitam um body.
Recursos de mensageria e de workflow para ATS
Cursor · ats-appAplicação Development
Importe as candidaturas da vaga do LinkedIn de cada projeto para a lista de candidatos do ATS, com os currículos.
Executar requisiçãoPOST /v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicants52 candidaturas
Executar requisiçãoGET /v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicants/{applicant_profile_id}/resumecurrículo
Adicionei a importação de candidaturas por projeto (lista, depois detalhe com a rota de candidatura) e a recuperação do currículo, salvo na ficha do candidato. Os currículos são buscados quando o recrutador abre uma candidatura, não para a lista inteira.4 arquivos alterados · testado na aplicação Development

Candidaturas às vagas e seus currículos, no ATS

Para um projeto com vaga publicada, a rota de candidaturas lista quem se candidatou, a rota de candidatura devolve uma candidatura, e a rota de currículo devolve o currículo daquele candidato. Seu ATS recebe as candidaturas do LinkedIn ao lado das que vêm do próprio site de carreiras.
Endpoints usados pelo agente
POST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicantsGET/v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicants/{applicant_id}GET/v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicants/{applicant_profile_id}/resume
Erro comum: Supor que a rota de currículo aceita o mesmo ID da rota de candidatura. O parâmetro de path dela é applicant_profile_id, não applicant_id; o agente lê os dois schemas antes de ligá-las.
API de vagas do LinkedIn
Codex · ats-appAplicação Development
Deixe os recrutadores enviarem um Recruiter InMail a partir da página do candidato, com assunto e assinatura, visível para a equipe do projeto.
Ler endpointPOST /v2/{account_id}/chats/sendspecifics carregados
Executar requisiçãoGET /v2/{account_id}/linkedin/inmail-creditscréditos
Adicionei sendRecruiterInmail() na rota de início de chat com specifics.linkedin.recruiter: subject, signature, visibility: PROJECT, intent: HIRE_FOR_OWN_COMPANY, send_as: INMAIL. O compositor mostra os créditos de InMail, e um envio com falha é informado ao recrutador, nunca repetido.3 arquivos alterados · testado na aplicação Development

Recruiter InMail a partir da página do candidato

As mensagens do Recruiter passam pela rota de início de chat com specifics.linkedin.recruiter: assunto, assinatura, visibilidade (PUBLIC, PRIVATE ou PROJECT), intenção (HIRE_FOR_CLIENT ou HIRE_FOR_OWN_COMPANY), send_as (INMAIL, ou EMAIL usando os dados do perfil), um channel_type do talent pool do projeto, e follow_up para agendar uma mensagem de follow-up em contratos Recruiter Pro.
Endpoints usados pelo agente
POST/v2/{account_id}/chats/sendGET/v2/{account_id}/linkedin/inmail-creditsGET/v2/{account_id}/chats/{chat_id}/messages
Erro comum: Manter os valores padrão sem conferi-los. intent tem como padrão HIRE_FOR_CLIENT e visibility para PRIVATE: uma equipe interna geralmente quer HIRE_FOR_OWN_COMPANY, e um projeto compartilhado pode querer PROJECT.
Enviar mensagens em nome dos recrutadores
Windsurf · ats-appAplicação Development
Publique as vagas do ATS no LinkedIn a partir da página da requisição: crie o rascunho, confira os créditos de job slots, publique e encerre o anúncio quando a vaga for preenchida.
Executar requisiçãoGET /v2/{account_id}/linkedin/recruiter/job-slots-creditscréditos
Executar requisiçãoPOST /v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs/{job_id}/publishpublicada
Adicionei o fluxo de publicação de vagas: um rascunho no projeto da requisição de vaga (ou em um novo projeto), edições com PATCH, o orçamento do anúncio, uma checagem dos créditos de job slots antes de habilitar o botão Publicar, e Encerrar quando a requisição é preenchida. Cada etapa é um clique do recrutador.6 arquivos alterados · testado na aplicação Development

Vagas a partir da requisição, com os créditos conferidos antes

Crie um rascunho em um projeto existente ou em um novo, edite, publique e encerre. Liste os anúncios, leia um deles, leia o orçamento de um anúncio e os créditos de job slots do contrato antes de publicar.
Endpoints usados pelo agente
POST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobsGET/v2/{account_id}/linkedin/recruiter/job-slots-creditsPOST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs/{job_id}/publish
Erro comum: Publicar sem ler os créditos. Chame GET /v2/{account_id}/linkedin/recruiter/job-slots-credits primeiro e mostre o resultado ao recrutador; publicar continua sendo decisão dele.
API de vagas do LinkedIn
Rotas reais, paths completos

Todas as rotas da API do LinkedIn Recruiter que o servidor MCP expõe

O servidor expõe a própria API da Unipile, então o que seu agente de código consegue construir no Recruiter é o que a API faz. Abaixo estão as 25 rotas do Recruiter, agrupadas por recurso, e as rotas compartilhadas do LinkedIn que uma integração Recruiter também usa. Os paths estão completos, sobre a URL base da API https://api.unipile.com, com a chave com escopo no X-API-KEY como header.
25Rotas do Recruiter em /linkedin/recruiter, no contrato que o usuário conectou
3formas de buscar: filtros, uma URL do Recruiter, o talent pool de um projeto
1rota de envio para o Recruiter InMail, com specifics.linkedin.recruiter
0endpoints para adivinhar: o agente lê o schema exato antes de escrever código
3 rotas
Busca de candidatos Busca de pessoas do Recruiter com o conjunto completo de filtros, busca a partir de uma URL do Recruiter e a rota de parâmetros que resolve os valores dos filtros para IDs.
POST/v2/{account_id}/linkedin/recruiter/search/people
POST/v2/{account_id}/linkedin/recruiter/search
POST/v2/{account_id}/linkedin/recruiter/search/parameters
"Adicione à página de sourcing a busca de candidatos do Recruiter com filtros de skills, localização e senioridade."
4 rotas
Projetos de contratação Liste, crie, leia e edite os projetos de contratação do contrato Recruiter. O ID do projeto delimita pipeline, talent pool, candidaturas e vagas.
GET/v2/{account_id}/linkedin/recruiter/projects
POST/v2/{account_id}/linkedin/recruiter/projects
GET/v2/{account_id}/linkedin/recruiter/projects/{project_id}
PATCH/v2/{account_id}/linkedin/recruiter/projects/{project_id}
"Crie um projeto no Recruiter para cada nova requisição de vaga e mantenha o nome sincronizado."
3 rotas
Pipeline e talent pool Liste os candidatos do pipeline de um projeto, salve um candidato nele, busque no talent pool do projeto.
POST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/pipeline
POST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/pipeline/candidate/save
POST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/search
"Mostre o pipeline de cada projeto na página da requisição de vaga, com um botão Salvar no pipeline."
3 rotas
Candidaturas e currículos Liste as candidaturas da vaga de um projeto, leia uma candidatura, recupere o currículo do candidato.
POST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicants
GET/v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicants/{applicant_id}
GET/v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicants/{applicant_profile_id}/resume
"Importe as candidaturas do LinkedIn e seus currículos para a lista de candidatos do ATS."
8 rotas
Vagas Crie um rascunho em um projeto novo ou existente, edite, publique e encerre, liste os anúncios e leia um deles.
POST/v2/{account_id}/linkedin/recruiter/jobs
POST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs
GET/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs
GET/v2/{account_id}/linkedin/recruiter/jobs
GET/v2/{account_id}/linkedin/recruiter/jobs/{job_id}
PATCH/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs/{job_id}
POST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs/{job_id}/publish
POST/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs/{job_id}/close
"Publique a requisição como vaga no LinkedIn e encerre-a quando a posição for preenchida."
2 rotas
Orçamento e job slots Leia o orçamento de um anúncio de vaga e os créditos de job slots do contrato antes que sua interface ofereça a publicação.
GET/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs/{job_id}/budget
GET/v2/{account_id}/linkedin/recruiter/job-slots-credits
"Desative Publicar e explique o motivo quando o contrato não tiver mais job slots."
2 rotas
Verificação de membro da empresa Verifique a identidade de um membro da empresa: solicite o e-mail de verificação e depois envie o código de uso único que o usuário recebe.
POST/v2/{account_id}/linkedin/recruiter/company/{company_id}/member/verify-email
POST/v2/{account_id}/linkedin/recruiter/company/{company_id}/member/submit-otp
"Adicione uma etapa de verificação em que o recrutador digita o código que recebeu."
8 compartilhadas
Rotas compartilhadas do LinkedIn Recruiter InMail, a variante de perfil Recruiter, créditos de InMail, contratos e a conexão da conta pelo Hosted Auth.
POST/v2/{account_id}/chats/send
POST/v2/{account_id}/inboxes/{inbox_id}/chats/send
GET/v2/{account_id}/users/{user_id}
GET/v2/{account_id}/linkedin/inmail-credits
GET/v2/{account_id}/linkedin/contracts
POST/v2/{account_id}/linkedin/contracts/{contract_id}/select
POST/v2/auth/link
GET/v2/accounts/
"Confira os contratos da conta após a conexão e esconda os recursos do Recruiter quando não houver nenhum."
Uma requisição completa, exatamente como o agente a executa
POSThttps://api.unipile.com/v2/{account_id}/linkedin/recruiter/search/peopleX-API-KEY: your-scoped-api-key200 OK
O servidor acompanha cada release da API da Unipile, então uma nova rota do Recruiter chega ao seu agente no dia em que é lançada. Em produção, seu produto chama as mesmas rotas na conta que cada recrutador conectou pelo Hosted Auth, como ações do usuário na sua interface. As mesmas rotas da API LinkedIn da Unipile, no código que o agente escreve ou pelos SDKs oficiais.·referência da API
LinkedInFiltros de busca do Recruiter

Filtros de busca do LinkedIn Recruiter MCP: o conjunto completo do Recruiter

A busca de pessoas do Recruiter é onde começa a maioria dos recursos de ATS e de sourcing. A rota POST /v2/{account_id}/linkedin/recruiter/search/people documenta 56 campos de body; o agente os lê no schema e monta o formulário de filtros que seus recrutadores esperam. Os principais, agrupados do jeito que um recrutador pensa.
Skills e experiência12 campos
Os filtros que os recrutadores usam primeiro: o que o candidato faz, em que nível, há quanto tempo. Campos de body da busca de pessoas
Skills, cargos e funçãoskills, title, job_title, job_function
Senioridade e tempo de casaseniority, years_of_experience, years_in_current_company, years_in_current_position
Palavras-chave e nomeskeywords, first_name, last_name, occupation
"Encontre engenheiros de backend com Go e Kubernetes, nível sênior, de 5 a 10 anos de experiência."
Empresas e formação9 campos
Onde o candidato trabalha ou trabalhou, o tipo de empresa e onde estudou. Campos de body da busca de pessoas
Empresascompany, current_company, past_company
Setor e porte da empresaindustry, company_size
Formaçãoschool, degree, field_of_study, graduation_year
"Adicione um filtro de empresa anterior e um intervalo de ano de formatura ao formulário de sourcing."
Localização, modelo de trabalho e idiomas8 campos
Onde o candidato está, como quer trabalhar, quais idiomas fala. Campos de body da busca de pessoas
Localização e raiolocation, postal_code, postal_code_radius
Local de trabalho e contrataçãoworkplace_type, employment_type
Idiomasspoken_language, proficiency, profile_language
"Busque num raio de 30 km de um CEP, remoto ou híbrido, com alemão."
Sinais do Recruiter e o trabalho da sua equipe16 campos
Filtros que só fazem sentido no Recruiter: sinais de atividade, os projetos da equipe, tags e notas, e buscas salvas. Campos de body da busca de pessoas
Sinaisrecently_joined, hide_previously_viewed, new_results_only, is_past_applicant, recruiting_activity, spotlights, is_military_veteran, network_distance
Projetos, tags e notasproject, project_id, tags, notes
Buscas salvas e filtros personalizadosload_saved_search, save_search, load_custom_filter, save_custom_filter
"Esconda os candidatos que o recrutador já viu e mostre só os resultados novos desde a última execução."
Filtros que apontam para uma entidade do LinkedIn (uma localização, uma skill, uma empresa, uma escola) aceitam IDs. O agente os resolve com POST /v2/{account_id}/linkedin/recruiter/search/parameters antes de chamar a busca, e então passa os IDs. O schema também documenta exclude, group, id, include, max, min, name, preferences, priority, timespan e type; o agente lê o formato exato de cada um antes de escrever o formulário. Todo filtro roda no contrato Recruiter da conta conectada.
Início rápido

Adicione o LinkedIn Recruiter MCP ao seu agente de código em uma linha

Não há um servidor Recruiter separado para instalar: o servidor MCP hospedado da Unipile cobre o LinkedIn Recruiter na mesma URL do LinkedIn Classic, do Sales Navigator e de todos os outros canais. Aponte seu agente de código para ela com uma chave de API com escopo, e ele lê os endpoints do Recruiter e executa requisições na sua aplicação Development. Os trechos abaixo são os da documentação oficial.
Cursor~/.cursor/mcp.json
Claude Codeclaude mcp add --transport http …
Codex CLI e extensão da IDE~/.codex/config.toml
Gemini CLI~/.gemini/settings.json
Windsurf~/.codeium/windsurf/mcp_config.json
~/.cursor/mcp.json
# Registre o servidor MCP hospedado da Unipile no Claude Code claude mcp add --transport http --scope user \ unipile "https://developer.unipile.com/mcp?branch=v2.0" \ --header "X-API-KEY: your-scoped-api-key" # Verifique a conexão, ou digite /mcp dentro de uma sessão claude mcp list
{ "mcpServers": { "unipile": { "url": "https://developer.unipile.com/mcp?branch=v2.0", "headers": { "X-API-KEY": "your-scoped-api-key" } } } }
{ "mcpServers": { "unipile": { "url": "https://developer.unipile.com/mcp?branch=v2.0", "headers": { "X-API-KEY": "your-scoped-api-key" } } } }
# O Codex CLI e a extensão Codex da IDE compartilham este arquivo [mcp_servers.unipile] url = "https://developer.unipile.com/mcp?branch=v2.0" http_headers = { X-API-KEY = "your-scoped-api-key" } # Verifique: codex mcp list
{ "mcpServers": { "unipile": { "httpUrl": "https://developer.unipile.com/mcp?branch=v2.0", "headers": { "X-API-KEY": "your-scoped-api-key" } } } } # Verifique: /mcp dentro do Gemini CLI
Servidor conectado. Experimente: "Adicione a busca de candidatos do LinkedIn Recruiter à página de sourcing e depois abra o perfil selecionado com a variante Recruiter."
1
Comece por uma aplicação DevelopmentNo dashboard da Unipile, trabalhe na sua aplicação Development: conecte pelo Hosted Auth uma conta de teste do LinkedIn que tenha um contrato Recruiter, crie um Scope com ela e uma chave de API de conta com escopo para esse Scope. A Production fica intacta, e um cliente MCP nunca recebe uma chave global ou Service.
2
Adicione o servidor ao seu agente de códigoCole a config do seu cliente, com a chave com escopo no header X-API-KEY. Reinicie o cliente se ele não reconhecer de imediato.
3
Descreva o recurso, revise o códigoDescreva o recurso do Recruiter que você precisa. O agente lê os endpoints, escreve o código no seu projeto e executa requisições na aplicação Development. Troque a chave para a Production quando o fluxo passar.
Em nome do recrutador

Em qual contrato Recruiter sua integração age?

Enquanto você constrói, na conta de teste da sua aplicação Development. Em produção, na conta do LinkedIn que cada recrutador conectou pelo Hosted Auth, com o contrato Recruiter que essa conta tem, dentro de fluxos que o próprio recrutador inicia e controla.
1 · Seu agente de código Codex, Cursor, Claude Code Lê os schemas do Recruiter, escreve o código
2 · Servidor MCP da Unipile Hospedado, chave de API com escopo Executa requisições de teste na sua aplicação Development
3 · API da Unipile As rotas do Recruiter Restringe a ação a um ID de conta
4 · LinkedIn Recruiter LinkedIn O contrato selecionado As regras do LinkedIn, créditos de InMail e de job slots
5 · A conta do recrutador O recrutador Conectada pelo Hosted Auth Os projetos, o pipeline e os créditos dele
Conta conectada · ats-appConectada
O recrutadorLinkedIn
Sarah MitchellLinkedIn · contrato Recruiter · vinculado pelo usuário via Hosted Auth
ID de contaacc_7f3…c91, o único identificador que seu código guarda
ContratoListado com GET …/linkedin/contracts, selecionado com POST …/contracts/{contract_id}/select
SessãoMantida pela Unipile, nunca exposta ao seu app
StatusConectada · mudanças de status chegam por webhook
ReconectarDesconectar
Sem contrato Recruiter, sem rotas do RecruiterAs rotas do Recruiter só respondem quando a conta conectada tem um contrato Recruiter. Após a conexão, seu código chama GET /v2/{account_id}/linkedin/contracts, esconde os recursos do Recruiter quando não encontra nenhum, e seleciona um com POST /v2/{account_id}/linkedin/contracts/{contract_id}/select quando a conta tem vários. Algumas opções dependem do contrato: um InMail agendado follow_up é exclusivo de contratos Recruiter Pro.
Os dados ficam na sessão do recrutadorPerfis de candidatos, projetos, pipelines e mensagens passam pela própria sessão do LinkedIn do usuário autenticado. A Unipile não mantém nenhum arquivo, índice ou banco de dados independente de perfis ou conversas do LinkedIn: cada requisição roda a partir de uma ação iniciada pelo usuário.
Um intermediário técnico independenteA Unipile é um intermediário técnico independente, não afiliado ao LinkedIn. Cada requisição é repassada à conta que um recrutador conectou pelo Hosted Auth, em nome desse usuário, limitada ao que ele já pode fazer com a própria licença Recruiter.
O LinkedIn define os limites, você os respeitaOs créditos de InMail, os créditos de job slots e os volumes de busca são definidos pelo LinkedIn e pelo contrato. A Unipile repassa os sinais em tempo real para que seu produto possa pausar ou avisar o recrutador. A frequência com que ele age em uma conta continua sendo uma decisão do lado do cliente.
Limites, sem rodeios

Quais limites do LinkedIn Recruiter continuam valendo

O servidor não suspende as regras do LinkedIn nem adiciona créditos a um contrato. A API dá ao seu ATS os sinais reais da conta, para que o recurso que você lança funcione dentro deles, como o recrutador faria.
O que o LinkedIn e o contrato impõem
Um contrato Recruiter na conta conectadaToda rota em /linkedin/recruiter precisa de um. Sem ele, a conta continua funcionando nas rotas do LinkedIn Classic, mas seus recursos do Recruiter ficam ocultos.
Créditos de InMailO Recruiter InMail gasta os créditos do contrato. Leia-os com GET /v2/{account_id}/linkedin/inmail-credits e mostre-os antes de o recrutador enviar.
Créditos de job slots e orçamento do anúncioPublicar uma vaga usa o que o contrato tem. Leia GET /v2/{account_id}/linkedin/recruiter/job-slots-credits e o orçamento do anúncio antes de oferecer a publicação.
Paginação da buscaAs buscas do Recruiter devolvem páginas. Seu código pagina com o que a API devolve, dentro do que o contrato permite ao recrutador ver.
Checkpoints e verificações de identidadeO LinkedIn pode pedir um código ao dono da conta quando ela é vinculada, e a verificação de identidade de um membro da empresa usa um e-mail e um código de uso único. O usuário digita o código; seu código nunca vê uma senha.
O que incluir no seu ATS
Escritas são ações do recrutadorEnviar um InMail, salvar um candidato, criar um projeto, publicar ou encerrar uma vaga: cada ação é disparada pelo recrutador na sua interface, nunca por um loop em segundo plano.
Confira antes de repetir uma escritaApós uma falha ambígua, liste os projetos, o pipeline ou as vagas para ver o que aconteceu. Uma nova tentativa às cegas pode criar um segundo projeto ou enviar um segundo InMail.
Um Scope e uma chave com escopo por tenantUm workspace só enxerga as contas associadas ao seu Scope. A chave global fica no seu backend, para administração, e o recrutador pode se desconectar quando quiser.
Adapte a interface ao contratoEsconda o que a conta não pode fazer: sem contrato Recruiter, sem aba Recruiter; sem contrato Recruiter Pro, sem follow-up agendado.
Use webhooks para novas mensagensSe o seu ATS precisa reagir às respostas dos candidatos, assine os webhooks e deixe o evento trazer a mensagem, em vez de fazer polling da caixa de entrada.
Quatro formas de conectar um ATS ao LinkedIn

Como as opções de LinkedIn Recruiter MCP se comparam

Toda opção de LinkedIn Recruiter MCP é de terceiros, então a verdadeira pergunta para um produto de recrutamento é como cada uma chega ao Recruiter, com o contrato de quem, e o que você consegue lançar com ela. As quatro famílias que você vai encontrar, lado a lado.
Servidor MCP da Unipile Servidores open-source da comunidade Marketplaces de dados públicos Pontes MCP no-code
Como chega ao Recruiter Servidor MCP da UnipileA conta do LinkedIn que cada recrutador conecta pelo Hosted Auth, e depois as rotas da API Recruiter no contrato dela Servidores open-source da comunidadeSeu próprio login do LinkedIn na sua máquina, guiado por uma sessão de navegador Marketplaces de dados públicosPáginas públicas, sem conta, sem acesso ao Recruiter Pontes MCP no-codeA conexão do app LinkedIn deles e um conjunto de ações predefinidas
Recursos do Recruiter Servidor MCP da UnipileBusca, projetos, pipelines, talent pool, candidaturas, vagas, Recruiter InMail Servidores open-source da comunidadeRaramente além do perfil Classic Marketplaces de dados públicosSó perfis públicos, sem projetos nem pipelines Pontes MCP no-codePoucas ou nenhuma ação do Recruiter
Ler, ou ler e agir Servidor MCP da UnipileLer e agir: salvar candidatos, criar projetos, publicar vagas, enviar InMail, como recursos do seu ATS Servidores open-source da comunidadeQuase só leitura, algumas escritas dependendo do projeto Marketplaces de dados públicosSomente leitura Pontes MCP no-codeEscritas predefinidas, pouca leitura
Hospedagem e clientes Servidor MCP da UnipileHospedado, uma URL, qualquer agente de código sobre HTTP: Codex, Cursor, Claude Code, Gemini CLI, Windsurf Servidores open-source da comunidadeAuto-hospedado, local ou Docker, em geral um cliente por vez Marketplaces de dados públicosHospedado, um token por cliente Pontes MCP no-codeHospedado, uma URL gerada por configuração
Outros canais no mesmo servidor Servidor MCP da UnipileOito: WhatsApp, Instagram, Telegram, Gmail, Outlook, IMAP, calendários Google e Outlook Servidores open-source da comunidadeNenhum Marketplaces de dados públicosOutras fontes de dados públicos Pontes MCP no-codeMilhares de apps, cada um com um conjunto raso de ações
Modelo de preços Servidor MCP da UnipilePor conta conectada, seja qual for o volume de requisições, teste grátis de 7 dias Servidores open-source da comunidadeGrátis, você hospeda e mantém Marketplaces de dados públicosPor crédito ou por resultado Pontes MCP no-codePor tarefa ou por ação
Sob quais termos seu produto opera Servidor MCP da UnipileA própria conta e o contrato Recruiter de cada recrutador, em fluxos que o recrutador inicia e controla a partir do seu produto Servidores open-source da comunidadeSua conta pessoal, por sua conta e risco Marketplaces de dados públicosOs termos de coleta de dados do marketplace Pontes MCP no-codeOs termos da ponte e as permissões do app LinkedIn dela
As categorias são descritas de forma genérica de propósito. O que diferencia o servidor da Unipile é o modelo de conta: seu ATS lê e age como o recrutador que conectou a conta, no próprio contrato Recruiter dele, por trás de uma única URL de servidor compartilhada com outros oito canais.
6000+ Empresas que inovam com a Unipile
Com a confiança dos líderes do setor
1 API
Simplificar as operações de todos os principais canais de comunicação
2 dias
Obtenha integração ao vivo rapidamente com o mínimo de configuração
30%
Redução dos esforços e recursos de manutenção

Segurança e conformidade incorporadas

Proteção de nível empresarial para seus dados e fluxos de trabalho Saiba mais sobre nossa segurança
SOC 2 Tipo II
SOC 2 Tipo II
Certificado
Controles de segurança auditados de forma independente, garantindo a proteção dos dados e a integridade operacional.
GDPR
GDPR
Em conformidade
Conformidade total com os regulamentos europeus de proteção de dados para a privacidade do usuário.
99.9%
Tempo de atividade da plataforma nos últimos 24 meses
24/7
Suporte global com API de alto desempenho

FAQ do LinkedIn Recruiter MCP

As perguntas que as pessoas realmente fazem: oficial ou não, a URL do servidor, busca de candidatos, projetos e pipelines, Recruiter InMail, contratos e preço.
Não do LinkedIn: ele não publica um servidor Model Context Protocol para o Recruiter. O servidor MCP da Unipile é um servidor de terceiros hospedado, gerado a partir da API da Unipile, e expõe as rotas da API do LinkedIn Recruiter: busca de candidatos, projetos de contratação, pipelines, talent pool, candidaturas, vagas e Recruiter InMail. Seu agente de código lê esses endpoints e escreve a integração no seu produto, onde cada recrutador conecta a própria conta e seu código age em nome desse usuário autenticado. A Unipile é um intermediário técnico independente e não é afiliada, endossada nem patrocinada pelo LinkedIn.
A mesma URL de toda a API da Unipile: https://developer.unipile.com/mcp?branch=v2.0, sobre streamable HTTP, com uma chave de API de conta com escopo no X-API-KEY header. Não existe um servidor Recruiter separado. Cole-a no Codex, Cursor, Claude Code, Gemini CLI ou Windsurf, e o agente encontra os endpoints do Recruiter em /v2/{account_id}/linkedin/recruiter por conta própria.
Sim, em uma conta com contrato Recruiter. O agente lê POST /v2/{account_id}/linkedin/recruiter/search/people e monta a busca com filtros do Recruiter como skills, cargo, senioridade, empresa, escola, localização com raio por CEP, idioma falado, ou sinais como recently_joined e hide_previously_viewed. Ele resolve os valores dos filtros para IDs com POST /v2/{account_id}/linkedin/recruiter/search/parameters, pode rodar uma busca a partir de uma URL do Recruiter com POST /v2/{account_id}/linkedin/recruiter/search, e testa o resultado na sua aplicação Development. As buscas rodam como ações do recrutador que conectou a conta.
Sim. Seu ATS pode listar, criar, ler e editar projetos de contratação (GET e POST /v2/{account_id}/linkedin/recruiter/projects, PATCH /v2/{account_id}/linkedin/recruiter/projects/{project_id}), listar os candidatos do pipeline de um projeto com POST /v2/{account_id}/linkedin/recruiter/projects/{project_id}/pipeline, salvar um candidato nele, buscar no talent pool do projeto e importar candidaturas com os currículos. Salvar um candidato ou criar um projeto continua sendo uma ação do recrutador na sua interface.
Sim, pela POST /v2/{account_id}/chats/send com specifics.linkedin.recruiter: um assunto, uma assinatura, uma visibilidade (PUBLIC, PRIVATE ou PROJECT), uma intenção (HIRE_FOR_CLIENT ou HIRE_FOR_OWN_COMPANY), e send_as definido como INMAIL ou como EMAIL usando os dados do perfil. Um follow_up agendado só está disponível em contratos Recruiter Pro. O InMail gasta os créditos do contrato, legíveis com GET /v2/{account_id}/linkedin/inmail-credits, e cada mensagem é enviada pelo recrutador a partir da sua interface.
As rotas do Recruiter exigem um contrato Recruiter na conta conectada; sem ele, a conta só funciona nas rotas do LinkedIn Classic (mensageria, perfis, busca clássica). O que uma conta pode fazer depende do contrato que ela tem, então seu código lista os contratos dela com GET /v2/{account_id}/linkedin/contracts, seleciona um com POST /v2/{account_id}/linkedin/contracts/{contract_id}/select, e mostra só os recursos que respondem. Teste com o tipo de contrato que seus clientes usam.
São as mesmas rotas usadas em dois momentos. O LinkedIn Recruiter MCP é como seu agente de código lê os endpoints do Recruiter e os testa enquanto escreve sua integração. A LinkedIn Recruiter API é o que seu produto chama em produção, pela API REST ou pelos SDKs oficiais, com as próprias chaves com escopo, nas contas que seus recrutadores conectaram. Você constrói com o MCP e roda na API.
O servidor MCP está incluído em todos os planos da Unipile, sem taxa por mensagem ou por requisição. A cobrança é por conta conectada, seja qual for o canal: a partir de 49 EUR por mês para até 10 contas, depois 5 EUR por conta adicional, chegando a 3 EUR em volume. O teste grátis de 7 dias não precisa de cartão de crédito. O contrato Recruiter em si continua sendo a assinatura do LinkedIn do próprio recrutador. Tabela completa na página de preços.