U
Utilia AI

Site en construction

Lancement officiel bientot !

Questions ? hello@utilia-ai.com

Retour au workflow
Documentation technique

RH - LinkedIn Sourcing Automatisé

Documentation Technique : LinkedIn Sourcing Automatisé

ID: 8Qqc4lqsQ9c27MEE Version: 1.0.0 Score Qualité: 93/100 Date: 2026-01-26 Créé par: Utilia AI


Vue d’ensemble

Automatiser le sourcing de candidats LinkedIn avec enrichissement email et scoring IA pour qualification automatique.

Objectif

Ce workflow automatise l’intégralité du processus de sourcing RH :

  1. Scraping de profils LinkedIn selon des critères de recherche
  2. Enrichissement avec emails professionnels via Hunter.io
  3. Scoring IA de chaque candidat (compétences, expérience, carrière)
  4. Sauvegarde dans Airtable avec analyse complète
  5. Ajout automatique des candidats qualifiés aux séquences Lemlist

Déclencheur

PropriétéValeur
TypeSchedule Trigger
NodeSchedule Trigger
FréquenceConfigurable (recommandé : 1-2x/semaine)
ModeCron ou intervalle

Flux de données

LinkedIn Search → Apify Scraper → Split → Clean → Dedup → Hunter → AI Score → Airtable → Lemlist

Architecture

SCRAPING          ENRICHISSEMENT           SCORING IA           OUTREACH
─────────────────────────────────────────────────────────────────────────

Schedule    Configuration    Apify       Split      Clean      Check      Filter
Trigger  →  Variables     →  Scraper  →  Out    →   Data   →  Existing →  New


                                                          Extract Domain


                                                          Hunter Email


                                                          Merge Data


                                                     ┌───────────────────┐
                                                     │  AI Agent         │
                                                     │  (GPT-4o-mini)    │
                                                     │  + Output Parser  │
                                                     └───────────────────┘


                                                          Parse Response


                                                          Save Airtable


                                                          Score Check
                                                            /      \
                                                      ≥70          <70
                                                        │            │
                                                        ▼            ▼
                                                     Lemlist      NoOp
                                                        │         (end)

                                                   Update Status

Nodes (20 nodes principaux)

#NodeTypeRôle
1Schedule TriggerscheduleTriggerDéclenchement automatique
2Configuration VariablessetParamètres centralisés
3HTTP Request - ApifyhttpRequestScraping LinkedIn via Apify
4Split CandidatessplitOutSéparation en items
5Clean Candidate DatasetNormalisation données
6Check Existing CandidateairtableVérification doublon
7Filter New CandidatesfilterFiltrage nouveaux
8Extract Company DomaincodeExtraction domaine
9Hunter Find EmailhunterEnrichissement email
10Merge Enriched DatasetFusion données
11AI Candidate ScoringagentÉvaluation IA
12OpenAI GPT-4o-minilmChatOpenAiModèle de langage
13JSON Output ParseroutputParserStructuredParsing JSON
14Parse AI ResponsecodeFusion score + candidat
15Save to AirtableairtablePersistance
16Score Threshold CheckifFiltrage qualifiés
17Add to Lemlist CampaignlemlistAjout séquence
18Update Contact StatusairtableMAJ statut
19Unqualified CandidatenoOpFin non-qualifiés
20Error Trigger (Template)errorTriggerGestion erreurs

Détail des nodes critiques

Schedule Trigger

Type: n8n-nodes-base.scheduleTrigger Version: 1.2

Configuration:

  • Fréquence configurable
  • Recommandation : 1-2x/semaine pour éviter spam LinkedIn

Configuration Variables

Type: n8n-nodes-base.set Version: 3.4

Variables définies:

VariableTypeDescription
linkedinSearchUrlstringURL de recherche LinkedIn
apifyApiKeystringClé API Apify (env)
maxCandidatesnumberLimite profils (défaut: 50)
minScoreForOutreachnumberSeuil contact (défaut: 70)
lemlistCampaignIdstringID campagne Lemlist (env)

HTTP Request - Apify LinkedIn Scraper

Type: n8n-nodes-base.httpRequest Version: 4.2

Configuration:

  • URL: https://api.apify.com/v2/acts/curious_coder~linkedin-profile-scraper/run-sync-get-dataset-items
  • Method: POST
  • Timeout: 5 minutes (300000ms)
  • Retry: 3 tentatives, délai 5s

Body JSON:

{
  "searchUrl": "{{ linkedinSearchUrl }}",
  "maxProfiles": {{ maxCandidates }},
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}

AI Candidate Scoring

Type: @n8n/n8n-nodes-langchain.agent Version: 1.7

Modèle: GPT-4o-mini (température 0.3)

Prompt:

Analyse ce profil de candidat et attribue un score de 0 à 100.

Profil:
- Nom: {{ fullName }}
- Titre: {{ headline }}
- Entreprise actuelle: {{ company }}
- Localisation: {{ location }}
- Compétences: {{ skills }}

Critères:
1. Pertinence compétences techniques (40%)
2. Niveau expérience (30%)
3. Progression carrière (20%)
4. Localisation (10%)

Réponds en JSON: {"score": number, "strengths": [], "concerns": [], "recommendation": "CONTACT"|"MAYBE"|"SKIP", "personalizedMessage": "string"}

Sortie structurée:

{
  "score": 85,
  "strengths": ["10 ans expérience", "Stack moderne"],
  "concerns": ["Localisation éloignée"],
  "recommendation": "CONTACT",
  "personalizedMessage": "Votre expertise React..."
}

Score Threshold Check

Type: n8n-nodes-base.if Version: 2.2

Conditions (AND):

  • aiScore >= 70
  • email non vide

Sorties:

  • True → Add to Lemlist Campaign
  • False → Unqualified Candidate (NoOp)

Gestion des erreurs

PatternConfiguration
Retry3 tentatives sur tous les nodes API
Délai2-5 secondes entre tentatives
On ErrorContinue Regular Output
Timeout5 minutes pour Apify

Error Workflow (Template)

Le workflow inclut un template de gestion d’erreurs :

  • Error Trigger → Slack Alert
  • À déployer dans un workflow séparé
  • Centralise toutes les erreurs

Credentials requis

ServiceTypeConfiguration
ApifyAPI KeyVariable env APIFY_API_KEY
Hunter.ioAPI Keyn8n Credentials
OpenAIAPI Keyn8n Credentials
AirtableAPI KeyVariable env AIRTABLE_BASE_ID
LemlistAPI KeyVariable env LEMLIST_CAMPAIGN_ID
SlackOAuthn8n Credentials (optionnel)

Variables d’environnement

# Configuration requise dans n8n Settings > Variables
APIFY_API_KEY=apify_api_XXXXX
AIRTABLE_BASE_ID=appXXXXXXXX
LEMLIST_CAMPAIGN_ID=cam_XXXXXXXX

Structure Airtable

Table: Candidats

ChampTypeDescription
Nom CompletSingle line textPrénom + Nom
PrénomSingle line text-
NomSingle line text-
EmailEmailEmail professionnel
LinkedIn URLURLProfil LinkedIn
TitreSingle line textHeadline LinkedIn
EntrepriseSingle line textEntreprise actuelle
LocalisationSingle line textVille/Pays
CompétencesLong textListe compétences
Score AINumberScore 0-100
Points FortsLong textAnalyse IA
Points FaiblesLong textAnalyse IA
RecommandationSingle selectCONTACT, MAYBE, SKIP
Message PersonnaliséLong textIcebreaker IA
StatutSingle selectNouveau, Ajouté à Séquence Email
Date ImportDateTimestamp traitement

Coûts estimés

ServiceCoût estimé
Apify~$0.02/profil (selon plan)
Hunter.io50-500 req/mois (selon plan)
OpenAI~$0.01/candidat (GPT-4o-mini)
AirtableGratuit jusqu’à 1000 records
LemlistSelon plan

Pour 50 candidats/run : ~$2-5 total


Maintenance

Logs à surveiller

  • Erreurs Apify (rate limits, proxies)
  • Erreurs Hunter (quotas)
  • Erreurs OpenAI (tokens)
  • Airtable (limites records)

Points de défaillance potentiels

  1. Apify rate limits : Espacer les runs, utiliser proxies
  2. Hunter quotas : Monitorer usage mensuel
  3. LinkedIn changes : Le scraper Apify peut nécessiter updates
  4. Airtable limites : Archiver vieux records si > 50k

Changelog

DateVersionChangements
2026-01-261.0Publication initiale

Support

Créé par: Utilia AI Contact: hello@utilia-ai.com Site: https://utilia-ai.fr Localisation: La Rochelle, France


Documentation générée automatiquement par Utilia AI

Besoin d'aide avec ce workflow ?

Installation, configuration, personnalisation : on peut vous accompagner.

✓ Gratuit • ✓ Sans engagement • ✓ Réponse sous 24h