Serveur MCP LinkedIn Recruiter pour votre ATS
Votre agent de codage lit les routes Recruiter du serveur MCP Unipile et intègre la recherche de candidats, les projets de recrutement et InMail dans votre ATS.
Essai gratuit de 7 jours, sans carte bancaire.
Votre agent de codage
MCP Unipile connecté
Ajoute la recherche de candidats Recruiter à la page de sourcing de mon ATS.
Lecture de l'endpointPOST /v2/{account_id}/linkedin/recruiter/search/peopleschéma chargé
Ajout de searchCandidates() côté backend. La fonction vérifie d'abord le contrat : 40 candidats en première page.
Décrivez la fonctionnalité suivante…
En bref
Existe-t-il un serveur MCP LinkedIn Recruiter officiel ?
Non. LinkedIn ne publie pas de serveur Model Context Protocol, ni pour Recruiter ni pour autre chose. Le serveur MCP Unipile est un serveur tiers hébergé, généré à partir de l'API Unipile, et il expose les routes de l'API LinkedIn Recruiter : recherche de candidats, projets de recrutement, pipelines, talent pool, candidatures, offres d'emploi et Recruiter InMail. Votre agent de codage lit ces endpoints et écrit l'intégration dans votre produit, où chaque recruteur connecte son propre compte LinkedIn via Hosted Auth et où votre code agit au nom de cet utilisateur authentifié, sur le contrat Recruiter qu'il détient.
L'URL du serveur
https://developer.unipile.com/mcp?branch=v2.0
AuthentificationEn-tête
X-API-KEY avec une clé Account API scopée, en streamable HTTP. La même URL sert LinkedIn Classic, Sales Navigator, Recruiter et huit autres canaux.ComptesUn compte LinkedIn de test avec un contrat Recruiter sur votre application Development pendant le développement ; en production, le compte que chaque recruteur a connecté via Hosted Auth.
Recruiter25 routes sous
/v2/{account_id}/linkedin/recruiter, plus Recruiter InMail sur POST /v2/{account_id}/chats/send.ClientsCodex, Cursor, Claude Code, Gemini CLI, Windsurf, ou tout client MCP en streamable HTTP.
Comment un prompt devient du code dans votre ATS
1
Vous décrivez la fonctionnalitéAjoute la recherche de candidats Recruiter à la page de sourcing, filtrée par compétences, localisation et années d'expérience.
2
L'agent lit les endpoints Recruiter
Lecture de l'endpointPOST /v2/{account_id}/linkedin/recruiter/search/peopleschéma chargé
3
Il écrit le code et le teste sur votre application DevelopmentAjout de searchCandidates() et d'un formulaire de filtres alimenté par la route des paramètres de recherche Recruiter, reliés à la page de sourcing. Exécuté sur l'app Development : 25 candidats, profil ouvert avec la variante Recruiter.
Des prompts, pas du code de liaison
Ce que votre agent de codage construit avec le LinkedIn Recruiter MCP
Choisissez une fonctionnalité de recrutement. Chaque transcript montre le prompt donné à l'agent, les endpoints de l'API LinkedIn Recruiter qu'il lit et exécute via le serveur MCP Unipile, et ce qui arrive dans votre ATS. Les chemins sont complets, sur l'URL de base de l'API
https://api.unipile.com, avec une clé scopée dans l'en-tête X-API-KEY .Ajoute la recherche de candidats LinkedIn Recruiter à la page de sourcing : compétences, intitulé de poste, niveau hiérarchique, code postal avec rayon, années d'expérience.
Exécution de la requêtePOST /v2/{account_id}/linkedin/recruiter/search/parametersID résolus
Exécution de la requêtePOST /v2/{account_id}/linkedin/recruiter/search/people40 candidats
Ajout de
recruiter-search.ts : le formulaire de filtres résout compétences, intitulés et localisations en ID avec la route des paramètres de recherche, puis appelle la recherche de personnes avec skills, title, seniority, postal_code_radius et years_of_experience. Pagination des résultats avec ce que renvoie l'API. Testé sur l'app Development : 40 candidats en première page.Recherche de candidats Recruiter, avec les filtres propres à Recruiter
La route de recherche de personnes accepte tous les filtres Recruiter : compétences, intitulés, niveau hiérarchique, entreprises, écoles, localisations, langues, et des signaux Recruiter comme
recently_joined, is_past_applicant ou hide_previously_viewed. Les résultats correspondent à ce que le recruteur connecté voit avec son propre contrat.Endpoints utilisés par l'agent
POST/v2/{account_id}/linkedin/recruiter/search/parametersPOST/v2/{account_id}/linkedin/recruiter/search/peopleGET/v2/{account_id}/users/{user_id}
Erreur fréquente : Envoyer une localisation ou une compétence en texte libre. Les filtres qui pointent vers une entité LinkedIn attendent des ID : résolvez-les d'abord avec
Guide de l'API de recherche Recruiter
POST /v2/{account_id}/linkedin/recruiter/search/parameters. C'est un POST, contrairement à la route GET des paramètres de Sales Navigator.Permets aux recruteurs de coller une URL de recherche LinkedIn Recruiter, ou de choisir une de leurs recherches enregistrées, et importe les candidats dans l'ATS.
Lecture de l'endpointPOST /v2/{account_id}/linkedin/recruiter/searchschéma chargé
Exécution de la requêtePOST /v2/{account_id}/linkedin/recruiter/search/people25 candidats
Ajout d'une boîte de dialogue « Importer depuis Recruiter ». Une URL collée passe par la route de recherche par URL ; une recherche enregistrée passe par la recherche de personnes avec
load_saved_search. Les candidats sont enregistrés par leur ID LinkedIn : un second import ne crée pas de doublons.Réutilisez les recherches que les recruteurs ont déjà construites dans Recruiter
Les recruteurs passent du temps à affiner une recherche. La route de recherche par URL exécute une URL de recherche Recruiter telle quelle, et la recherche de personnes peut charger une recherche enregistrée ou un filtre personnalisé enregistré (
load_saved_search, load_custom_filter) ou en enregistrer un nouveau (save_search, save_custom_filter).Endpoints utilisés par l'agent
POST/v2/{account_id}/linkedin/recruiter/searchPOST/v2/{account_id}/linkedin/recruiter/search/peoplePOST/v2/{account_id}/linkedin/recruiter/search/parameters
Erreur fréquente : Envoyer une URL Classic ou Sales Navigator à la route Recruiter. Chaque produit a sa propre route de recherche par URL : choisissez la route selon la provenance de l'URL.
API LinkedIn pour les logiciels de recrutement
Quand un recruteur ouvre un candidat, affiche le profil tel que LinkedIn Recruiter le montre, avec la section d'activité de recrutement.
Lecture de l'endpointGET /v2/{account_id}/users/{user_id}schéma chargé
Exécution de la requêteGET /v2/{account_id}/users/{user_id}?variant=linkedin_recruiter&with_sections=linkedin_recruiting_activity200 OK
Ajout de
getRecruiterProfile(id) avec variant=linkedin_recruiter et la section linkedin_recruiting_activity , ainsi qu'un onglet « Activité de recrutement » sur la fiche candidat. L'appel ne s'exécute que lorsque le recruteur ouvre le profil.Le profil candidat tel que Recruiter le montre
La route du profil propose trois variantes LinkedIn :
linkedin_classic, linkedin_sales_navigator et linkedin_recruiter. Avec la variante Recruiter, l'agent peut demander la section d'activité de recrutement, qui n'existe que sur Recruiter, à côté de sections comme l'expérience, la formation, les compétences et les langues.Endpoints utilisés par l'agent
GET/v2/{account_id}/users/{user_id}POST/v2/{account_id}/linkedin/recruiter/search/peopleGET/v2/{account_id}/linkedin/contracts
Erreur fréquente : Omettre
Serveur MCP LinkedIn : profils Classic et messagerie
variant=linkedin_recruiter et attendre des données Recruiter. La section linkedin_recruiting_activity n'existe que sur Recruiter : demandez-la avec la variante Recruiter.Reflète chaque poste à pourvoir de l'ATS sous forme de projet de recrutement LinkedIn Recruiter : crée-le quand le recruteur ouvre le poste, mets-le à jour quand le poste change.
Exécution de la requêteGET /v2/{account_id}/linkedin/recruiter/projects12 projets
Lecture de l'endpointPOST /v2/{account_id}/linkedin/recruiter/projectsschéma chargé
Ajout de
recruiter-projects.ts : la première synchro relie les projets existants aux postes à pourvoir, « Créer dans Recruiter » crée un projet depuis la page du poste, et les modifications passent par PATCH sur le projet. L'ID du projet est enregistré sur le poste à pourvoir.Des projets de recrutement synchronisés avec vos postes à pourvoir
Listez, créez, lisez et modifiez les projets de recrutement Recruiter depuis votre ATS. L'ID du projet délimite ensuite tout le reste : pipeline, recherche dans le talent pool, candidatures et offres d'emploi.
Endpoints utilisés par l'agent
GET/v2/{account_id}/linkedin/recruiter/projectsPOST/v2/{account_id}/linkedin/recruiter/projectsPATCH/v2/{account_id}/linkedin/recruiter/projects/{project_id}
Erreur fréquente : Relancer la création d'un projet après un timeout. Listez d'abord les projets pour vérifier s'il a été créé, puis décidez ; une relance à l'aveugle peut laisser deux projets.
Fonctionnalités pour les logiciels de recrutement
Affiche le pipeline de chaque projet Recruiter sur la page du poste, ajoute une recherche dans le talent pool, et permets aux recruteurs d'enregistrer un candidat dans le pipeline.
Exécution de la requêtePOST /v2/{account_id}/linkedin/recruiter/projects/{project_id}/pipeline34 candidats
Exécution de la requêtePOST /v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/search18 résultats
Ajout de la vue pipeline (candidats enregistrés sur le poste à pourvoir), d'un champ de recherche dans le talent pool du projet, et d'un bouton « Enregistrer dans le pipeline » relié à la route d'enregistrement de candidat. Un enregistrement s'exécute sur le clic du recruteur, un candidat à la fois.
Pipelines et talent pools, au cœur du poste à pourvoir
La route du pipeline liste les candidats d'un projet et la route d'enregistrement en ajoute un. La recherche dans le talent pool lance une recherche de personnes depuis le talent pool du projet : la page du poste affiche les mêmes candidats que ceux sur lesquels le recruteur travaille dans Recruiter.
Endpoints utilisés par l'agent
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
Erreur fréquente : Appeler les routes de liste en GET. Lister les candidats du pipeline et rechercher dans le talent pool sont deux routes POST qui attendent un body.
Fonctionnalités de messagerie et de workflow pour ATS
Importe les candidatures de l'offre LinkedIn de chaque projet dans la liste des candidats de l'ATS, avec leurs CV.
Exécution de la requêtePOST /v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicants52 candidatures
Exécution de la requêteGET /v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicants/{applicant_profile_id}/resumeCV
Ajout de l'import des candidatures par projet (liste, puis détail avec la route de candidature) et de la récupération des CV, enregistrés sur la fiche candidat. Les CV sont récupérés quand le recruteur ouvre une candidature, pas pour toute la liste.
Les candidatures et leurs CV, dans l'ATS
Pour un projet avec une offre d'emploi, la route des candidatures liste qui a postulé, la route de candidature renvoie une candidature, et la route du CV renvoie le CV de ce candidat. Votre ATS reçoit les candidatures LinkedIn à côté de celles de son propre site carrière.
Endpoints utilisés par l'agent
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
Erreur fréquente : Supposer que la route du CV prend le même ID que la route de candidature. Son paramètre de chemin est
API LinkedIn pour les offres d'emploi
applicant_profile_id, pas applicant_id ; l'agent lit les deux schémas avant de les câbler.Permets aux recruteurs d'envoyer un Recruiter InMail depuis la fiche candidat, avec un objet et leur signature, visible par l'équipe du projet.
Lecture de l'endpointPOST /v2/{account_id}/chats/sendspecifics chargés
Exécution de la requêteGET /v2/{account_id}/linkedin/inmail-creditscrédits
Ajout de
sendRecruiterInmail() sur la route de démarrage de chat avec specifics.linkedin.recruiter: subject, signature, visibility: PROJECT, intent: HIRE_FOR_OWN_COMPANY, send_as: INMAIL. L'éditeur affiche les crédits InMail, et un envoi en échec est signalé au recruteur, jamais relancé.Recruiter InMail depuis la fiche candidat
Les messages Recruiter passent par la route de démarrage de chat avec
specifics.linkedin.recruiter : objet, signature, visibilité (PUBLIC, PRIVATE ou PROJECT), intention (HIRE_FOR_CLIENT ou HIRE_FOR_OWN_COMPANY), send_as (INMAIL, ou EMAIL à partir des données du profil), un channel_type issu du talent pool du projet, et follow_up pour planifier un message de relance sur les contrats Recruiter Pro.Endpoints utilisés par l'agent
POST/v2/{account_id}/chats/sendGET/v2/{account_id}/linkedin/inmail-creditsGET/v2/{account_id}/chats/{chat_id}/messages
Erreur fréquente : Garder les valeurs par défaut sans les vérifier.
Envoyer des messages au nom des recruteurs
intent vaut par défaut HIRE_FOR_CLIENT et visibility vaut PRIVATE : une équipe interne veut généralement HIRE_FOR_OWN_COMPANY, et un projet partagé peut vouloir PROJECT.Publie les offres de l'ATS sur LinkedIn depuis la page du poste : crée le brouillon, vérifie les crédits de job slots, publie, et clôture l'offre quand le poste est pourvu.
Exécution de la requêteGET /v2/{account_id}/linkedin/recruiter/job-slots-creditscrédits
Exécution de la requêtePOST /v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs/{job_id}/publishpubliée
Ajout du parcours de publication d'offre : un brouillon dans le projet du poste à pourvoir (ou dans un nouveau projet), des modifications avec
PATCH, le budget de l'offre, une vérification des crédits de job slots avant d'activer le bouton Publier, et Clôturer quand le poste est pourvu. Chaque étape est un clic du recruteur.Des offres d'emploi depuis le poste à pourvoir, crédits vérifiés d'abord
Créez un brouillon dans un projet existant ou dans un nouveau, modifiez-le, publiez-le, clôturez-le. Listez les offres, lisez-en une, lisez le budget d'une offre et les crédits de job slots du contrat avant de publier.
Endpoints utilisés par l'agent
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
Erreur fréquente : Publier sans lire les crédits. Appelez
API LinkedIn pour les offres d'emploi
GET /v2/{account_id}/linkedin/recruiter/job-slots-credits au préalable et montrez le résultat au recruteur ; la publication reste sa décision.De vraies routes, des chemins complets
Toutes les routes de l'API LinkedIn Recruiter exposées par le serveur MCP
Le serveur expose l'API Unipile elle-même : ce que votre agent de codage peut construire sur Recruiter correspond à ce que fait l'API. Voici les 25 routes Recruiter, regroupées par fonctionnalité, et les routes LinkedIn partagées qu'une intégration Recruiter utilise aussi. Les chemins sont complets, sur l'URL de base de l'API
https://api.unipile.com, avec la clé scopée dans l'en-tête X-API-KEY .25routes Recruiter sous /linkedin/recruiter, sur le contrat connecté par l'utilisateur
3façons de rechercher : filtres, URL Recruiter, talent pool d'un projet
1route d'envoi pour le Recruiter InMail, avec specifics.linkedin.recruiter
0endpoint à deviner : l'agent lit le schéma exact avant d'écrire le code
3 routes
Recherche de candidats
Recherche de personnes Recruiter avec tous les filtres, recherche à partir d'une URL Recruiter, et route des paramètres qui résout les valeurs des filtres en ID.
POST/v2/{account_id}/linkedin/recruiter/search/people
POST/v2/{account_id}/linkedin/recruiter/search
POST/v2/{account_id}/linkedin/recruiter/search/parameters
4 routes
Projets de recrutement
Lister, créer, lire et modifier les projets de recrutement du contrat Recruiter. L'ID du projet délimite pipeline, talent pool, candidatures et offres.
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 routes
Pipeline et talent pool
Lister les candidats du pipeline d'un projet, y enregistrer un candidat, rechercher dans le talent pool du projet.
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 routes
Candidatures et CV
Lister les candidatures de l'offre d'un projet, lire une candidature, récupérer le CV du candidat.
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 routes
Offres d'emploi
Créer un brouillon dans un projet nouveau ou existant, le modifier, le publier et le clôturer, lister les offres et en lire une.
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 routes
Budget et job slots
Lire le budget d'une offre et les crédits de job slots du contrat avant que votre interface propose de publier.
GET/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs/{job_id}/budget
GET/v2/{account_id}/linkedin/recruiter/job-slots-credits
2 routes
Vérification des membres de l'entreprise
Vérifier l'identité d'un membre de l'entreprise : demander l'email de vérification, puis soumettre le code à usage unique reçu par l'utilisateur.
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 partagées
Routes LinkedIn partagées
Recruiter InMail, la variante de profil Recruiter, les crédits InMail, les contrats et la connexion du compte via 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/
Une requête complète, exactement comme l'agent l'exécute
Le serveur suit chaque version de l'API Unipile : une nouvelle route Recruiter arrive chez votre agent le jour de sa sortie. En production, votre produit appelle les mêmes routes sur le compte que chaque recruteur a connecté via Hosted Auth, sous forme d'actions de l'utilisateur dans votre interface. Mêmes routes que l'API LinkedIn Unipile, dans le code écrit par l'agent ou via les SDK officiels.·référence API
Filtres de recherche du LinkedIn Recruiter MCP : tout l'éventail Recruiter
La recherche de personnes Recruiter est le point de départ de la plupart des fonctionnalités d'ATS et de sourcing. La route
POST /v2/{account_id}/linkedin/recruiter/search/people documente 56 champs de body ; l'agent les lit dans le schéma et construit le formulaire de filtres qu'attendent vos recruteurs. Les principaux, regroupés comme un recruteur les pense.Compétences et expérience12 champs
Les filtres que les recruteurs utilisent en premier : ce que fait le candidat, à quel niveau, depuis combien de temps.
Champs de body de la recherche de personnes
Compétences, intitulés et fonctionskills, title, job_title, job_function
Niveau hiérarchique et anciennetéseniority, years_of_experience, years_in_current_company, years_in_current_position
Mots-clés et nomskeywords, first_name, last_name, occupation
Entreprises et formation9 champs
Où le candidat travaille ou a travaillé, le type d'entreprise, et où il a étudié.
Champs de body de la recherche de personnes
Entreprisescompany, current_company, past_company
Secteur et taille d'entrepriseindustry, company_size
Formationschool, degree, field_of_study, graduation_year
Localisation, mode de travail et langues8 champs
Où se trouve le candidat, comment il veut travailler, quelles langues il parle.
Champs de body de la recherche de personnes
Localisation et rayonlocation, postal_code, postal_code_radius
Lieu et type de contratworkplace_type, employment_type
Languesspoken_language, proficiency, profile_language
Signaux Recruiter et travail de votre équipe16 champs
Des filtres qui n'ont de sens que dans Recruiter : signaux d'activité, projets de l'équipe, tags et notes, recherches enregistrées.
Champs de body de la recherche de personnes
Signauxrecently_joined, hide_previously_viewed, new_results_only, is_past_applicant, recruiting_activity, spotlights, is_military_veteran, network_distance
Projets, tags et notesproject, project_id, tags, notes
Recherches enregistrées et filtres personnalisésload_saved_search, save_search, load_custom_filter, save_custom_filter
Les filtres qui pointent vers une entité LinkedIn (une localisation, une compétence, une entreprise, une école) attendent des ID. L'agent les résout avec
POST /v2/{account_id}/linkedin/recruiter/search/parameters avant d'appeler la recherche, puis transmet les ID. Le schéma documente aussi exclude, group, id, include, max, min, name, preferences, priority, timespan et type ; l'agent lit leur forme exacte avant d'écrire le formulaire. Chaque filtre s'exécute sur le contrat Recruiter du compte connecté.Démarrage rapide
Ajoutez le LinkedIn Recruiter MCP à votre agent de codage en une ligne
Aucun serveur Recruiter distinct à installer : le serveur MCP Unipile hébergé couvre LinkedIn Recruiter sous la même URL que LinkedIn Classic, Sales Navigator et tous les autres canaux. Pointez votre agent de codage dessus avec une clé API scopée : il lit les endpoints Recruiter et exécute des requêtes sur votre application Development. Les extraits ci-dessous sont ceux de la documentation officielle.
Cursor~/.cursor/mcp.json
Claude Codeclaude mcp add --transport http …
Codex CLI et extension IDE~/.codex/config.toml
Gemini CLI~/.gemini/settings.json
Windsurf~/.codeium/windsurf/mcp_config.json
# Enregistrer le serveur MCP Unipile hébergé dans 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"
# Vérifier la connexion, ou taper /mcp dans une session
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"
}
}
}
}
# Codex CLI et l'extension IDE Codex partagent ce fichier
[mcp_servers.unipile]
url = "https://developer.unipile.com/mcp?branch=v2.0"
http_headers = { X-API-KEY = "your-scoped-api-key" }
# Vérifier : codex mcp list
{
"mcpServers": {
"unipile": {
"httpUrl": "https://developer.unipile.com/mcp?branch=v2.0",
"headers": {
"X-API-KEY": "your-scoped-api-key"
}
}
}
}
# Vérifier : /mcp dans Gemini CLI
Serveur connecté. Essayez : « Ajoute la recherche de candidats LinkedIn Recruiter à la page de sourcing, puis ouvre le profil sélectionné avec la variante Recruiter. »
1
Commencez avec une application DevelopmentDans le dashboard Unipile, travaillez dans votre application Development : connectez via Hosted Auth un compte LinkedIn de test qui dispose d'un contrat Recruiter, créez un Scope qui le contient et une clé Account API scopée pour ce Scope. La production reste intacte, et un client MCP ne reçoit jamais de clé globale ni de clé Service.
2
Ajoutez le serveur à votre agent de codageCollez la configuration de votre client, avec la clé scopée dans l'en-tête X-API-KEY. Redémarrez le client s'il ne la prend pas en compte tout de suite.
3
Décrivez la fonctionnalité, relisez le codeDécrivez la fonctionnalité Recruiter dont vous avez besoin. L'agent lit les endpoints, écrit le code dans votre projet et exécute des requêtes sur l'app Development. Passez la clé en Production quand le parcours fonctionne.
Au nom du recruteur
Sur quel contrat Recruiter votre intégration agit-elle ?
Pendant le développement, sur le compte de test de votre application Development. En production, sur le compte LinkedIn que chaque recruteur a connecté via Hosted Auth, avec le contrat Recruiter de ce compte, dans des workflows que ce recruteur lance et contrôle.
1 · Votre agent de codage
Codex, Cursor, Claude Code
Lit les schémas Recruiter, écrit le code
2 · Serveur MCP Unipile
Hébergé, clé API scopée
Exécute des requêtes de test sur votre app Development
3 · API Unipile
Les routes Recruiter
Limite l'action à un seul account ID
4 · LinkedIn Recruiter
Le contrat sélectionné
Les règles de LinkedIn, les crédits InMail et de job slots
5 · Le compte du recruteur
Connecté via Hosted Auth
Ses projets, son pipeline, ses crédits
Sarah MitchellLinkedIn · contrat Recruiter · lié par l'utilisateur via Hosted Auth
Account ID
acc_7f3…c91, le seul identifiant que votre code enregistreContratListé avec
GET …/linkedin/contracts, sélectionné avec POST …/contracts/{contract_id}/selectSessionDétenue par Unipile, jamais exposée à votre app
StatutConnecté · les changements de statut arrivent par webhook
ReconnecterDéconnecter
Des limites honnêtes
Les limites LinkedIn Recruiter qui s'appliquent toujours
Le serveur ne lève pas les règles de LinkedIn et n'ajoute aucun crédit à un contrat. L'API donne à votre ATS les vrais signaux du compte pour que la fonctionnalité livrée fonctionne dans ce cadre, comme le ferait le recruteur.
Ce que LinkedIn et le contrat imposent
Un contrat Recruiter sur le compte connectéChaque route sous
/linkedin/recruiter en a besoin. Sans contrat, le compte fonctionne toujours sur les routes LinkedIn Classic, mais vos fonctionnalités Recruiter restent masquées.Crédits InMailLe Recruiter InMail consomme les crédits du contrat. Lisez-les avec
GET /v2/{account_id}/linkedin/inmail-credits et affichez-les avant que le recruteur n'envoie.Crédits de job slots et budget de l'offrePublier une offre utilise ce dont dispose le contrat. Lisez
GET /v2/{account_id}/linkedin/recruiter/job-slots-credits et le budget de l'offre avant de proposer Publier.Pagination de la rechercheLes recherches Recruiter renvoient des pages. Votre code pagine avec ce que renvoie l'API, dans la limite de ce que le contrat permet au recruteur de voir.
Checkpoints et vérifications d'identitéLinkedIn peut demander un code au titulaire du compte lors de la liaison, et la vérification d'identité d'un membre de l'entreprise passe par un email et un code à usage unique. L'utilisateur saisit le code ; votre code ne voit jamais de mot de passe.
Ce qu'il faut intégrer à votre ATS
Les écritures sont des actions du recruteurEnvoyer un InMail, enregistrer un candidat, créer un projet, publier ou clôturer une offre : chaque action est déclenchée par le recruteur dans votre interface, jamais par une boucle en arrière-plan.
Vérifiez avant de relancer une écritureAprès un échec ambigu, listez les projets, le pipeline ou les offres pour voir ce qui s'est passé. Une relance à l'aveugle peut créer un second projet ou envoyer un second InMail.
Un Scope et une clé scopée par tenantUn workspace ne voit que les comptes rattachés à son Scope. La clé globale reste sur votre backend pour l'administration, et le recruteur peut se déconnecter à tout moment.
Adaptez l'interface au contratMasquez ce que le compte ne peut pas faire : pas de contrat Recruiter, pas d'onglet Recruiter ; pas de contrat Recruiter Pro, pas de relance programmée.
Utilisez les webhooks pour les nouveaux messagesSi votre ATS doit réagir aux réponses des candidats, abonnez-vous aux webhooks et laissez l'événement apporter le message, au lieu d'interroger l'inbox en boucle.
Quatre façons de connecter un ATS à LinkedIn
Comparatif des options LinkedIn Recruiter MCP
Toutes les options LinkedIn Recruiter MCP sont tierces : la vraie question pour un produit de recrutement est de savoir comment chacune accède à Recruiter, sur quel contrat, et ce que vous pouvez livrer avec. Les quatre familles que vous rencontrerez, côte à côte.
serveur MCP Unipile
Serveurs open source communautaires
Marketplaces de données publiques
Passerelles MCP no-code
Comment il accède à Recruiter
serveur MCP UnipileLe compte LinkedIn que chaque recruteur connecte via Hosted Auth, puis les routes de l'API Recruiter sur son contrat
Serveurs open source communautairesVotre propre login LinkedIn sur votre machine, piloté par une session navigateur
Marketplaces de données publiquesPages publiques, sans compte, sans accès Recruiter
Passerelles MCP no-codeLeur connexion d'app LinkedIn et un ensemble d'actions prédéfinies
Surfaces Recruiter
serveur MCP UnipileRecherche, projets, pipelines, talent pool, candidatures, offres d'emploi, Recruiter InMail
Serveurs open source communautairesRarement au-delà du profil Classic
Marketplaces de données publiquesProfils publics uniquement, ni projets ni pipelines
Passerelles MCP no-codePeu ou pas d'actions Recruiter
Lecture, ou lecture et action
serveur MCP UnipileLecture et action : enregistrer des candidats, créer des projets, publier des offres, envoyer des InMails, comme fonctionnalités de votre ATS
Serveurs open source communautairesSurtout de la lecture, quelques écritures selon le projet
Marketplaces de données publiquesLecture seule
Passerelles MCP no-codeÉcritures prédéfinies, peu de lecture
Hébergement et clients
serveur MCP UnipileHébergé, une seule URL, tout agent de codage en HTTP : Codex, Cursor, Claude Code, Gemini CLI, Windsurf
Serveurs open source communautairesAuto-hébergé, en local ou sous Docker, généralement un client à la fois
Marketplaces de données publiquesHébergé, un token par client
Passerelles MCP no-codeHébergé, une URL générée par configuration
Autres canaux sur le même serveur
serveur MCP UnipileHuit : WhatsApp, Instagram, Telegram, Gmail, Outlook, IMAP, calendriers Google et Outlook
Serveurs open source communautairesAucun
Marketplaces de données publiquesD'autres sources de données publiques
Passerelles MCP no-codeDes milliers d'apps, chacune avec peu d'actions
Modèle de prix
serveur MCP UnipilePar compte connecté, quel que soit le volume de requêtes, essai gratuit de 7 jours
Serveurs open source communautairesGratuit, vous l'hébergez et le maintenez
Marketplaces de données publiquesAu crédit ou au résultat
Passerelles MCP no-codeÀ la tâche ou à l'action
Sous quelles conditions votre produit fonctionne
serveur MCP UnipileLe propre compte et le contrat Recruiter de chaque recruteur, dans des workflows que le recruteur initie et contrôle depuis votre produit
Serveurs open source communautairesVotre compte personnel, à vos risques
Marketplaces de données publiquesLes conditions de collecte de données de la marketplace
Passerelles MCP no-codeLes conditions de la passerelle et les permissions de son app LinkedIn
Les catégories sont volontairement décrites de façon générique. Ce qui distingue le serveur Unipile, c'est le modèle de compte : votre ATS lit et agit en tant que le recruteur qui a connecté le compte, sur son propre contrat Recruiter, derrière une seule URL de serveur partagée avec huit autres canaux.
6000+
Les entreprises qui innovent avec Unipile
Des entreprises leaders nous font confiance
1 API
Toutes les plateformes centralisées en une API
2 jours
Intégration très rapide
30%
Réduction des efforts et des ressources de maintenance
Sécurité et conformité
Une protection de niveau entreprise pour vos données et workflows En savoir plus sur notre sécurité
SOC 2 Type II
Certifié
Contrôles de sécurité vérifiés de manière indépendante garantissant la protection des données et l'intégrité opérationnelle.
GDPR
Conforme à la loi
Conformité totale avec les réglementations européennes en matière de protection des données pour le respect de la vie privée des utilisateurs.
99.9%
Temps de disponibilité de la plateforme au cours des 24 derniers mois
24/7
Support mondial avec API performante
FAQ LinkedIn Recruiter MCP
Les questions que l'on se pose vraiment : officiel ou non, l'URL du serveur, recherche de candidats, projets et pipelines, Recruiter InMail, contrats et prix.
Pas chez LinkedIn : il ne publie pas de serveur Model Context Protocol pour Recruiter. Le serveur MCP Unipile est un serveur tiers hébergé, généré à partir de l'API Unipile, et il expose les routes de l'API LinkedIn Recruiter : recherche de candidats, projets de recrutement, pipelines, talent pool, candidatures, offres d'emploi et Recruiter InMail. Votre agent de codage lit ces endpoints et écrit l'intégration dans votre produit, où chaque recruteur connecte son propre compte et où votre code agit au nom de cet utilisateur authentifié. Unipile est un intermédiaire technique indépendant et n'est ni affilié à LinkedIn, ni approuvé, ni sponsorisé par LinkedIn.
La même URL que pour toute l'API Unipile :
https://developer.unipile.com/mcp?branch=v2.0, en streamable HTTP, avec une clé Account API scopée dans l'en-tête X-API-KEY . Il n'existe pas de serveur Recruiter distinct. Collez-la dans Codex, Cursor, Claude Code, Gemini CLI ou Windsurf, et l'agent trouve les endpoints Recruiter sous /v2/{account_id}/linkedin/recruiter par lui-même.Oui, sur un compte doté d'un contrat Recruiter. L'agent lit
POST /v2/{account_id}/linkedin/recruiter/search/people et construit la recherche avec des filtres Recruiter comme les compétences, l'intitulé, le niveau hiérarchique, l'entreprise, l'école, la localisation avec un rayon autour d'un code postal, la langue parlée, ou des signaux comme recently_joined et hide_previously_viewed. Il résout les valeurs des filtres en ID avec POST /v2/{account_id}/linkedin/recruiter/search/parameters, peut lancer une recherche depuis une URL Recruiter avec POST /v2/{account_id}/linkedin/recruiter/search, et teste le résultat sur votre application Development. Les recherches s'exécutent comme des actions du recruteur qui a connecté le compte.Oui. Votre ATS peut lister, créer, lire et modifier des projets de recrutement (
GET et POST /v2/{account_id}/linkedin/recruiter/projects, PATCH /v2/{account_id}/linkedin/recruiter/projects/{project_id}), lister les candidats du pipeline d'un projet avec POST /v2/{account_id}/linkedin/recruiter/projects/{project_id}/pipeline, y enregistrer un candidat, rechercher dans le talent pool du projet et importer les candidatures avec leurs CV. Enregistrer un candidat ou créer un projet reste une action du recruteur dans votre interface.Oui, via
POST /v2/{account_id}/chats/send avec specifics.linkedin.recruiter : un objet, une signature, une visibilité (PUBLIC, PRIVATE ou PROJECT), une intention (HIRE_FOR_CLIENT ou HIRE_FOR_OWN_COMPANY), et send_as défini sur INMAIL ou sur EMAIL à partir des données du profil. Un follow_up programmé n'est disponible que sur les contrats Recruiter Pro. InMail consomme les crédits du contrat, lisibles avec GET /v2/{account_id}/linkedin/inmail-credits, et chaque message est envoyé par le recruteur depuis votre interface.Les routes Recruiter exigent un contrat Recruiter sur le compte connecté ; sans contrat, le compte ne fonctionne que sur les routes LinkedIn Classic (messagerie, profils, recherche classique). Ce qu'un compte peut faire dépend du contrat qu'il détient : votre code liste donc ses contrats avec
GET /v2/{account_id}/linkedin/contracts, en sélectionne un avec POST /v2/{account_id}/linkedin/contracts/{contract_id}/select, et n'affiche que les fonctionnalités qui répondent. Testez avec le type de contrat qu'utilisent vos clients.Ce sont les mêmes routes, utilisées à deux moments. Le LinkedIn Recruiter MCP permet à votre agent de codage de lire les endpoints Recruiter et de les tester pendant qu'il écrit votre intégration. La LinkedIn Recruiter API est ce qu'appelle votre produit en production, via l'API REST ou les SDK officiels, avec ses propres clés scopées, sur les comptes connectés par vos recruteurs. Vous construisez avec le MCP et vous exécutez sur l'API.
Le serveur MCP est inclus dans toutes les offres Unipile, sans frais par message ni par requête. La facturation se fait par compte connecté, quel que soit le canal : à partir de 49 EUR par mois jusqu'à 10 comptes, puis 5 EUR par compte supplémentaire, jusqu'à 3 EUR en volume. L'essai gratuit de 7 jours ne demande pas de carte bancaire. Le contrat Recruiter reste l'abonnement LinkedIn propre au recruteur. Grille complète sur la page Tarifs.