Documentation

Centre de documentation

Guides, référence REST API et intégrations ATS pour tirer le meilleur de Culture&Skills.

Référence REST API

L’API Culture&Skills est une API REST qui renvoie du JSON. Toutes les requêtes passent par HTTPS et sont authentifiées par clé API. Les données sont cloisonnées par entreprise.

Authentification

Générez une clé API dans Paramètres → Intégrations. Transmettez-la dans l’en-tête Authorization de chaque requête. Ne partagez jamais une clé cs_live_… publiquement.

Base URL (production)
https://ixqyvpfzmqszngqzkfii.supabase.co/functions/v1/api

# En-tête d'authentification
Authorization: Bearer cs_live_xxxxxxxxxxxxxxxx
Content-Type: application/json

# Exemple
curl https://ixqyvpfzmqszngqzkfii.supabase.co/functions/v1/api/candidates \
  -H "Authorization: Bearer cs_live_xxxxxxxxxxxxxxxx"

Endpoints

Candidats
GET
/v1/candidates

Lister les candidats (filtres : status, search, page).

POST
/v1/candidates

Créer un candidat.

GET
/v1/candidates/{id}

Récupérer un candidat.

PATCH
/v1/candidates/{id}

Mettre à jour un candidat (statut, notes…).

DELETE
/v1/candidates/{id}

Supprimer un candidat et ses sessions.

Tests
GET
/v1/tests

Lister les tests de l’entreprise.

POST
/v1/tests

Créer un test avec ses questions.

GET
/v1/tests/{id}

Récupérer un test et ses questions.

Sessions & invitations
POST
/v1/sessions

Inviter un candidat à passer un test (génère un lien sécurisé).

GET
/v1/sessions

Lister les sessions avec scores et statuts.

GET
/v1/sessions/{id}

Détail d’une session (réponses, score, résultat).

Rapports & CV
GET
/v1/reports/sessions

Export des sessions (status, score, dates).

POST
/v1/cv-analyses

Analyser un CV (score sur 100, soft/hard skills).

Intégrations ATS
GET
/v1/integrations

Lister les intégrations connectées.

POST
/v1/integrations/{provider}/connect

Connecter un ATS (provider : workday, lever, greenhouse, linkedin_recruiter, recruitbox, talentsoft).

POST
/v1/integrations/{provider}/sync

Déclencher une synchronisation candidats/offres.

Exemple : créer un candidat

Requête

curl -X POST https://api.cultureskills.io/v1/candidates \
  -H "Authorization: Bearer cs_live_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "full_name": "Jean Dupont",
    "email": "jean.dupont@example.com",
    "position_applied": "Développeur Full Stack"
  }'

Réponse 201

{
  "id": "c_3f8a…",
  "full_name": "Jean Dupont",
  "email": "jean.dupont@example.com",
  "position_applied": "Développeur Full Stack",
  "status": "pending",
  "created_at": "2026-06-16T10:00:00Z"
}

Exemple : inviter à un test

curl -X POST https://api.cultureskills.io/v1/sessions \
  -H "Authorization: Bearer cs_live_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "candidate_id": "c_3f8a…", "test_id": "t_91b2…" }'

# → renvoie l'URL d'invitation et le statut "invited"
Limites de débit : 60 requêtes/min en test, 600 requêtes/min en production. Les erreurs suivent les codes HTTP standard (401,403, 404,422, 429).

Webhooks

Recevez les événements en temps réel sur votre endpoint. Chaque requête est signée (en-tête X-CS-Signature, HMAC-SHA256) — vérifiez la signature avant de traiter l’événement.

Événements disponibles
candidate.created

Un candidat a été ajouté.

candidate.invited

Une invitation à un test a été envoyée.

session.started

Le candidat a démarré une évaluation.

session.completed

Une évaluation est terminée (score disponible).

test.created

Un nouveau test a été publié.

Exemple de payload

POST https://votre-domaine.com/webhooks/cultureskills
X-CS-Signature: t=1718530800,v1=5257a8…

{
  "event": "session.completed",
  "data": {
    "session_id": "s_77c1…",
    "candidate_id": "c_3f8a…",
    "test_id": "t_91b2…",
    "score": 82,
    "passed": true,
    "completed_at": "2026-06-16T11:30:00Z"
  }
}

Intégrations ATS

Connectez Culture&Skills à votre ATS depuis Paramètres → Intégrations, ou via l’API. Les fournisseurs pris en charge :

Workday

workday

Lever

lever

Greenhouse

greenhouse

LinkedIn Recruiter

linkedin_recruiter

RecruitBox

recruitbox

Talentsoft

talentsoft

Connecter un ATS via l’API

curl -X POST https://api.cultureskills.io/v1/integrations/greenhouse/connect \
  -H "Authorization: Bearer cs_live_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "api_key": "harvest_xxx" }'

# Puis déclencher une synchronisation :
curl -X POST https://api.cultureskills.io/v1/integrations/greenhouse/sync \
  -H "Authorization: Bearer cs_live_xxxxxxxxxxxxxxxx"
Besoin d’un connecteur sur mesure ? Notre API REST permet de construire n’importe quelle intégration. Contactez-nous via la page Contact.