This workflow follows the Gmail → 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 →
{
"name": "job-scraper",
"nodes": [
{
"parameters": {
"method": "POST",
"url": "https://app.dumplingai.com/api/v1/scrape",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Authorization",
"value": "Bearer YOUR_API_KEY"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"url\": \"https://www.kariyer.net/is-ilanlari/yazilim+uzmani?pst=2024&pkw=yaz%C4%B1l%C4%B1m%20uzman%C4%B1\", \n \"format\": \"html\",\n \"cleaned\": \"True\"\n }",
"options": {
"allowUnauthorizedCerts": true
}
},
"id": "b6a8c0e9-57e2-41a2-99dc-dc098dda2d8f",
"name": "Scrape Website Content with Dumpling AI",
"type": "n8n-nodes-base.httpRequest",
"position": [
220,
740
],
"typeVersion": 4.1
},
{
"parameters": {
"method": "POST",
"url": "https://app.dumplingai.com/api/v1/scrape",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Authorization",
"value": "Bearer YOUR_API_KEY"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"url\": \"https://tr.linkedin.com/jobs/software-developer-jobs?countryRedirected=1&position=1&pageNum=0\", \n \"format\": \"html\",\n \"cleaned\": \"false\"\n }",
"options": {
"allowUnauthorizedCerts": true
}
},
"id": "2c130841-fd95-46f9-9825-d4fc4d42b878",
"name": "Scrape Website Content with Dumpling AI1",
"type": "n8n-nodes-base.httpRequest",
"position": [
220,
1000
],
"typeVersion": 4.1
},
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
-120,
1000
],
"id": "18e11d48-ca3e-470a-986a-fc81cef3dd76",
"name": "When clicking \u2018Test workflow\u2019"
},
{
"parameters": {
"numberInputs": 3
},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.1,
"position": [
1240,
980
],
"id": "b71b20db-8c67-4d09-a327-d00cbd9d9864",
"name": "Merge"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "c42e9726-c8af-4fcb-9aa6-e8d0dfb23f7d",
"leftValue": "={{ $json.Etc }}",
"rightValue": "1 hafta",
"operator": {
"type": "string",
"operation": "contains"
}
},
{
"id": "1e442d59-c996-4c04-848e-31c49ddca244",
"leftValue": "={{ $json.Etc }}",
"rightValue": "2 hafta",
"operator": {
"type": "string",
"operation": "contains"
}
},
{
"id": "e7425555-6c61-4297-8135-ef375f3de550",
"leftValue": "={{ $json.Etc }}",
"rightValue": "g\u00fcn",
"operator": {
"type": "string",
"operation": "contains"
}
}
],
"combinator": "or"
},
"options": {}
},
"type": "n8n-nodes-base.filter",
"typeVersion": 2.2,
"position": [
920,
1000
],
"id": "07d7dc6b-47ca-4551-9369-9e08f817b820",
"name": "Filter"
},
{
"parameters": {
"html": "<!DOCTYPE html>\n\n{{ $json.htmlBody.replaceAll(\"\\n\",\"\") }}\n\n<style>\n.container {\n background-color: #ffffff;\n text-align: center;\n padding: 16px;\n border-radius: 8px;\n}\n\nh1 {\n color: #ff6d5a;\n font-size: 24px;\n font-weight: bold;\n padding: 8px;\n}\n\nh2 {\n color: #909399;\n font-size: 18px;\n font-weight: bold;\n padding: 8px;\n}\n</style>\n\n<script>\nconsole.log(\"Hello World!\");\n</script>"
},
"type": "n8n-nodes-base.html",
"typeVersion": 1.2,
"position": [
1860,
980
],
"id": "25628f47-72f4-49db-addd-8990afc6f2f2",
"name": "HTML"
},
{
"parameters": {
"jsCode": "// \u0130\u015f ilan\u0131 verilerini al\nconst items = $input.all();\n\n// HTML tablo g\u00f6vdesini ba\u015flat\nlet rows = '';\nconsole.log(items)\n// T\u00fcm i\u015f ilanlar\u0131n\u0131 d\u00f6n ve tablo sat\u0131r\u0131 olarak ekle\nfor (const item of items[0].json.data) {\n const { Title, Company, City, Etc, Link } = item;\n console.log(Title)\n rows += `\n <tr>\n <td>${Title}</td>\n <td>${Company}</td>\n <td>${City}</td>\n <td>${Etc}</td>\n <td><a href=\"${Link}\" target=\"_blank\">\u0130lan\u0131 G\u00f6r\u00fcnt\u00fcle</a></td>\n </tr>\n `;\n}\n\n// Tam HTML g\u00f6vdesini olu\u015ftur\nconst htmlTable = `\n <html>\n <head>\n <meta charset=\"UTF-8\">\n <style>\n body {\n font-family: Arial, sans-serif;\n background-color: #f9f9f9;\n color: #333;\n padding: 20px;\n }\n h2 {\n color: #222;\n }\n table {\n width: 100%;\n border-collapse: collapse;\n background: #fff;\n box-shadow: 0 2px 5px rgba(0,0,0,0.1);\n }\n th, td {\n border: 1px solid #e0e0e0;\n padding: 12px 10px;\n text-align: left;\n }\n th {\n background-color: #f3f3f3;\n font-weight: bold;\n }\n tr:nth-child(even) {\n background-color: #fafafa;\n }\n a {\n color: #007BFF;\n text-decoration: none;\n }\n a:hover {\n text-decoration: underline;\n }\n </style>\n </head>\n <body>\n <h2>Yeni Yaz\u0131l\u0131m Uzman\u0131 \u0130\u015f \u0130lanlar\u0131</h2>\n <table>\n <thead>\n <tr>\n <th>Pozisyon</th>\n <th>Firma</th>\n <th>\u015eehir</th>\n <th>\u00c7al\u0131\u015fma \u015eekli</th>\n <th>Link</th>\n </tr>\n </thead>\n <tbody>\n ${rows}\n </tbody>\n </table>\n </body>\n </html>\n`;\n\nreturn [\n {\n json: {\n htmlBody: htmlTable\n }\n }\n];\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1680,
980
],
"id": "54dc3a03-f9a7-4c0f-b1c3-076663be986a",
"name": "Code"
},
{
"parameters": {
"aggregate": "aggregateAllItemData",
"options": {}
},
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
1460,
980
],
"id": "bc765d0e-2014-4da1-bffb-dadd5ced690c",
"name": "Aggregate"
},
{
"parameters": {
"sendTo": "you_email",
"subject": "2 Haftal\u0131k \u0130\u015f \u0130lanlar\u0131",
"message": "={{ $json.html }}",
"options": {}
},
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
2080,
980
],
"id": "788173dc-7d98-4bb9-becd-c72f2d59c809",
"name": "Gmail",
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"method": "POST",
"url": "https://app.dumplingai.com/api/v1/scrape",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Authorization",
"value": "Bearer YOUR_API_KEY"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"url\": \"https://www.eleman.net/is-ilanlari?arandi=e&bol%5B%5D=29&gun=15&poz%5B%5D=1657\", \n \"format\": \"html\",\n \"cleaned\": \"false\"\n }",
"options": {
"allowUnauthorizedCerts": true
}
},
"id": "e33095e2-41f0-461b-b3fd-4c8c789f415c",
"name": "Scrape Website Content with Dumpling AI2",
"type": "n8n-nodes-base.httpRequest",
"position": [
220,
1260
],
"typeVersion": 4.1
},
{
"parameters": {
"operation": "extractHtmlContent",
"dataPropertyName": "content",
"extractionValues": {
"values": [
{
"key": "jobs",
"cssSelector": ".job-list-card-item",
"returnValue": "html",
"returnArray": true
}
]
},
"options": {}
},
"id": "5795094e-f2f1-4678-be55-a388a4ec9f5b",
"name": "Extract all jobs",
"type": "n8n-nodes-base.html",
"position": [
460,
740
],
"typeVersion": 1.2
},
{
"parameters": {
"operation": "extractHtmlContent",
"dataPropertyName": "=content",
"extractionValues": {
"values": [
{
"key": "Jobs",
"cssSelector": "ul > li > div",
"returnValue": "html",
"returnArray": true
}
]
},
"options": {}
},
"id": "2e3f6e20-199e-4adb-9e2c-687708a628ed",
"name": "Extract all jobs1",
"type": "n8n-nodes-base.html",
"position": [
460,
1000
],
"typeVersion": 1.2
},
{
"parameters": {
"operation": "extractHtmlContent",
"dataPropertyName": "content",
"extractionValues": {
"values": [
{
"key": "jobs",
"cssSelector": ".ilan_listeleme_bol ",
"returnValue": "html",
"returnArray": true
}
]
},
"options": {}
},
"id": "774d5a33-71a6-410f-9381-15534677b0f6",
"name": "Extract all jobs2",
"type": "n8n-nodes-base.html",
"position": [
460,
1260
],
"typeVersion": 1.2
},
{
"parameters": {
"operation": "extractHtmlContent",
"dataPropertyName": "=jobs",
"extractionValues": {
"values": [
{
"key": "Link",
"cssSelector": "a",
"returnValue": "attribute",
"attribute": "href"
},
{
"key": "Title",
"cssSelector": "h3",
"returnValue": "html"
},
{
"key": "Company",
"cssSelector": "span > span",
"returnValue": "html"
},
{
"key": "City",
"cssSelector": "span > span",
"returnValue": "html"
},
{
"key": "Etc",
"cssSelector": ".c-showcase-box__text",
"returnValue": "html"
}
]
},
"options": {}
},
"id": "5cdeae20-8b54-4e58-862f-51d5df1d50fc",
"name": "Extract job props",
"type": "n8n-nodes-base.html",
"position": [
700,
1260
],
"typeVersion": 1.2
},
{
"parameters": {
"operation": "extractHtmlContent",
"dataPropertyName": "Jobs",
"extractionValues": {
"values": [
{
"key": "Link",
"cssSelector": "a",
"returnValue": "attribute",
"attribute": "href"
},
{
"key": "Title",
"cssSelector": "div > h3",
"returnValue": "html"
},
{
"key": "Company",
"cssSelector": "div > h4 >a",
"returnValue": "html"
},
{
"key": "City",
"cssSelector": "div > div > p > span",
"returnValue": "html"
},
{
"key": "Etc",
"cssSelector": "div > div > p > time",
"returnValue": "html"
}
]
},
"options": {}
},
"id": "b5b58289-bad5-43c5-82ec-7b8ca5f5d215",
"name": "Extract job props1",
"type": "n8n-nodes-base.html",
"position": [
700,
1000
],
"typeVersion": 1.2
},
{
"parameters": {
"operation": "extractHtmlContent",
"dataPropertyName": "=jobs",
"extractionValues": {
"values": [
{
"key": "Link",
"cssSelector": "a",
"returnValue": "attribute",
"attribute": "href"
},
{
"key": "Title",
"cssSelector": ".title-left > span",
"returnValue": "html"
},
{
"key": "Company",
"cssSelector": ".subtitle > span",
"returnValue": "html"
},
{
"key": "City",
"cssSelector": ".location, .work-model",
"returnValue": "html"
},
{
"key": "Etc",
"cssSelector": "span.text",
"returnValue": "html"
}
]
},
"options": {}
},
"id": "f6cd6b67-c5db-4f41-8585-4876b97b5a71",
"name": "Extract job props2",
"type": "n8n-nodes-base.html",
"position": [
700,
740
],
"typeVersion": 1.2
}
],
"connections": {
"Scrape Website Content with Dumpling AI": {
"main": [
[
{
"node": "Extract all jobs",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "Scrape Website Content with Dumpling AI",
"type": "main",
"index": 0
},
{
"node": "Scrape Website Content with Dumpling AI1",
"type": "main",
"index": 0
},
{
"node": "Scrape Website Content with Dumpling AI2",
"type": "main",
"index": 0
}
]
]
},
"Scrape Website Content with Dumpling AI1": {
"main": [
[
{
"node": "Extract all jobs1",
"type": "main",
"index": 0
}
]
]
},
"Filter": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Code": {
"main": [
[
{
"node": "HTML",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"HTML": {
"main": [
[
{
"node": "Gmail",
"type": "main",
"index": 0
}
]
]
},
"Scrape Website Content with Dumpling AI2": {
"main": [
[
{
"node": "Extract all jobs2",
"type": "main",
"index": 0
}
]
]
},
"Extract all jobs": {
"main": [
[
{
"node": "Extract job props2",
"type": "main",
"index": 0
}
]
]
},
"Extract all jobs1": {
"main": [
[
{
"node": "Extract job props1",
"type": "main",
"index": 0
}
]
]
},
"Extract all jobs2": {
"main": [
[
{
"node": "Extract job props",
"type": "main",
"index": 0
}
]
]
},
"Extract job props": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 2
}
]
]
},
"Extract job props1": {
"main": [
[
{
"node": "Filter",
"type": "main",
"index": 0
}
]
]
},
"Extract job props2": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "9dbc3d7f-1e6d-4667-b309-dd2cb5253555",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "pTX2H25HRzTcxNIR",
"tags": [
{
"createdAt": "2025-05-01T15:44:58.182Z",
"updatedAt": "2025-05-01T15:44:58.182Z",
"id": "nIpnswOQQh6LYQvy",
"name": "Tutorials"
}
]
}
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.
gmailOAuth2
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
job-scraper. Uses httpRequest, gmail. Event-driven trigger; 16 nodes.
Source: https://gist.github.com/omergocmen/322a3d364688ade0b3ddc9ec9d39bb28 — 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.
Splitout Code. Uses manualTrigger, httpRequest, stickyNote, splitOut. Event-driven trigger; 46 nodes.
Automate CSV imports into HubSpot without the mess. Powered by n8n. Supercharged by Pollup AI.
Echo Brand Voice Analysis (Processor) - TASK-074 Dec 10 Fix. Uses formTrigger, httpRequest, executeWorkflowTrigger, moveBinaryData. Event-driven trigger; 40 nodes.
AICARE Email Blast System. Uses googleDrive, httpRequest, googleSheets, gmail. Event-driven trigger; 39 nodes.
Calendar and Meeting Prep Workflow. Uses googleCalendar, gmail, clickUp, httpRequest. Event-driven trigger; 38 nodes.