FR
LinkedInLinkedIn Recruiter MCP

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é
Sarah
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.
4 fichiers modifiés · testé sur l'app Development
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

URL du serveur MCP LinkedIn RecruiterEn ligne
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.
Toute l'API Unipile, lisible par votre agent de codage
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 .
Codex · sourcing-appApp Development
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.4 fichiers modifiés · testé sur l'app Development

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 POST /v2/{account_id}/linkedin/recruiter/search/parameters. C'est un POST, contrairement à la route GET des paramètres de Sales Navigator.
Guide de l'API de recherche Recruiter
Cursor · ats-appApp Development
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.3 fichiers modifiés · testé sur l'app Development

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
Claude Code · ats-appApp Development
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.3 fichiers modifiés · testé sur l'app Development

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 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.
Serveur MCP LinkedIn : profils Classic et messagerie
Gemini CLI · ats-appApp Development
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.4 fichiers modifiés · testé sur l'app Development

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
Claude Code · ats-appApp Development
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.5 fichiers modifiés · testé sur l'app Development

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
Cursor · ats-appApp Development
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.4 fichiers modifiés · testé sur l'app Development

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 applicant_profile_id, pas applicant_id ; l'agent lit les deux schémas avant de les câbler.
API LinkedIn pour les offres d'emploi
Codex · ats-appApp Development
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é.3 fichiers modifiés · testé sur l'app Development

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. 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.
Envoyer des messages au nom des recruteurs
Windsurf · ats-appApp Development
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.6 fichiers modifiés · testé sur l'app Development

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 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.
API LinkedIn pour les offres d'emploi
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
« Ajoute la recherche de candidats Recruiter avec des filtres de compétences, de localisation et de niveau hiérarchique à la page de sourcing. »
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}
« Crée un projet Recruiter pour chaque nouveau poste à pourvoir et garde son nom synchronisé. »
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
« Affiche le pipeline de chaque projet sur la page du poste, avec un bouton Enregistrer dans le pipeline. »
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
« Importe les candidatures LinkedIn et leurs CV dans la liste des candidats de l'ATS. »
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
« Publie le poste à pourvoir comme offre LinkedIn et clôture-la quand le poste est pourvu. »
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
« Désactive Publier et explique pourquoi quand le contrat n'a plus de job slot. »
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
« Ajoute une étape de vérification où le recruteur saisit le code qu'il a reçu. »
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/
« Vérifie les contrats du compte après la connexion et masque les fonctionnalités Recruiter si aucun n'est trouvé. »
Une requête complète, exactement comme l'agent l'exécute
POSThttps://api.unipile.com/v2/{account_id}/linkedin/recruiter/search/peopleX-API-KEY: your-scoped-api-key200 OK
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
LinkedInFiltres de recherche Recruiter

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
« Trouve des ingénieurs backend Go et Kubernetes, niveau senior, 5 à 10 ans d'expérience. »
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
« Ajoute un filtre d'entreprise précédente et une plage d'années de diplôme au formulaire de sourcing. »
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
« Recherche dans un rayon de 30 km autour d'un code postal, en remote ou hybride, allemand parlé. »
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
« Masque les candidats déjà consultés par le recruteur et n'affiche que les nouveaux résultats depuis la dernière exécution. »
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
~/.cursor/mcp.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 LinkedIn Le contrat sélectionné Les règles de LinkedIn, les crédits InMail et de job slots
5 · Le compte du recruteur Le recruteur Connecté via Hosted Auth Ses projets, son pipeline, ses crédits
Compte connecté · ats-appConnecté
Le recruteurLinkedIn
Sarah MitchellLinkedIn · contrat Recruiter · lié par l'utilisateur via Hosted Auth
Account IDacc_7f3…c91, le seul identifiant que votre code enregistre
ContratListé avec GET …/linkedin/contracts, sélectionné avec POST …/contracts/{contract_id}/select
SessionDétenue par Unipile, jamais exposée à votre app
StatutConnecté · les changements de statut arrivent par webhook
ReconnecterDéconnecter
Pas de contrat Recruiter, pas de routes RecruiterLes routes Recruiter ne répondent que si le compte connecté dispose d'un contrat Recruiter. Après la connexion, votre code appelle GET /v2/{account_id}/linkedin/contracts, masque les fonctionnalités Recruiter si aucun n'est trouvé, et en sélectionne un avec POST /v2/{account_id}/linkedin/contracts/{contract_id}/select quand le compte en a plusieurs. Certaines options dépendent du contrat : un InMail programmé follow_up est réservé aux contrats Recruiter Pro.
Les données restent dans la session du recruteurProfils candidats, projets, pipelines et messages passent par la propre session LinkedIn de l'utilisateur authentifié. Unipile ne conserve aucune archive, aucun index ni aucune base de données indépendants de profils ou de conversations LinkedIn : chaque requête s'exécute sur une action initiée par l'utilisateur.
Un intermédiaire technique indépendantUnipile est un intermédiaire technique indépendant, sans affiliation avec LinkedIn. Chaque requête est relayée vers le compte qu'un recruteur a connecté via Hosted Auth, au nom de cet utilisateur, dans la limite de ce qu'il peut déjà faire depuis sa propre licence Recruiter.
LinkedIn fixe les limites, vous les respectezLes crédits InMail, les crédits de job slots et les volumes de recherche sont définis par LinkedIn et par le contrat. Unipile relaie les signaux en direct pour que votre produit puisse faire une pause ou informer le recruteur. La fréquence à laquelle il agit sur un compte reste une décision côté client.
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
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
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.