Sommaire
v1 · BêtaAPI Partenaire
Intégration de l'API Candidate Intelligence
Donnez plus de confiance aux recruteurs avant les entretiens
Lancez des rapports Candidate Intelligence directement dans votre ATS pour vérifier les informations candidat, détecter des signaux inattendus et générer des questions d'entretien en quelques secondes.
Demander l'accès APIIdéal pour
Systèmes de suivi des candidatures (ATS)
CRM de recrutement
Sites d'emploi
Plateformes de talents internes
Cabinets de chasse de têtes
Éditeurs de solutions RH
Avantages partenaire
Pourquoi intégrer Candidate Intelligence ?
Offrez à vos clients un contexte supplémentaire avant les entretiens tout en créant de la valeur au sein de votre plateforme.
Renforcer l'engagement des recruteurs
Gardez les recruteurs dans votre ATS grâce à la vérification des candidats, la préparation d'entretien et des insights de recrutement directement dans les profils.
Créer une nouvelle source de revenus
Proposez des rapports Candidate Intelligence à vos clients et générez des revenus récurrents via le programme partenaire.
Différencier votre plateforme
Démarquez-vous des ATS et solutions de recrutement concurrentes avec des capacités Candidate Intelligence intégrées.
Aucune recherche supplémentaire
Aidez les recruteurs à découvrir des informations pertinentes au-delà du CV sans quitter leur flux de travail.
Améliorer la qualité du recrutement
Aidez recruteurs et hiring managers à prendre des décisions plus éclairées grâce à un contexte au-delà du CV, des constats vérifiés, des risques potentiels et les points à valider.
Intégration rapide
L'implémentation typique ne nécessite que quelques endpoints API et peut être réalisée en moins d'une journée.
Parcours d'intégration
Obtenir l'approbation et recevoir une clé API
Demandez l'accès à TieTalent. Une fois approuvé, vous recevez une clé API (préfixe ats_) pour votre intégration.
Ajouter un bouton dans les profils candidats
Ajoutez un bouton « Lancer le rapport Candidate Intelligence » dans les profils candidats. Au clic, il devient « Génération du rapport en cours... » pendant la génération. Une fois prêt, le rapport s'ouvre automatiquement et le bouton devient « ✕ Fermer le rapport ». À la fermeture, il repasse à « Voir le rapport Intelligence » pour rouvrir un rapport déjà généré.
Appeler l'API TieTalent au clic
POST vers /api/v1/analyses avec le candidat, le client (recruteur) et la langue. Utilisez vos propres identifiants externes sur client.id et candidate.id.
TieTalent génère le rapport
L'analyse s'exécute en arrière-plan. Interrogez GET /api/v1/analyses/'{'id'}' avec l'id retourné — attendez au moins 10 secondes entre les requêtes tant que le statut est queued ou processing (voir l'en-tête Retry-After). Appelez DELETE sur le même chemin pour annuler si le recruteur quitte le profil.
Afficher le rapport dans le profil candidat
Affichez le JSON du rapport dans votre interface (voir la Référence de l'objet rapport), ou ouvrez le rapport hébergé complet via le lien signé de metadata.pdf_download_url — la vue hébergée propose aussi l'export PDF.
Performances et latence
Candidate Intelligence est conçu pour offrir une expérience réactive directement dans les flux de travail des recruteurs.
Action
Temps de réponse typique
Rapport existant trouvé
< 1 seconde
Génération d'un nouveau rapport
30–60 secondes
Logique de réutilisation des rapports
Les rapports sont identifiés de façon unique par plateforme + entreprise + candidat.
Le cache est limité par recruteur : votre clé API identifie l'intégration partenaire, et client.id identifie le recruteur (utilisateur) au sein de votre plateforme. Des client.id différents ne partagent pas le cache, même avec la même clé API.
Champs de la clé de cache
candidate.idVotre identifiant candidat externecandidate.first_name + candidate.last_nameNom du candidat (normalisé)candidate.companyEntreprise actuelle (normalisée)candidate.locationLocalisation (normalisée)candidate.roleRôle ou intitulé du poste (normalisé)Hors clé de cache
candidate.cvTexte de CV optionnel — utilisé uniquement lors d'exécutions fraîches. Modifier seul le CV n'invalide pas le cache.languageLangue du rapport demandée. Utilisez force_refresh: true si vous avez besoin d'un rapport dans une autre langue.Les rapports en cache sont réutilisés pendant 6 mois. Les analyses terminées plus anciennes ne sont pas renvoyées depuis le cache.
Forcer l'actualisation
Définissez force_refresh: true sur POST /api/v1/analyses pour ignorer le cache et exécuter le pipeline complet — enrichissement, signaux en direct et génération du rapport LLM.
Omettez force_refresh ou définissez-le à false pour autoriser la réutilisation du cache (par défaut).
Quand définir force_refresh: true
Le recruteur demande explicitement une intelligence mise à jour ou actualisée
Seul le texte du CV a changé tandis que les champs du profil sont restés identiques
Vous avez besoin d'un rapport dans une langue différente d'une exécution en cache précédente
Vous souhaitez relancer l'enrichissement et les signaux en direct indépendamment du cache
Requête d'analyse fraîche
{
"language": "en",
"client": {
"id": "client_company_123",
"first_name": "Jane",
"last_name": "Smith",
"company": "Acme Recruiting"
},
"candidate": {
"id": "candidate_456",
"first_name": "John",
"last_name": "Doe",
"company": "Example Company",
"location": "London, UK",
"role": "Software Engineer"
},
"force_refresh": true
}Authentification
En-têtes HTTP
X-API-Key: ats_your_api_key_here Content-Type: application/json
Créer une analyse
Champs optionnels du corps : candidate.cv (CV en texte brut, utilisé uniquement lors d'exécutions fraîches) et force_refresh (booléen, false par défaut — voir Forcer l'actualisation).
{
"language": "en",
"client": {
"id": "client_company_123",
"first_name": "Jane",
"last_name": "Smith",
"company": "Acme Recruiting"
},
"candidate": {
"id": "candidate_456",
"first_name": "John",
"last_name": "Doe",
"company": "Example Company",
"location": "London, UK",
"role": "Software Engineer",
"cv": "Optional plain-text CV content…"
},
"force_refresh": false
}force_refresh (optionnel, false par défaut) ignore la réutilisation des rapports et génère toujours un nouveau rapport — le nouveau rapport est facturé. Omettez-le sauf si le recruteur demande explicitement une actualisation.
202 Accepted
L'en-tête Location pointe vers GET /api/v1/analyses/'{'id'}'. Retry-After: 10 indique quand effectuer le prochain polling.
{
"id": "cmqp23kgg00067gk0rh6jol5o",
"status": "queued",
"candidate_id": "candidate_456",
"created_at": "2026-06-29T12:00:00.000Z"
}Polling et résultats progressifs
Après un POST renvoyant 202 Accepted, interrogez GET /api/v1/analyses/'{'id'}' avec le même en-tête X-API-Key. Utilisez l'id de la réponse de création.
Tant que le statut est queued ou processing, chaque réponse GET inclut Retry-After: 10 — attendez au moins 10 secondes avant la requête suivante.
Arrêtez le polling lorsque le statut est completed, failed ou canceled.
{
"id": "cmqp23kgg00067gk0rh6jol5o",
"status": "processing",
"candidate_id": "candidate_456",
"stage": "enrichment",
"created_at": "2026-06-29T12:00:00.000Z",
"updated_at": "2026-06-29T12:00:20.000Z",
"quick_signal": {
"level": "Green",
"reason": "Identity supported by multiple matching signals.",
"identityConfidence": "Medium"
},
"signals": [
{
"statement": "Senior engineer at Example Company since 2021.",
"sourceType": "web",
"sourceUrl": "https://example.com/…",
"reliability": "High"
}
],
"report": null,
"metadata": null,
"error": null
}Champs renseignés pendant le traitement
quick_signalSignal d'identité préliminaire (Green, Orange ou Red) avec une courte explication — disponible dès le début de l'enrichissement.signalsSignaux web en direct découverts pendant l'enrichissement. Le tableau s'enrichit au fur et à mesure des recherches externes.stageÉtape actuelle du pipeline : identity → enrichment → report → done.reportRapport Candidate Intelligence complet — renseigné uniquement lorsque le statut est completed.metadataMétadonnées du rapport — renseignées uniquement lorsque le statut est completed. Incluent le lien signé vers le rapport hébergé (pdf_download_url) et les indicateurs de réutilisation cached / cached_at.Valeurs de statut
queuedAcceptée et en attente de démarrage.processingEn cours — interrogez pour les mises à jour de quick_signal, signals et stage.completedRapport prêt — report et metadata sont renseignés.failedAnalyse échouée — error est renseigné.canceledAnalyse annulée via DELETE /api/v1/analyses/'{'id'}' ou état terminal d'annulation atteint.Annuler une analyse
DELETE /api/v1/analyses/'{'id'}' arrête une analyse en file d'attente ou en cours lorsqu'un recruteur quitte le profil candidat ou ferme un rapport en génération. Utilisez le même en-tête X-API-Key que pour POST et GET.
Si l'analyse est déjà completed, failed ou canceled, l'endpoint renvoie la ressource actuelle sans modification — aucun frais supplémentaire ni effet de bord.
// Aucun corps de requête — en-tête X-API-Key uniquement
200 OK
Renvoie la ressource d'analyse avec le statut canceled. Des quick_signal ou signals partiels peuvent être présents si l'annulation a eu lieu en cours de pipeline. Arrêtez le polling dès que le statut est canceled.
{
"id": "cmqp23kgg00067gk0rh6jol5o",
"status": "canceled",
"candidate_id": "candidate_456",
"stage": "enrichment",
"created_at": "2026-06-29T12:00:00.000Z",
"updated_at": "2026-06-29T12:00:25.000Z",
"quick_signal": null,
"signals": [],
"report": null,
"metadata": null,
"error": null
}Analyse terminée
Retournée lorsque le statut est completed. Le rapport ci-dessous est abrégé — consultez la Référence de l'objet rapport pour la liste complète des champs.
Rapport frais (metadata.cached: false)
{
"id": "clx_analysis_id",
"status": "completed",
"candidate_id": "candidate_456",
"stage": "done",
"created_at": "2026-06-29T12:00:00.000Z",
"updated_at": "2026-06-29T12:00:45.000Z",
"quick_signal": {
"level": "Green",
"reason": "Identity supported by multiple matching signals.",
"identityConfidence": "Medium"
},
"signals": [
{
"statement": "…",
"sourceType": "web",
"sourceUrl": "https://example.com/…",
"reliability": "High"
}
],
"report": {
"candidateName": "John Doe",
"profileHeadline": "Software Engineer",
"profileCompany": "Example Company",
"profileLocation": "London, UK",
"identity": {
"status": "Confirmed",
"confidence": "High",
"confidenceReason": "…",
"risk": { "level": "Low", "reason": "…" }
},
"sourcesCheckedCount": 24,
"recommendation": {
"decision": "Go with validation",
"confidence": "Medium",
"confidenceNote": "Identity verified · signals consistent",
"reason": "…",
"evidence": ["…"],
"nextStepPills": [
{ "variant": "confirmed", "label": "Role and tenure verified" },
{ "variant": "validate", "label": "Validate team leadership scope" }
]
},
"summary": "…",
"externalProfileSummary": "…",
"externalProfileTags": [
{ "kind": "catalog", "id": "linkedin_verified" },
{ "kind": "catalog", "id": "signals_highly_consistent" },
{ "kind": "custom", "group": "source_presence", "label": "Open-source contributor" }
],
"strengths": ["…"],
"signals": {
"verified": [
{
"statement": "…",
"sourceType": "web",
"sourceReference": "…",
"reliability": "High"
}
],
"weak": [],
"unverifiedClaims": [],
"noSignificantExternalData": false
},
"highImpactFindings": [
{
"type": "Career",
"title": "…",
"summary": "…",
"evidenceBadge": "validate",
"confidence": "Medium",
"polarity": "Concern"
}
],
"topDecisionDrivers": ["…"],
"expectationGap": {
"expectedSignals": ["…"],
"missingOrWeaker": ["…"],
"assessment": "…"
},
"impactAssessment": {
"summary": "…",
"riskLevel": "Low",
"overallRiskLabel": "Low validation needed",
"implications": ["…"]
},
"whatToValidate": ["…"],
"nextStep": {
"action": "…",
"focusAreas": ["…"],
"reasoning": "…"
},
"alertLevel": "Green",
"externalDataConfidence": "Medium"
},
"metadata": {
"report_id": "clx_analysis_id",
"candidate_id": "candidate_456",
"language": "en",
"generated_at": "2026-06-29T12:00:45.000Z",
"pdf_download_url": "https://intelligence.tietalent.com/api/ats/reports/{id}/pdf?sig=…",
"cached": false,
"cached_at": null
},
"error": null
}Rapport en cache (metadata.cached: true)
{
"id": "clx_new_analysis_id",
"status": "completed",
"candidate_id": "candidate_456",
"stage": "done",
"created_at": "2026-07-15T12:00:00.000Z",
"updated_at": "2026-07-15T12:00:00.500Z",
"quick_signal": { "…": "…" },
"signals": [{ "…": "…" }],
"report": { "…": "…" },
"metadata": {
"report_id": "clx_new_analysis_id",
"candidate_id": "candidate_456",
"language": "en",
"generated_at": "2026-07-15T12:00:00.500Z",
"pdf_download_url": "https://intelligence.tietalent.com/api/ats/reports/{id}/pdf?sig=…",
"cached": true,
"cached_at": "2026-07-15T12:00:00.500Z"
},
"error": null
}L'objet metadata
metadata.pdf_download_url est un lien signé qui ouvre le rapport TieTalent hébergé complet (le même design de rapport que l'application web) ; l'export PDF est téléchargeable depuis cette vue. Traitez ce lien comme confidentiel — toute personne qui le détient peut ouvrir le rapport.
metadata.cached vaut true lorsqu'un rapport existant a été réutilisé au lieu d'en générer un nouveau (voir la Logique de réutilisation des rapports) ; cached_at porte alors l'horodatage de la réutilisation, sinon il vaut null.
Verdicts et compatibilité
report.recommendation.decision est le verdict principal du rapport. Il s'agit toujours de l'une des quatre valeurs ci-dessous.
recommendation.decision — valeurs possibles
"Proceed with confidence" "Go with validation" "Requires Validation (Signals flagged)" "Requires Validation (Insufficient data)"
Associez chaque verdict à l'un des trois états d'interface :
Mapping suggéré (JavaScript)
function toUiState(decision) {
switch (decision) {
case "Proceed with confidence":
return "proceed";
case "Go with validation":
return "validation";
case "Requires Validation (Signals flagged)":
case "Requires Validation (Insufficient data)":
return "requires_validation";
default:
return "requires_validation";
}
}Référence de l'objet rapport
report n'est renseigné que lorsque le statut est completed. Les noms de champs sont en camelCase. La structure reflète le design de rapport actuel utilisé sur toutes les surfaces TieTalent Intelligence (application web, extension et rapport hébergé).
Champs principaux (toujours présents)
candidateNameNom du candidat tel que résolu par l'analyse.identityRésolution d'identité — status (Confirmed, Likely, Ambiguous, Unknown), confidence, confidenceReason et risk (level, reason).recommendationLe verdict — decision (voir Verdicts et compatibilité), confidence, reason, evidence[], confidenceNote (court titre d'évidence) et nextStepPills[] (pastilles d'état d'évidence avec variant et label).summaryParagraphe de synthèse.externalProfileSummarySynthèse narrative de l'empreinte externe du candidat.strengthsPoints forts clés (tableau de chaînes).signalsInstantané des signaux — verified[], weak[], unverifiedClaims[] et noSignificantExternalData.highImpactFindingsConstats critiques pour la décision. Chacun comporte type, summary et confidence, plus title, evidenceBadge, polarity et sourceReference en option.topDecisionDriversLes signaux ayant le plus influencé le verdict (tableau de chaînes).expectationGapSignaux attendus vs trouvés — expectedSignals[], missingOrWeaker[] et assessment.impactAssessmentImpact sur le recrutement — summary, riskLevel et implications[], plus overallRiskLabel, bestSuited[] et considerCarefully[] en option.whatToValidatePoints concrets à valider en entretien (tableau de chaînes).nextStepProchaine étape suggérée — action, focusAreas[] et reasoning.alertLevelNiveau d'alerte global — Green, Yellow, Orange ou Red.externalDataConfidenceConfiance dans les données externes du rapport — High, Medium ou Low.Champs optionnels
Ces champs peuvent être absents. Traitez-les comme nullables et ignorez tout champ que votre interface n'utilise pas.
profileHeadline / profileCompany / profileLocationLignes d'en-tête pour l'affichage — poste/titre, entreprise actuelle et localisation.sourcesCheckedCountNombre de résultats de recherche externes consultés pour le rapport (défini par le pipeline).externalProfileTagsTags décrivant l'empreinte externe du candidat — voir Tags ci-dessous.bestFitContext / bestFitTagsNarratif et tags best-fit — voir Tags ci-dessous.surprisingInsightsCartes d'insights (title, text, source, notOnCV?).keyTakeawaysListes standsOut[] et needsChecking[] d'éléments (label, detail).claimsVsSignalsVérification affirmation par affirmation — (claim, confirmed, assessment).interviewQuestionsQuestions d'entretien suggérées — (question, hint).technicalIntelligenceEmpreinte technique pour les rôles techniques — profileFound, signalStrength, observations[], repositories[], risks[] et impactAssessment.sensitiveUnverifiedSignalsSignaux sensibles avec statut d'attribution. À manipuler avec précaution et à ne jamais présenter comme un fait établi.Envoyer un avis sur un rapport
POST /api/v1/analyses/'{'id'}'/feedback permet à vos recruteurs de noter un rapport terminé — de 1 à 5 étoiles, avec des tags optionnels et un texte libre optionnel — afin que TieTalent puisse suivre la qualité des rapports de votre côté de l'intégration.
L'endpoint effectue un upsert sur client.id et l'id du rapport : envoyer à nouveau une requête pour le même client et le même rapport écrase la note, les tags et le texte précédents — il n'y a pas d'historique des révisions.
{
"client": {
"id": "client_company_123",
"first_name": "Jane",
"last_name": "Smith",
"company": "Acme Recruiting"
},
"rating": 4,
"feedback": "Helped me shortlist quickly, would have liked more sourcing links.",
"tags": ["saved_me_time", "good_signal_quality"]
}Champs de la requête
clientRequis. Même objet client que POST /api/v1/analyses — identifie lequel de vos utilisateurs donne son avis.ratingRequis. Entier de 1 à 5.feedbackOptionnel. Commentaire libre, jusqu'à 2000 caractères.tagsOptionnel. Jusqu'à 5 identifiants de tags canoniques du catalogue ci-dessous — des valeurs invalides ou une note hors plage renvoient une erreur 4xx explicite.Catalogue des tags de feedback
Les tags sont regroupés par tranche de note et changent selon la note envoyée — construisez votre propre interface, mais n'envoyez que les identifiants canoniques afin que les avis restent analysables entre les langues.
Identifiants de tags canoniques par tranche de note
// 1-2 stars missing_info · something_was_wrong · signals_felt_weak too_generic · hard_to_trust // 3 stars useful_but_missing_detail · right_idea_wrong_emphasis some_signals_felt_off · wanted_more_sources // 4-5 stars saved_me_time · helped_me_decide · good_signal_quality easy_to_read · trustworthy
200 OK
Renvoie l'avis enregistré, avec la note, les tags et le texte actuellement en base pour ce client et ce rapport.
{
"report_id": "cmqp23kgg00067gk0rh6jol5o",
"rating": 4,
"feedback": "Helped me shortlist quickly, would have liked more sourcing links.",
"tags": ["saved_me_time", "good_signal_quality"],
"updated_at": "2026-07-21T12:00:00.000Z"
}Interface partenaire recommandée
Ajouter un bouton dans les profils candidats
Ajoutez un bouton « Lancer le rapport Candidate Intelligence » dans les profils candidats. Au clic, il devient « Génération du rapport en cours... » pendant la génération. Une fois prêt, le rapport s'ouvre automatiquement et le bouton devient « ✕ Fermer le rapport ». À la fermeture, il repasse à « Voir le rapport Intelligence » pour rouvrir un rapport déjà enregistré — sans rappeler POST.
Aucun rapport
Rapport en cours de génération
Rapport ouvert
Rapport fermé / existant
Confidentialité et sécurité
⚖️ Avis de conformité IA
Candidate Intelligence est conçu pour accompagner la prise de décision des recruteurs, pas pour la remplacer. Les décisions d'embauche restent de la responsabilité de l'employeur et doivent toujours inclure un examen humain et une supervision appropriés.
Programme partenaire
Commencez à intégrer Candidate Intelligence
Demandez l'accès et nous activerons vos identifiants API partenaire. L'intégration prend généralement moins d'une journée.