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
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.
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
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.
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.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.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
Guia da API de busca do Recruiter
POST /v2/{account_id}/linkedin/recruiter/search/parameters. É um POST, ao contrário da rota GET de parâmetros do Sales Navigator.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.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
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.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
Servidor MCP LinkedIn: perfis Classic e mensageria
variant=linkedin_recruiter e esperar dados do Recruiter. A seção linkedin_recruiting_activity é exclusiva do Recruiter; peça-a com a variante Recruiter.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.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
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.
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
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.
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 é
API de vagas do LinkedIn
applicant_profile_id, não applicant_id; o agente lê os dois schemas antes de ligá-las.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.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.
Enviar mensagens em nome dos recrutadores
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.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.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
API de vagas do LinkedIn
GET /v2/{account_id}/linkedin/recruiter/job-slots-credits primeiro e mostre o resultado ao recrutador; publicar continua sendo decisão dele.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
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}
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
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
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
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
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
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/
Uma requisição completa, exatamente como o agente a executa
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
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
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
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
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
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
# 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
O contrato selecionado
As regras do LinkedIn, créditos de InMail e de job slots
5 · A conta do recrutador
Conectada pelo Hosted Auth
Os projetos, o pipeline e os créditos dele
Sarah MitchellLinkedIn · contrato Recruiter · vinculado pelo usuário via Hosted Auth
ID de conta
acc_7f3…c91, o único identificador que seu código guardaContratoListado com
GET …/linkedin/contracts, selecionado com POST …/contracts/{contract_id}/selectSessãoMantida pela Unipile, nunca exposta ao seu app
StatusConectada · mudanças de status chegam por webhook
ReconectarDesconectar
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
Certificado
Controles de segurança auditados de forma independente, garantindo a proteção dos dados e a integridade operacional.
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.