This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "3JA7GfUNA3XpO8jD",
"name": "Jessica-ApiFy-LinkedIn",
"description": null,
"active": false,
"isArchived": false,
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "vSEh2VvlaGd32hvVI",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
0,
0
],
"id": "82c8ec12-02aa-4f8a-b70e-8963a15781ec",
"name": "Webhook"
},
{
"parameters": {
"url": "=https://api.apify.com/v2/datasets/{{ $json.body.resource.defaultDatasetId }}/items \n",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "Bearer REDACTED_APIFY_KEY"
}
]
},
"options": {
"redirect": {
"redirect": {}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
220,
0
],
"id": "5140b287-29e9-46b8-b00d-5f0ac3bfbdf5",
"name": "HTTP Request"
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"value": "https://docs.google.com/spreadsheets/d/1LaE_vzIlLEeBJnBEtis5zpckwdybS4_lBq0xkKPE56o/edit?gid=0#gid=0",
"mode": "url"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "\u539f\u59cb",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LaE_vzIlLEeBJnBEtis5zpckwdybS4_lBq0xkKPE56o/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"id": "={{ $json.id }}",
"title": "={{ $json.title }}",
"companyName": "={{ $json.companyName }}",
"companyLogo": "={{ $json.companyLogo }}",
"location": "={{ $json.location }}",
"trackingId": "={{ $json.trackingId }}",
"refId": "={{ $json.refId }}",
"link": "={{ $json.link }}",
"descriptionText": "={{ $json.descriptionHtml }}",
"applyUrl": "={{ $json.companyWebsite }}"
},
"matchingColumns": [
"id"
],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "trackingId",
"displayName": "trackingId",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "refId",
"displayName": "refId",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "link",
"displayName": "link",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "title",
"displayName": "title",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "companyName",
"displayName": "companyName",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "companyLinkedinUrl",
"displayName": "companyLinkedinUrl",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "companyLogo",
"displayName": "companyLogo",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "location",
"displayName": "location",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "salaryInfo",
"displayName": "salaryInfo",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "postedAt",
"displayName": "postedAt",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "benefits",
"displayName": "benefits",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "descriptionText",
"displayName": "descriptionText",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "applicantsCount",
"displayName": "applicantsCount",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "applyUrl",
"displayName": "applyUrl",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.6,
"position": [
440,
0
],
"id": "ad68941d-0b66-4b20-a38a-4e1f637b6c26",
"name": "Google Sheets",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "b5621afc-219d-4528-bc06-5d413d1564e0",
"leftValue": "={{ $json.descriptionText }}",
"rightValue": "remote",
"operator": {
"type": "string",
"operation": "contains"
}
},
{
"id": "b33bc190-b6ee-479b-901e-04816b4359ae",
"leftValue": "={{ $json.descriptionText }}",
"rightValue": "\u9060\u7aef",
"operator": {
"type": "string",
"operation": "contains"
}
}
],
"combinator": "or"
},
"options": {}
},
"type": "n8n-nodes-base.filter",
"typeVersion": 2.2,
"position": [
660,
-220
],
"id": "e61dfec2-bae7-455b-900a-2718578ad827",
"name": "Filter",
"disabled": true
},
{
"parameters": {
"modelId": {
"__rl": true,
"value": "chatgpt-4o-latest",
"mode": "list",
"cachedResultName": "CHATGPT-4O-LATEST"
},
"messages": {
"values": [
{
"content": "=\u4f60\u662f\u4e00\u4f4d\u5c08\u9580\u70ba\u7375\u624d\u516c\u53f8\u9032\u884c\u8077\u7f3a\u8a55\u4f30\u7684 AI \u52a9\u7406\u3002\u4f60\u7684\u4efb\u52d9\u662f\u5206\u6790\u8077\u7f3a\u63cf\u8ff0\u8207\u516c\u53f8\u8cc7\u8a0a\uff0c\u5224\u65b7\u5b83\u5011\u8207\u4ee5\u4e0b\u95dc\u9375\u8a55\u4f30\u6a19\u6e96\u7684\u5951\u5408\u7a0b\u5ea6\uff1a\n\n\u8a55\u4f30\u6a19\u6e96\uff1a\n1. \u81ea\u52d5\u5316\u8207 AI \u5de5\u5177\uff1a\u67e5\u770b\u8077\u7f3a\u63cf\u8ff0\u4e2d\u662f\u5426\u63d0\u53ca\u4f7f\u7528\u81ea\u52d5\u5316\u5de5\u5177\u6216 AI \u5de5\u5177\u3002\n2. \u79d1\u6280\u7522\u696d\uff1a\u5224\u65b7\u516c\u53f8\u662f\u5426\u5c6c\u65bc\u79d1\u6280\u7522\u696d\u3002\n3. \u63d0\u4f9b\u7c3d\u8b49\uff1a\u78ba\u8a8d\u6b64\u8077\u7f3a\u662f\u5426\u63d0\u4f9b\u7c3d\u8b49\u8d0a\u52a9\u3002\n\n\u512a\u5148\u7d1a\u5224\u5b9a\u898f\u5247\uff1a\n\u2022 \u9ad8\u512a\u5148\u7d1a\uff1a\u540c\u6642\u7b26\u5408\u4e09\u9805\u6a19\u6e96\u3002\n\u2022 \u4e2d\u512a\u5148\u7d1a\uff1a\u7b26\u5408\u5176\u4e2d\u4e00\u6216\u5169\u9805\uff08\u8acb\u8a3b\u660e\u662f\u54ea\u4e9b\uff09\u3002\n\u2022 \u4f4e\u512a\u5148\u7d1a\uff1a\u4e09\u9805\u7686\u4e0d\u7b26\u5408\u3002\n\n\u8acb\u6839\u64da\u4ee5\u4e0b\u5169\u9805\u8cc7\u8a0a\u4f86\u6c7a\u5b9a\u512a\u5148\u7d1a\uff1a\n\u2022 \u8077\u7f3a\u63cf\u8ff0\uff1a{{ $('AI Transform').item.json.descriptionText }}\n"
},
{
"content": "\u4f60\u7684\u56de\u8986\u5fc5\u9808\u7b26\u5408\u4ee5\u4e0b JSON \u683c\u5f0f\uff1a\n\n{\n\"priority\": \"high\",\n\"reason\": \"\u5168\u7b26\u5408\"\n}\n\n\u7bc4\u4f8b\u8f38\u51fa\uff1a\n\n{\n\"priority\": \"high\",\n\"reason\": \"\u5168\u7b26\u5408\"\n}\n\n{\n\"priority\": \"Medium\",\n\"reason\": \"\u53ea\u4e00\u9805 visa sponsor \u7b26\u5408\"\n}\n\n{\n\"priority\": \"Low\",\n\"reason\": \"\u5747\u4e0d\u7b26\u5408\"\n}\n\n\u50c5\u8f38\u51fa\u6709\u6548\u7684 JSON \u683c\u5f0f\u3002\u8acb\u52ff\u5305\u542b\u984d\u5916\u6587\u5b57\u3001\u8a3b\u89e3\u6216\u8aaa\u660e\u3002",
"role": "assistant"
},
{
"content": "\u56de\u61c9\u898f\u5247\uff1a\n1.\t\u50c5\u8f38\u51fa JSON \u683c\u5f0f \u2014 \u4e0d\u5f97\u52a0\u5165\u984d\u5916\u8aaa\u660e\u3002\n2.\t\u9664\u4e86 JSON \u7d50\u69cb\u5916\uff0c\u4e0d\u5f97\u5305\u542b\u591a\u9918\u7684\u683c\u5f0f\u6216\u63db\u884c\u3002\n3.\t\u78ba\u4fdd\u8077\u7f3a\u5206\u985e\u7684\u6e96\u78ba\u6027\u3002",
"role": "system"
}
]
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.8,
"position": [
940,
0
],
"id": "37d68dba-4634-4aac-a95d-9d2bbdfc44be",
"name": "OpenAI",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"instructions": "Extract only the base URL from companyLinkedinUrl by removing everything after the first \"?\".\nExample:\nInput: https://www.linkedin.com/company/joinsquare?trk=public_jobs_jserp-result_job-search-card-subtitle\nOutput: https://www.linkedin.com/company/joinsquare/",
"codeGeneratedForPrompt": "Extract only the base URL from companyLinkedinUrl by removing everything after the first \"?\".\nExample:\nInput: https://www.linkedin.com/company/joinsquare?trk=public_jobs_jserp-result_job-search-card-subtitle\nOutput: https://www.linkedin.com/company/joinsquare/",
"jsCode": "const items = $input.all();\nconst updatedItems = items.map((item) => {\n const url = item?.json?.companyLinkedinUrl;\n const baseUrl = url?.split(\"?\")[0];\n item.json.companyLinkedinUrl = baseUrl;\n return item;\n});\nreturn updatedItems;\n"
},
"type": "n8n-nodes-base.aiTransform",
"typeVersion": 1,
"position": [
660,
0
],
"id": "db62a3e5-b139-48d0-a749-cb577e73f0fe",
"name": "AI Transform"
},
{
"parameters": {
"content": "## Linked : https://www.linkedin.com/jobs/search/?currentJobId=4206420144&geoId=104187078&keywords=%E8%BB%9F%E9%AB%94%E5%B7%A5%E7%A8%8B%E5%B8%AB&origin=JOB_SEARCH_PAGE_SEARCH_BUTTON&refresh=true&sortBy=R\n\n## Apify : https://console.apify.com/actors/hKByXkMQaC5Qt9UMN/integrations ( use actor LinkedIN PPR )\n## Input tab, Integrations Tab\n\n## Google Sheet : https://docs.google.com/spreadsheets/d/1LaE_vzIlLEeBJnBEtis5zpckwdybS4_lBq0xkKPE56o/edit?gid=0#gid=0\n\n## YouTube : https://www.youtube.com/watch?v=leZBZO6Zgkg ( part 2 )\n## YouTube : https://www.youtube.com/watch?v=MaWjnf2Aa2I&t=867s ( part 1 )\n\n## REDACTED_APIFY_KEY (20250704)",
"height": 460,
"width": 2200
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-500,
200
],
"id": "70db05bc-59a1-4831-87c7-2159206ceef1",
"name": "Sticky Note"
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets": {
"main": [
[
{
"node": "AI Transform",
"type": "main",
"index": 0
}
]
]
},
"AI Transform": {
"main": [
[
{
"node": "OpenAI",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"meta": null,
"activeVersionId": null,
"versionCounter": 1,
"shared": [
{
"updatedAt": "2025-07-01T00:35:58.322Z",
"createdAt": "2025-07-01T00:35:58.322Z",
"role": "workflow:owner",
"workflowId": "3JA7GfUNA3XpO8jD",
"projectId": "0liZARjPSF29Xm7S",
"project": {
"updatedAt": "2025-05-09T03:15:11.991Z",
"createdAt": "2025-05-09T03:15:09.651Z",
"id": "0liZARjPSF29Xm7S",
"name": "ChengHsien Yang <chenghyang2001@gmail.com>",
"type": "personal",
"icon": null,
"description": null,
"creatorId": "67155d98-04ab-4531-a011-993eff9c535f"
}
}
],
"tags": [
{
"updatedAt": "2025-07-01T08:20:50.974Z",
"createdAt": "2025-07-01T08:20:50.974Z",
"id": "WbINTXJmDnPFqXny",
"name": "jessica"
},
{
"updatedAt": "2025-07-01T08:20:56.845Z",
"createdAt": "2025-07-01T08:20:56.845Z",
"id": "XU5cBDVbSwYMc37h",
"name": "apify"
}
],
"activeVersion": null
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleSheetsOAuth2ApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Jessica-ApiFy-LinkedIn. Uses httpRequest, googleSheets, openAi, aiTransform. Webhook trigger; 7 nodes.
Source: https://github.com/chenghyang2001/n8n-workflows/blob/022ee1a4e003aa4829dd0365bd54e8715867ef3f/workflows/jessica-apify-linkedin.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Selenium Ultimate Scraper Workflow. Uses html, lmChatOpenAi, httpRequest, limit. Webhook trigger; 63 nodes.
Selenium Ultimate Scraper Workflow. Uses html, lmChatOpenAi, httpRequest, limit. Webhook trigger; 63 nodes.
This workflow is Part 2 of the HR Client Acquisition system and builds on the lead discovery pipeline from the previous workflow:
Product - SERP Analysis (Serper + Firecrawl). Uses formTrigger, httpRequest, googleSheets, openAi. Event-driven trigger; 40 nodes.
Product - SERP Analysis (Serper & Crawl4AI). Uses formTrigger, httpRequest, googleSheets, openAi. Event-driven trigger; 39 nodes.