Automatisation de la recherche d'offres d'emploi LinkedIn avec l'API Bright Data et l'intégration Google Sheets
Ceci est unOther, AIworkflow d'automatisation du domainecontenant 16 nœuds.Utilise principalement des nœuds comme If, Wait, Filter, FormTrigger, HttpRequest, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Automatisation de la recherche d'offres d'emploi LinkedIn, utilisant l'API Bright Data et Google Sheets
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
Nœuds utilisés (16)
Catégorie
{
"id": "Eo2mqDdtIQFdZhxp",
"meta": {
"instanceId": "bc8ca75c203589705ae2e446cad7181d6f2a7cc1766f958ef9f34810e53b8cb2",
"templateCredsSetupCompleted": true
},
"name": "LinkedIn Job Finder Automation using Bright Data API & Google Sheets Integration",
"tags": [],
"nodes": [
{
"id": "9617d433-62f7-4ddf-bf47-a9a3208aa248",
"name": "À la soumission du formulaire1",
"type": "n8n-nodes-base.formTrigger",
"position": [
-660,
-460
],
"webhookId": "37d0e84c-0cda-47f8-826d-9ae5b22ba1d5",
"parameters": {
"options": {},
"formTitle": "LinkedIn Job Finder",
"formFields": {
"values": [
{
"fieldLabel": "City",
"requiredField": true
},
{
"fieldLabel": "Job Title",
"requiredField": true
},
{
"fieldLabel": "Country",
"requiredField": true
},
{
"fieldType": "dropdown",
"fieldLabel": "Job_type(Optional)",
"fieldOptions": {
"values": [
{
"option": "Full-Time"
},
{
"option": "Part-Time"
},
{
"option": "Remote"
},
{
"option": "WFH"
},
{
"option": "Contract"
},
{
"option": "Internship"
},
{
"option": "Freelance"
}
]
}
}
]
}
},
"typeVersion": 2.2
},
{
"id": "47c35950-354c-42e4-b707-60ed5b1eeb2f",
"name": "Vérifier le statut final",
"type": "n8n-nodes-base.if",
"position": [
320,
-460
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "35ed620d-b5d5-4e97-bcc5-52b283d85616",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "ready"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "cef9c86d-98ce-4944-9907-d815cba406f4",
"name": "Créer un ID d'instantané",
"type": "n8n-nodes-base.httpRequest",
"position": [
-360,
-460
],
"parameters": {
"url": "https://api.brightdata.com/datasets/v3/trigger",
"method": "POST",
"options": {},
"jsonBody": "={\n \"input\": [\n {\n \"location\": \"{{$node['On form submission1'].json['City'] ? $node['On form submission1'].json['City'].trim() : ''}}\",\n \"keyword\": \"{{$node['On form submission1'].json['Job Title'] ? $node['On form submission1'].json['Job Title'].trim() : ''}}\",\n \"country\": \"{{$node['On form submission1'].json['Country'] ? $node['On form submission1'].json['Country'].slice(0, 2).toUpperCase() : ''}}\",\n \"time_range\": \"Past week\",\n \"job_type\": \"{{ ['full-time', 'part-time', 'internship', 'contract', 'temporary'].includes($node['On form submission1'].json['Job_type']?.toLowerCase()) ? $node['On form submission1'].json['Job_type'] : '' }}\"\n }\n ],\n \"custom_output_fields\": [\n \"url\",\n \"job_posting_id\",\n \"job_title\",\n \"company_name\",\n \"company_id\",\n \"job_location\",\n \"job_summary\",\n \"job_seniority_level\",\n \"job_function\",\n \"job_employment_type\",\n \"job_industries\",\n \"job_base_pay_range\",\n \"company_url\",\n \"job_posted_time\",\n \"job_num_applicants\",\n \"discovery_input\",\n \"apply_link\",\n \"country_code\",\n \"title_id\",\n \"company_logo\",\n \"job_posted_date\",\n \"job_poster\",\n \"application_availability\",\n \"job_description_formatted\",\n \"base_salary\",\n \"timestamp\",\n \"error\",\n \"error_code\",\n \"warning\",\n \"warning_code\"\n ]\n}\n",
"sendBody": true,
"sendQuery": true,
"sendHeaders": true,
"specifyBody": "json",
"queryParameters": {
"parameters": [
{
"name": "dataset_id",
"value": "YOUR_DATASET_ID_HERE"
},
{
"name": "include_errors",
"value": "true"
},
{
"name": "type",
"value": "discover_new"
},
{
"name": "discover_by",
"value": "keyword"
},
{
"name": "limit_per_input",
"value": "2"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_BRIGHTDATA_API_TOKEN_HERE"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "66705bee-6424-4f6f-8c24-d9aa7a198399",
"name": "Vérifier le statut de l'instantané",
"type": "n8n-nodes-base.httpRequest",
"position": [
20,
-460
],
"parameters": {
"url": "=https://api.brightdata.com/datasets/v3/progress/{{ $json.snapshot_id }}",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "format",
"value": "json"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_BRIGHTDATA_API_TOKEN_HERE"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "b5f9e1c9-eace-4a68-a084-dc254b1b9c46",
"name": "Attendre 1 minute",
"type": "n8n-nodes-base.wait",
"position": [
620,
-100
],
"webhookId": "7047efad-de41-4608-b95c-d3e0203ef620",
"parameters": {
"unit": "minutes",
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "fff887f5-0388-4667-a5e9-7ef72ea36ac0",
"name": "Extraire les données depuis SnapID",
"type": "n8n-nodes-base.httpRequest",
"position": [
900,
-500
],
"parameters": {
"url": "=https://api.brightdata.com/datasets/v3/snapshot/{{ $json.snapshot_id }}",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "format",
"value": "json"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_BRIGHTDATA_API_TOKEN_HERE"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "57572d1d-3366-447d-8186-62a121824033",
"name": "Mettre à jour les listes d'emplois dans la feuille",
"type": "n8n-nodes-base.googleSheets",
"position": [
1380,
-500
],
"parameters": {
"columns": {
"value": {
"Location": "={{ $json.job_location }}",
"Job Title": "={{ $json.job_title }}",
"Apply Link": "={{ $json.apply_link }}",
"Job Detail": "={{ $json.job_summary }}",
"Company URL": "={{ $json.company_url }}",
"Company Name ": "={{ $json.company_name }}"
},
"schema": [
{
"id": "Company URL",
"type": "string",
"display": true,
"required": false,
"displayName": "Company URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Job Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Job Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Name ",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Name ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Location",
"type": "string",
"display": true,
"required": false,
"displayName": "Location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Job Detail",
"type": "string",
"display": true,
"required": false,
"displayName": "Job Detail",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Apply Link",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Apply Link",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID_HERE/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEET_ID_HERE",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID_HERE/edit?usp=drivesdk",
"cachedResultName": "LinkedIn"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "YOUR_GOOGLE_SHEETS_CREDENTIAL_ID",
"name": "Google Sheets Credential"
}
},
"typeVersion": 4.6
},
{
"id": "3afbef52-97fe-4ead-8d57-d8e98e684b47",
"name": "Filtrer",
"type": "n8n-nodes-base.filter",
"position": [
1140,
-500
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "eb682420-fc89-4e01-a491-5a4a3f6bf10f",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.job_summary }}",
"rightValue": "={{ $json.shortCommonName }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "1badd4f4-4f66-4777-a2b7-3343f2afb2b3",
"name": "Si",
"type": "n8n-nodes-base.if",
"position": [
620,
-480
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f01bd215-c406-493c-a6e4-2b8ec5686b44",
"operator": {
"type": "number",
"operation": "notEquals"
},
"leftValue": "={{ $json.records }}",
"rightValue": "={{ 0 }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "df16ac92-0f96-40cd-ad9c-da17332a3e81",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-760,
-620
],
"parameters": {
"color": 2,
"width": 300,
"height": 340,
"content": "🔹 Search by Keyword — Form Trigger\nPurpose:\nCollects the user-submitted job search criteria including city, job title, country, and job type.\nTriggers the workflow when new search parameters are entered."
},
"typeVersion": 1
},
{
"id": "454c5db0-beb7-4a0b-95ca-8308a114e420",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-440,
-660
],
"parameters": {
"color": 3,
"width": 320,
"height": 380,
"content": "🔹 LinkedIn Job Search Fetcher — HTTP Request (POST to Bright Data)\nPurpose:\nSends the job search criteria to Bright Data's LinkedIn dataset API.\nInitiates the scraping job to fetch LinkedIn job postings matching the criteria."
},
"typeVersion": 1
},
{
"id": "c68c4da8-6965-45cb-833f-0bb3a99a289c",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-100,
-640
],
"parameters": {
"color": 4,
"width": 300,
"height": 360,
"content": "🔹 Check Delivery Status of Snap ID — HTTP Request (GET)\nPurpose:\nChecks the status of the scraping job using the returned snapshot_id.\nEnsures the task is complete before continuing to data extraction."
},
"typeVersion": 1
},
{
"id": "57d2b098-41ce-4ee6-ab1d-130e2645dc3e",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
500,
-220
],
"parameters": {
"color": 7,
"width": 380,
"height": 280,
"content": "🔹 Wait 1 minute — Wait Node\nPurpose:\nDelays the workflow execution by 1 minute.\nPrevents frequent polling of Bright Data API to reduce load and errors."
},
"typeVersion": 1
},
{
"id": "47fc7436-1f6b-4bec-b88c-4df12ceddf57",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
220,
-640
],
"parameters": {
"color": 5,
"width": 270,
"height": 360,
"content": "🔹 Check Final Status — IF Node #1\nPurpose:\nConditionally checks if snapshot status is \"ready\".\nIf yes → proceed to download scraped data.\nIf no → loop back to Wait Node and recheck."
},
"typeVersion": 1
},
{
"id": "7a978cd2-efad-474d-92b7-3f9f28155f00",
"name": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
820,
-680
],
"parameters": {
"color": 6,
"width": 260,
"height": 400,
"content": "🔹 Decode Snapshot from Response — HTTP Request (GET)\nPurpose:\nDownloads the final scraped LinkedIn job dataset using the ready snapshot ID.\nContains full job posting data in JSON format."
},
"typeVersion": 1
},
{
"id": "6ff9b0c5-b18c-44e9-b671-86388428927b",
"name": "Note adhésive6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1300,
-660
],
"parameters": {
"color": 3,
"width": 340,
"height": 400,
"content": "🔹 Google Sheets — Google Sheets (AppendOrUpdate)\nPurpose:\nAppends each LinkedIn job result into your Google Sheet.\nCaptures data fields like job title, company name, location, job details, and apply links."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "57896d29-3f06-44b6-bb08-964875ffc7fb",
"connections": {
"1badd4f4-4f66-4777-a2b7-3343f2afb2b3": {
"main": [
[
{
"node": "fff887f5-0388-4667-a5e9-7ef72ea36ac0",
"type": "main",
"index": 0
}
]
]
},
"3afbef52-97fe-4ead-8d57-d8e98e684b47": {
"main": [
[
{
"node": "57572d1d-3366-447d-8186-62a121824033",
"type": "main",
"index": 0
}
]
]
},
"b5f9e1c9-eace-4a68-a084-dc254b1b9c46": {
"main": [
[
{
"node": "66705bee-6424-4f6f-8c24-d9aa7a198399",
"type": "main",
"index": 0
}
]
]
},
"47c35950-354c-42e4-b707-60ed5b1eeb2f": {
"main": [
[
{
"node": "1badd4f4-4f66-4777-a2b7-3343f2afb2b3",
"type": "main",
"index": 0
}
],
[
{
"node": "b5f9e1c9-eace-4a68-a084-dc254b1b9c46",
"type": "main",
"index": 0
}
]
]
},
"cef9c86d-98ce-4944-9907-d815cba406f4": {
"main": [
[
{
"node": "66705bee-6424-4f6f-8c24-d9aa7a198399",
"type": "main",
"index": 0
}
]
]
},
"9617d433-62f7-4ddf-bf47-a9a3208aa248": {
"main": [
[
{
"node": "cef9c86d-98ce-4944-9907-d815cba406f4",
"type": "main",
"index": 0
}
]
]
},
"66705bee-6424-4f6f-8c24-d9aa7a198399": {
"main": [
[
{
"node": "47c35950-354c-42e4-b707-60ed5b1eeb2f",
"type": "main",
"index": 0
}
]
]
},
"fff887f5-0388-4667-a5e9-7ef72ea36ac0": {
"main": [
[
{
"node": "3afbef52-97fe-4ead-8d57-d8e98e684b47",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Autres, Intelligence Artificielle
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Dvir Sharon
@dvirsharonPartager ce workflow