v1.0.0

API Headlinker

20 outils pour piloter ta plateforme de recrutement depuis Claude Desktop, Cursor ou tout client compatible MCP.

Quickstart

Connecte ton client MCP en 30 secondes — auth OAuth automatique.

Claude.ai (Web, Desktop, mobile)

  1. Ouvre Settings → Connectors → Add custom connector
  2. Colle l'URL : https://headlinker.com/api/mcp
  3. Suis le flow OAuth (login Headlinker + autorisation)

Claude Code

Terminal
claude mcp add headlinker --transport http https://headlinker.com/api/mcp
Le navigateur s'ouvre automatiquement pour te faire signer la connexion.

Cursor / autres clients MCP

mcp.json
{
  "mcpServers": {
    "headlinker": {
      "url": "https://headlinker.com/api/mcp"
    }
  }
}
Le client lance le flow OAuth la première fois — pas de clé à coller.

Utilisation

Demande simplement à ton assistant : « Montre-moi mes missions actives » ou « Crée une mission de Développeur React ».

Authentification

OAuth 2.1 + Dynamic Client Registration — conforme MCP Authorization spec 2025-06-18.
Headlinker implémente le flow OAuth complet : ton client (Claude.ai, Claude Code, Cursor…) s'enregistre automatiquement via RFC 7591 Dynamic Client Registration, puis utilise PKCE S256 pour échanger un code contre un token JWT.
Endpoint MCP : https://headlinker.com/api/mcp
Méthode : POST (transport Streamable HTTP).
Permission requise : mcp sur ton compte Headlinker. Si tu ne la vois pas, contacte le support.
Discovery endpoints (RFC 9728 / RFC 8414) :
  • /.well-known/oauth-protected-resource
  • /.well-known/oauth-authorization-server
Token TTL : access 1h (auto-refresh par le client), refresh 30 jours (rotation à chaque usage).

Pagination

Tous les endpoints de liste supportent la pagination.
Les paramètres page (défaut : 1) et limit (défaut : 20, max : 100) sont disponibles sur tous les outils de recherche/liste.
La réponse inclut un objet pageInfo :
Format de réponse paginée
{
  "items": [...],
  "pageInfo": {
    "page": 1,
    "limit": 20,
    "count": 142,
    "totalPages": 8
  }
}

Référence des outils

20 outils répartis en 9 catégories.

Profil

Gestion de ton profil recruteur.

get_my_profile

Récupère ton profil recruteur complet (infos, secteurs, métiers, préférences).
Aucun paramètre

update_profile

Met à jour ton profil recruteur.
ParamètreTypeRequisDescription
firstNamestringnonPrénom
lastNamestringnonNom
phonestringnonTéléphone
titlestringnonTitre professionnel
biostringnonBiographie
urlstringnonURL LinkedIn
citystringnonVille
businessNamestringnonNom de l'entreprise
openToSourcebooleannonOuvert au sourcing

Missions

Recherche et gestion des missions partagées (SearchedProfiles).

search_missions

Recherche des missions partagées (SearchedProfiles) publiées et actives.
ParamètreTypeRequisDescription
qstringnonRecherche textuelle (nom, description)
sectorIdsstring[]nonFiltrer par IDs de secteurs
occupationIdstringnonFiltrer par ID de métier
experienceenumnonNiveau d'expérience : '<2', '2/4', '3/5', '5/8', '8/10', '>10'
minebooleannonUniquement mes missions
pagenumbernonNuméro de page(défaut : 1)
limitnumbernonRésultats par page (max 100)(défaut : 20)

get_mission

Récupère les détails d'une mission par son ID.
ParamètreTypeRequisDescription
idstringouiID de la mission

create_mission

Crée une nouvelle mission (SearchedProfile).
ParamètreTypeRequisDescription
namestringouiTitre du poste
descriptionstringnonDescription du poste
contextstringnonContexte de la mission
noGostringnonCritères rédhibitoires (NO GO) — compétences/expériences obligatoires sans lesquelles le candidat sera refusé
sectorIdsstring[]nonIDs des secteurs
occupationIdstringnonID du métier
experienceenumnonNiveau d'expérience : '<2', '2/4', '3/5', '5/8', '8/10', '>10'
baseSalaryMinnumbernonSalaire minimum
baseSalaryMaxnumbernonSalaire maximum
bountyStartnumbernonPrime au démarrage
bountyConfirmnumbernonPrime à la confirmation
clientstringnonNom du client
urgentbooleannonMission urgente

update_mission

Met à jour une de tes missions.
ParamètreTypeRequisDescription
idstringouiID de la mission
namestringnonTitre du poste
descriptionstringnonDescription
contextstringnonContexte
noGostringnonCritères rédhibitoires (NO GO)
sectorIdsstring[]nonIDs des secteurs
occupationIdstringnonID du métier
experienceenumnonNiveau d'expérience : '<2', '2/4', '3/5', '5/8', '8/10', '>10'
bountyStartnumbernonPrime au démarrage
bountyConfirmnumbernonPrime à la confirmation
urgentbooleannonMission urgente

Candidats partagés

Recherche et gestion des candidats partagés (AvailableProfiles).

search_candidates

Recherche des candidats partagés (AvailableProfiles) publiés et actifs.
ParamètreTypeRequisDescription
qstringnonRecherche textuelle
sectorIdsstring[]nonFiltrer par IDs de secteurs
occupationIdsstring[]nonFiltrer par IDs de métiers
experienceenumnonNiveau d'expérience : '<2', '2/4', '3/5', '5/8', '8/10', '>10'
minebooleannonUniquement mes candidats
pagenumbernonNuméro de page(défaut : 1)
limitnumbernonRésultats par page (max 100)(défaut : 20)

get_candidate_profile

Récupère les détails d'un candidat partagé par son ID.
ParamètreTypeRequisDescription
idstringouiID de l'AvailableProfile

create_candidate_profile

Crée un nouveau candidat partagé (AvailableProfile).
ParamètreTypeRequisDescription
namestringouiTitre du profil candidat
candidateIdstringouiID du candidat
descriptionstringnonDescription du candidat
contextstringnonContexte
sectorIdsstring[]nonIDs des secteurs
occupationIdsstring[]nonIDs des métiers
experienceenumnonNiveau d'expérience : '<2', '2/4', '3/5', '5/8', '8/10', '>10'
baseSalaryMinnumbernonSalaire minimum souhaité
baseSalaryMaxnumbernonSalaire maximum souhaité
bountynumbernonMontant de la prime

update_candidate_profile

Met à jour un de tes candidats partagés.
ParamètreTypeRequisDescription
idstringouiID de l'AvailableProfile
namestringnonTitre du profil
descriptionstringnonDescription
contextstringnonContexte
sectorIdsstring[]nonIDs des secteurs
occupationIdsstring[]nonIDs des métiers
experienceenumnonNiveau d'expérience : '<2', '2/4', '3/5', '5/8', '8/10', '>10'
bountynumbernonMontant de la prime

Gestion candidats

Gestion de ta base de candidats interne.

create_candidate

Crée un nouveau candidat dans ta base.
ParamètreTypeRequisDescription
firstNamestringouiPrénom
lastNamestringouiNom
emailstringouiEmail
phonestringnonTéléphone
urlstringnonURL LinkedIn
resumeUrlstringnonURL du CV

search_my_candidates

Recherche dans tes candidats.
ParamètreTypeRequisDescription
qstringnonRecherche par nom ou email
pagenumbernonNuméro de page(défaut : 1)
limitnumbernonRésultats par page (max 100)(défaut : 20)

Contacts

Suivi des processus de recrutement en cours.

list_contacts

Liste tes contacts/deals en cours (processus de recrutement).
ParamètreTypeRequisDescription
statusstringnonFiltrer par statut (proposed, accepted, inProcess, underOffer, trainingStarted, processSucceeded...)
qstringnonRecherche textuelle
pagenumbernonNuméro de page(défaut : 1)
limitnumbernonRésultats par page (max 100)(défaut : 20)
sortstringnonChamp de tri(défaut : '-updatedAt')

get_contact

Récupère les détails d'un contact par son ID.
ParamètreTypeRequisDescription
idstringouiID du contact

Bons plans

Bons plans partagés entre membres.

list_deals

Liste les bons plans partagés par les membres.
ParamètreTypeRequisDescription
searchstringnonRecherche textuelle
myDealsbooleannonUniquement mes bons plans
isActivebooleannonFiltrer par actif/inactif
pagenumbernonNuméro de page(défaut : 1)
limitnumbernonRésultats par page (max 100)(défaut : 20)

create_deal

Crée un nouveau bon plan.
ParamètreTypeRequisDescription
titlestringouiTitre du bon plan
descriptionstringouiDescription
urlstringnonURL du bon plan
couponCodestringnonCode promo

Réductions partenaires

Réductions négociées avec des partenaires pour les membres Headlinker.

list_partner_discounts

Liste les réductions partenaires négociées pour les membres Headlinker.
ParamètreTypeRequisDescription
categorystringnonFiltrer par catégorie (sourcing, ats, training, automation, personality, jobBoards)

Matchings

Matchings IA entre missions et candidats.

list_my_matchings

Liste tes matchings IA entre missions et candidats.
ParamètreTypeRequisDescription
typeenumnonType de matching : 'all', 'mission' (tu as la mission), 'candidate' (tu as le candidat)(défaut : 'all')
minScorenumbernonScore minimum
showViewedbooleannonInclure les matchings déjà vus(défaut : true)
pagenumbernonNuméro de page(défaut : 1)
limitnumbernonRésultats par page (max 100)(défaut : 20)

matching_feedback

Donne un feedback (positif/négatif) sur un matching.
ParamètreTypeRequisDescription
idstringouiID du matching
feedbackenumoui'positive' ou 'negative'
reasonstringnonRaison du feedback

Membres

Recherche de membres recruteurs sur la plateforme.

search_members

Recherche des membres recruteurs sur la plateforme.
ParamètreTypeRequisDescription
qstringnonRecherche par nom, entreprise
sectorIdsstring[]nonFiltrer par secteurs
occupationIdsstring[]nonFiltrer par métiers
openToSourcebooleannonFiltrer les sourceurs disponibles
pagenumbernonNuméro de page(défaut : 1)
limitnumbernonRésultats par page (max 100)(défaut : 20)