v1.0.0
API Headlinker
20 outils pour piloter ta plateforme de recrutement depuis Claude Desktop, Cursor ou tout client compatible MCP.
Quickstart
Configure ton client MCP en 2 minutes.
1. Obtiens ta clé API
Rends-toi sur Intégrations dans ton espace membre pour générer une clé
hlmcp_*.2. Configure ton client
Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"headlinker": {
"url": "https://headlinker.com/api/mcp",
"headers": {
"Authorization": "Bearer hlmcp_YOUR_API_KEY"
}
}
}
}Cursor — .cursor/mcp.json
{
"mcpServers": {
"headlinker": {
"url": "https://headlinker.com/api/mcp",
"headers": {
"Authorization": "Bearer hlmcp_YOUR_API_KEY"
}
}
}
}3. Utilise tes outils
Demande simplement à ton assistant : « Montre-moi mes missions actives » ou « Crée une mission de Développeur React ».
Authentification
Chaque requête doit inclure un Bearer token.
L'API utilise le protocole MCP (Model Context Protocol) en mode Streamable HTTP. L'authentification se fait via un header
Authorization :Header HTTP
Authorization: Bearer hlmcp_YOUR_API_KEYEndpoint :
https://headlinker.com/api/mcpMéthode :
POST uniquement (GET non supporté).Génère ta clé sur /user/integrations. Les clés commencent par
hlmcp_.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ètreupdate_profile
Met à jour ton profil recruteur.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
firstName | string | non | Prénom |
lastName | string | non | Nom |
phone | string | non | Téléphone |
title | string | non | Titre professionnel |
bio | string | non | Biographie |
url | string | non | URL LinkedIn |
city | string | non | Ville |
businessName | string | non | Nom de l'entreprise |
openToSource | boolean | non | Ouvert au sourcing |
Missions
Recherche et gestion des missions partagées (SearchedProfiles).
search_missions
Recherche des missions partagées (SearchedProfiles) publiées et actives.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
q | string | non | Recherche textuelle (nom, description) |
sectorIds | string[] | non | Filtrer par IDs de secteurs |
occupationId | string | non | Filtrer par ID de métier |
experience | enum | non | Niveau d'expérience : '<2', '2/4', '3/5', '5/8', '8/10', '>10' |
mine | boolean | non | Uniquement mes missions |
page | number | non | Numéro de page(défaut : 1) |
limit | number | non | Résultats par page (max 100)(défaut : 20) |
get_mission
Récupère les détails d'une mission par son ID.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
id | string | oui | ID de la mission |
create_mission
Crée une nouvelle mission (SearchedProfile).
| Paramètre | Type | Requis | Description |
|---|---|---|---|
name | string | oui | Titre du poste |
description | string | non | Description du poste |
context | string | non | Contexte de la mission |
sectorIds | string[] | non | IDs des secteurs |
occupationId | string | non | ID du métier |
experience | enum | non | Niveau d'expérience : '<2', '2/4', '3/5', '5/8', '8/10', '>10' |
baseSalaryMin | number | non | Salaire minimum |
baseSalaryMax | number | non | Salaire maximum |
bountyStart | number | non | Prime au démarrage |
bountyConfirm | number | non | Prime à la confirmation |
client | string | non | Nom du client |
urgent | boolean | non | Mission urgente |
update_mission
Met à jour une de tes missions.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
id | string | oui | ID de la mission |
name | string | non | Titre du poste |
description | string | non | Description |
context | string | non | Contexte |
sectorIds | string[] | non | IDs des secteurs |
occupationId | string | non | ID du métier |
experience | enum | non | Niveau d'expérience : '<2', '2/4', '3/5', '5/8', '8/10', '>10' |
bountyStart | number | non | Prime au démarrage |
bountyConfirm | number | non | Prime à la confirmation |
urgent | boolean | non | Mission 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ètre | Type | Requis | Description |
|---|---|---|---|
q | string | non | Recherche textuelle |
sectorIds | string[] | non | Filtrer par IDs de secteurs |
occupationIds | string[] | non | Filtrer par IDs de métiers |
experience | enum | non | Niveau d'expérience : '<2', '2/4', '3/5', '5/8', '8/10', '>10' |
mine | boolean | non | Uniquement mes candidats |
page | number | non | Numéro de page(défaut : 1) |
limit | number | non | Ré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ètre | Type | Requis | Description |
|---|---|---|---|
id | string | oui | ID de l'AvailableProfile |
create_candidate_profile
Crée un nouveau candidat partagé (AvailableProfile).
| Paramètre | Type | Requis | Description |
|---|---|---|---|
name | string | oui | Titre du profil candidat |
candidateId | string | oui | ID du candidat |
description | string | non | Description du candidat |
context | string | non | Contexte |
sectorIds | string[] | non | IDs des secteurs |
occupationIds | string[] | non | IDs des métiers |
experience | enum | non | Niveau d'expérience : '<2', '2/4', '3/5', '5/8', '8/10', '>10' |
baseSalaryMin | number | non | Salaire minimum souhaité |
baseSalaryMax | number | non | Salaire maximum souhaité |
bounty | number | non | Montant de la prime |
update_candidate_profile
Met à jour un de tes candidats partagés.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
id | string | oui | ID de l'AvailableProfile |
name | string | non | Titre du profil |
description | string | non | Description |
context | string | non | Contexte |
sectorIds | string[] | non | IDs des secteurs |
occupationIds | string[] | non | IDs des métiers |
experience | enum | non | Niveau d'expérience : '<2', '2/4', '3/5', '5/8', '8/10', '>10' |
bounty | number | non | Montant de la prime |
Gestion candidats
Gestion de ta base de candidats interne.
create_candidate
Crée un nouveau candidat dans ta base.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
firstName | string | oui | Prénom |
lastName | string | oui | Nom |
email | string | oui | |
phone | string | non | Téléphone |
url | string | non | URL LinkedIn |
resumeUrl | string | non | URL du CV |
search_my_candidates
Recherche dans tes candidats.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
q | string | non | Recherche par nom ou email |
page | number | non | Numéro de page(défaut : 1) |
limit | number | non | Ré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ètre | Type | Requis | Description |
|---|---|---|---|
status | string | non | Filtrer par statut (proposed, accepted, inProcess, underOffer, trainingStarted, processSucceeded...) |
q | string | non | Recherche textuelle |
page | number | non | Numéro de page(défaut : 1) |
limit | number | non | Résultats par page (max 100)(défaut : 20) |
sort | string | non | Champ de tri(défaut : '-updatedAt') |
get_contact
Récupère les détails d'un contact par son ID.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
id | string | oui | ID du contact |
Bons plans
Bons plans partagés entre membres.
list_deals
Liste les bons plans partagés par les membres.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
search | string | non | Recherche textuelle |
myDeals | boolean | non | Uniquement mes bons plans |
isActive | boolean | non | Filtrer par actif/inactif |
page | number | non | Numéro de page(défaut : 1) |
limit | number | non | Résultats par page (max 100)(défaut : 20) |
create_deal
Crée un nouveau bon plan.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
title | string | oui | Titre du bon plan |
description | string | oui | Description |
url | string | non | URL du bon plan |
couponCode | string | non | Code 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ètre | Type | Requis | Description |
|---|---|---|---|
category | string | non | Filtrer 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ètre | Type | Requis | Description |
|---|---|---|---|
type | enum | non | Type de matching : 'all', 'mission' (tu as la mission), 'candidate' (tu as le candidat)(défaut : 'all') |
minScore | number | non | Score minimum |
showViewed | boolean | non | Inclure les matchings déjà vus(défaut : true) |
page | number | non | Numéro de page(défaut : 1) |
limit | number | non | Résultats par page (max 100)(défaut : 20) |
matching_feedback
Donne un feedback (positif/négatif) sur un matching.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
id | string | oui | ID du matching |
feedback | enum | oui | 'positive' ou 'negative' |
reason | string | non | Raison du feedback |
Membres
Recherche de membres recruteurs sur la plateforme.
search_members
Recherche des membres recruteurs sur la plateforme.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
q | string | non | Recherche par nom, entreprise |
sectorIds | string[] | non | Filtrer par secteurs |
occupationIds | string[] | non | Filtrer par métiers |
openToSource | boolean | non | Filtrer les sourceurs disponibles |
page | number | non | Numéro de page(défaut : 1) |
limit | number | non | Résultats par page (max 100)(défaut : 20) |