LinkedIn과 X 직업 검색 자동화 및 결과 저장 Notion에 저장합니다.
고급
이것은자동화 워크플로우로, 23개의 노드를 포함합니다.주로 If, Set, Code, Wait, Limit 등의 노드를 사용하며. LinkedIn과 X 직업 검색을 자동화하고 결과를 Notion에 저장합니다.
사전 요구사항
- •Notion API Key
- •Twitter API 인증 정보
- •대상 API의 인증 정보가 필요할 수 있음
카테고리
-
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "1401ee9e9fdd0e9d0b337b70e6fb76d293cb16d23811c9f2d457eebd07c701f0",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "a6f94de6-04c3-4b3d-8196-3828fede72b9",
"name": "Sticky Note BookSlot Webhook 트리거1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-320,
-400
],
"parameters": {
"color": 5,
"width": 2062,
"height": 96,
"content": "# Goal: Search only Senior Designer roles on LinkedIn (customize included/excluded job titles)"
},
"typeVersion": 1
},
{
"id": "234e54fc-b572-43b3-8904-23f67b297e91",
"name": "Sticky Note BookSlot Webhook 트리거2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1264,
-416
],
"parameters": {
"color": 5,
"width": 782,
"height": 1472,
"content": "# LinkedIn Job Search Automation\n\nCreator: [Summer Chang](https://www.youtube.com/channel/UCAdp-nOSH-jcrwXkLlUMyXQ)\n\n## Setup Instructions\nThis n8n workflow automatically searches for senior designer jobs on LinkedIn every day at 5am and saves them to a Notion database.\nPrerequisites\n\nn8n instance (cloud or self-hosted)\nNotion account with API access\nA Notion database set up to receive job listings\n\n## Setup Steps\n✅ 1. Create Your Notion Database\nOr [duplicate my template](https://summerchangco.notion.site/job-search-automation?v=28e2d5cd4ef48197a875000cb99628e5&source=copy_link)\n\n✅ 2. Connect Notion to n8n\n\nIn the \"Save to Notion\" node, click on the Notion credentials\nFollow the authentication flow to connect your Notion account\nSelect your job search database from the dropdown\n\n✅ 3. Customize Your Search Criteria\nIn the \"Set Search Criteria\" node, modify these parameters to match your job preferences: \n\nsearch_keywords: Job titles to search for (comma-separated)\n\nDefault: senior product designer, product design lead, senior UX designer, AI designer\n\nexcluded_keywords: Terms to filter out (comma-separated)\n\nDefault: contract, freelance\n\nlocation: Where you want to work (comma-separated)\n\nDefault: remote, san francisco\n\nf_TPR: Time filter for job postings\n\nr86400 = Last 24 hours\nr604800 = Last week\nr2592000 = Last month\n\nsortBy: How to sort results\n\nDD = Most recent first\nR = Most relevant first\n\n✅ 4. Adjust the Schedule\nIn the \"Everyday @5am\" node:\n\nClick on the node\nModify the schedule to your preferred time\nYou can set it to run daily, weekly, or at custom intervals\n\n✅ 5. Set Result Limits\nIn the \"Limit1\" node:\n\nDefault: Processes 10 jobs per run\nAdjust the maxItems value to get more or fewer results\n\n✅ 6. Configure Wait Time (Optional)\nThe \"Wait2\" node adds a 10-second delay between requests to avoid rate limiting:\n\nDefault: 10 seconds\nIncrease if you're getting blocked by LinkedIn\nDecrease for faster processing (not recommended)"
},
"typeVersion": 1
},
{
"id": "de3fdaa7-39da-40dd-8bed-0987cbb15164",
"name": "Sticky Note BookSlot Webhook 트리거7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-304,
656
],
"parameters": {
"color": 5,
"width": 2046,
"height": 80,
"content": "# Goal: Search only Senior Designer jobs from X and link directly to each post"
},
"typeVersion": 1
},
{
"id": "9e0c83c7-760c-40ae-9800-49d9a5da7ed6",
"name": "메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
-320,
-256
],
"parameters": {
"color": 7,
"width": 576,
"height": 272,
"content": "## How It Works\n\n1. Trigger: Runs automatically every day at 5am\n2. Search: Queries LinkedIn with your specified criteria\n3. Parse: Extracts job title, company, location, and URL from search results\n4. Filter: Removes any jobs with missing critical information\n5. Wait: Delays between requests to avoid rate limiting\n6. Fetch Details: Retrieves full job descriptions and poster information\nSave: Adds each job to your Notion database"
},
"typeVersion": 1
},
{
"id": "425301aa-5ef6-44a8-acac-a6c06b22709a",
"name": "메모1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-16,
288
],
"parameters": {
"color": 4,
"width": 320,
"content": "#CUSTOMIZE YOUR SEARCH\n\nEdit these values to match YOUR job preferences: search_keywords: Add your desired job titles\\nExample: \n'senior product designer, UX lead, design manager'"
},
"typeVersion": 1
},
{
"id": "4f7313f0-b4df-4a43-8496-51bccfdb85ec",
"name": "Search LinkedIn1",
"type": "n8n-nodes-base.httpRequest",
"position": [
176,
112
],
"parameters": {
"url": "https://www.linkedin.com/jobs/search?keywords=senior%20product%20designer%20OR%20product%20design%20lead%20OR%20senior%20UX%20designer&location=san%20francisco&f_TPR=r86400",
"options": {},
"responseFormat": "string"
},
"typeVersion": 1
},
{
"id": "467eb611-96f4-44b6-a378-71123de75a4b",
"name": "제한1",
"type": "n8n-nodes-base.limit",
"position": [
576,
112
],
"parameters": {
"maxItems": 10
},
"typeVersion": 1
},
{
"id": "574cfe35-c3bd-467b-8e5b-7fa8146ff69d",
"name": "Fetch Job Details1",
"type": "n8n-nodes-base.httpRequest",
"position": [
1168,
112
],
"parameters": {
"url": "={{ $json.job_url }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "2dac2dd8-f005-47ae-8885-1974acc8b63c",
"name": "Extract Poster Info2",
"type": "n8n-nodes-base.code",
"position": [
1360,
112
],
"parameters": {
"jsCode": "const items = $input.all();\nconst results = [];\n\nfor (const item of items) {\n const html = item.json.data;\n const jobData = item.json;\n \n let description = '';\n const descMatch = html.match(/class=\"show-more-less-html__markup[^>]*>([\\s\\S]*?)<\\/div>/);\n if (descMatch) {\n description = descMatch[1].replace(/<[^>]+>/g, ' ').replace(/\\s+/g, ' ').trim();\n // Truncate to 2000 characters max for Notion\n if (description.length > 2000) {\n description = description.substring(0, 1997) + '...';\n }\n }\n \n let posterName = '';\n const posterMatch = html.match(/class=\"hiring-team__member-name[^>]*>\\s*([^<]+)</);\n if (posterMatch) {\n posterName = posterMatch[1].trim();\n }\n \n let posterTitle = '';\n const titleMatch = html.match(/class=\"hiring-team__member-title[^>]*>\\s*([^<]+)</);\n if (titleMatch) {\n posterTitle = titleMatch[1].trim();\n }\n \n let posterProfile = '';\n const profileMatch = html.match(/href=\"(\\/in\\/[^\"]+)\"[^>]*class=\"hiring-team/);\n if (profileMatch) {\n posterProfile = 'https://www.linkedin.com' + profileMatch[1];\n }\n \n results.push({\n json: {\n ...jobData,\n description: description,\n poster_name: posterName || 'Not found',\n poster_title: posterTitle || 'Not found',\n poster_profile: posterProfile || 'Not found'\n }\n });\n}\n\nreturn results;"
},
"typeVersion": 2
},
{
"id": "a1531ba4-5e38-4b0a-93e2-a188f6e6e5a3",
"name": "Save to Notion3",
"type": "n8n-nodes-base.notion",
"position": [
1568,
112
],
"parameters": {
"simple": false,
"options": {},
"resource": "databasePage",
"databaseId": {
"__rl": true,
"mode": "list",
"value": ""
},
"propertiesUi": {
"propertyValues": [
{
"key": "Job Title|title",
"title": "={{ $('Filter1').item.json.job_title }}"
},
{
"key": "Company|rich_text",
"textContent": "={{ $('Filter1').item.json.company }}"
},
{
"key": "Location|rich_text",
"textContent": "={{ $('Filter1').item.json.location }}"
},
{
"key": "Job URL|url",
"urlValue": "={{ $('Filter1').item.json.job_url }}"
},
{
"key": "Poster Name|rich_text",
"textContent": "={{ $json.poster_name }}"
},
{
"key": "Poster Title|rich_text",
"textContent": "={{ $json.poster_title }}"
},
{
"key": "Poster Profile|url",
"urlValue": "={{ $json.poster_profile }}"
},
{
"key": "Job Description|rich_text",
"textContent": "={{ $json.description }}"
}
]
}
},
"typeVersion": 1
},
{
"id": "28683ae2-4633-4350-a4b0-b53929c92093",
"name": "Parse Jobs1",
"type": "n8n-nodes-base.code",
"position": [
368,
112
],
"parameters": {
"jsCode": "const html = $input.all()[0].json.data;\nconst jobCards = [];\nconst jobLinkRegex = /href=\"(https:\\/\\/www\\.linkedin\\.com\\/jobs\\/view\\/[^\"]+)\"/g;\nconst jobLinks = [];\nlet match;\n\nwhile ((match = jobLinkRegex.exec(html)) !== null) {\n jobLinks.push(match[1]);\n}\n\nfor (let i = 0; i < jobLinks.length; i++) {\n const jobUrl = jobLinks[i];\n const urlIndex = html.indexOf(jobUrl);\n if (urlIndex === -1) continue;\n \n const startIndex = Math.max(0, urlIndex - 3000);\n const endIndex = Math.min(html.length, urlIndex + 1000);\n const cardSection = html.substring(startIndex, endIndex);\n \n // Extract title\n let title = '';\n const titleMatch = cardSection.match(/class=\"base-search-card__title[^>]*>\\s*([^<]+)</i);\n if (titleMatch) {\n title = titleMatch[1].trim().replace(/\\s+/g, ' ');\n }\n \n // Extract company - try multiple patterns\n let company = '';\n \n // Pattern 1: hidden-nested-link (most common)\n const companyMatch1 = cardSection.match(/class=\"hidden-nested-link[^>]*>\\s*([^<]+)</i);\n if (companyMatch1) {\n company = companyMatch1[1].trim();\n }\n \n // Pattern 2: base-search-card__subtitle\n if (!company) {\n const companyMatch2 = cardSection.match(/class=\"base-search-card__subtitle[^>]*>\\s*([^<]+)</i);\n if (companyMatch2) {\n company = companyMatch2[1].trim();\n }\n }\n \n // Pattern 3: Look for company name in any link before the job URL\n if (!company) {\n const companyMatch3 = cardSection.match(/href=\"\\/company\\/[^\"]*\"[^>]*>\\s*([^<]+)</i);\n if (companyMatch3) {\n company = companyMatch3[1].trim();\n }\n }\n \n // Extract location\n let location = '';\n const locationMatch = cardSection.match(/class=\"job-search-card__location[^>]*>\\s*([^<]+)</i);\n if (locationMatch) {\n location = locationMatch[1].trim();\n }\n \n // Extract posted date\n let posted = '';\n const dateMatch = cardSection.match(/<time[^>]*>\\s*([^<]+)</i);\n if (dateMatch) {\n posted = dateMatch[1].trim();\n }\n \n jobCards.push({\n json: {\n job_title: title || 'Title not found',\n company: company || 'Company not found',\n location: location || 'Location not specified',\n job_url: jobUrl,\n posted_date: posted || 'Date not specified',\n source: 'linkedin'\n }\n });\n}\n\nreturn jobCards;"
},
"typeVersion": 2
},
{
"id": "05b081ad-b4f0-4be7-a5f5-4f7386e723f9",
"name": "필터1",
"type": "n8n-nodes-base.filter",
"position": [
784,
112
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "cc1a9535-66db-47f3-8503-2591ca56b04b",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.company }}",
"rightValue": "Company not found"
},
{
"id": "dc84a071-58f1-4ce1-a0b9-bb0c05fe5679",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.job_title }}",
"rightValue": "Title not found"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "014b0a99-e070-4fef-9f05-17f9504ef0e1",
"name": "대기",
"type": "n8n-nodes-base.wait",
"position": [
992,
112
],
"webhookId": "2662233a-6d97-4c56-b400-29a67ee2a07e",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "cc2e9e92-c56c-45af-a3a8-176dfc856707",
"name": "Everyday @5am1",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-240,
112
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "fd5bea7f-f757-4ad2-8b8c-e97d7c4fd06e",
"name": "설정 Search Criteria1",
"type": "n8n-nodes-base.set",
"position": [
-16,
112
],
"parameters": {
"values": {
"string": [
{
"name": "search_keywords",
"value": "senior product designer, product design lead, senior UX designer, AI designer"
},
{
"name": "excluded_keywords",
"value": "contract, freelance"
},
{
"name": "location",
"value": "remote, san francisco"
},
{
"name": "f_TPR",
"value": "r86400"
},
{
"name": "sortBy",
"value": "DD"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"id": "39b938eb-194a-4561-a9e6-6ee04bb2919c",
"name": "메모2",
"type": "n8n-nodes-base.stickyNote",
"position": [
320,
-256
],
"parameters": {
"color": 7,
"width": 576,
"height": 272,
"content": "## Notes\n\nThis workflow scrapes LinkedIn's public job search pages\nLinkedIn may change their HTML structure, which could break the parsing logic\nConsider LinkedIn's terms of service and rate limits when running this automation\nThe workflow filters out jobs missing title or company information automatically"
},
"typeVersion": 1
},
{
"id": "658fdab8-9caf-4306-a732-5bf326c7c545",
"name": "Everyday @5:15am",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-256,
880
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "da3e687d-45ac-4534-a763-952ee2b2b991",
"name": "설정 Search",
"type": "n8n-nodes-base.set",
"position": [
48,
880
],
"parameters": {
"values": {
"string": [
{
"name": "search_keywords",
"value": "senior product designer, product design lead, senior UX designer"
},
{
"name": "excluded_keywords",
"value": "junior, intern, internship"
},
{
"name": "location",
"value": "san francisco, remote"
},
{
"name": "posted_within",
"value": "24h"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"id": "642c6a0a-0306-4e63-88ab-ff7b531c391f",
"name": "Search Twitter Job Posts",
"type": "n8n-nodes-base.twitter",
"position": [
336,
880
],
"parameters": {
"operation": "search",
"searchText": "(\"senior product designer\" OR \"product design lead\" OR \"senior UX designer\") (hiring OR \"we're hiring\" OR \"join our team\" OR opening OR \"we are hiring\") (\"san francisco\" OR remote OR \"work from anywhere\") -contract -freelance -junior -intern -internship -RT",
"additionalFields": {}
},
"credentials": {
"twitterOAuth2Api": {
"id": "Dl9Lhj7dQdaXbS4F",
"name": "X account"
}
},
"typeVersion": 2
},
{
"id": "fc0cef14-889f-48ef-89a2-991d4b97e2fe",
"name": "Parse and 필터 Jobs",
"type": "n8n-nodes-base.code",
"position": [
640,
880
],
"parameters": {
"jsCode": "const items = $input.all();\nconst results = [];\n\nfor (const item of items) {\n const tweet = item.json;\n const text = tweet.text || '';\n const author = tweet.includes?.users?.[0] || {};\n \n // Skip if tweet contains excluded keywords\n const excludedWords = ['contract', 'freelance', 'junior', 'intern', 'c2c', 'corp-to-corp'];\n const textLower = text.toLowerCase();\n if (excludedWords.some(word => textLower.includes(word))) {\n continue;\n }\n \n // Extract job title\n let jobTitle = '';\n const titlePatterns = [\n /(senior\\s+product\\s+designer)/i,\n /(product\\s+design\\s+lead)/i,\n /(lead\\s+product\\s+designer)/i,\n /(senior\\s+ux\\s+designer)/i,\n /(principal\\s+(?:product\\s+)?designer)/i,\n /(staff\\s+(?:product\\s+)?designer)/i\n ];\n \n for (let pattern of titlePatterns) {\n const match = text.match(pattern);\n if (match) {\n jobTitle = match[1].trim();\n break;\n }\n }\n \n // Extract company\n let company = '';\n const companyPatterns = [\n /@([A-Z][a-zA-Z0-9_]+)\\s+(?:is|are)\\s+(?:hiring|looking)/,\n /(?:at|join|@)\\s+([A-Z][a-zA-Z0-9]+?)(?:\\s+(?:is|are|we|-))/,\n /([A-Z][a-zA-Z0-9\\s]{2,30})\\s+(?:is|are)\\s+(?:hiring|looking|seeking)/\n ];\n \n for (let pattern of companyPatterns) {\n const match = text.match(pattern);\n if (match) {\n company = match[1].trim().replace(/^@/, '');\n break;\n }\n }\n \n // If no company found, use author name or check bio\n if (!company) {\n if (author.description) {\n const bioMatch = author.description.match(/(?:@|at)\\s+([A-Z][a-zA-Z0-9]+)/);\n if (bioMatch) company = bioMatch[1];\n }\n if (!company) company = author.name || 'See tweet';\n }\n \n // Extract location with priority for SF and Remote\n let location = '';\n const sfPatterns = [\n /san francisco|SF bay area|bay area/i,\n /remote|fully remote|work from anywhere|work from home|WFH/i,\n /hybrid.*(?:san francisco|SF)/i\n ];\n \n for (let pattern of sfPatterns) {\n const match = text.match(pattern);\n if (match) {\n location = match[0].trim();\n break;\n }\n }\n \n // Generic location fallback\n if (!location) {\n const locMatch = text.match(/(?:location|based in|located in)[:\\s]+([A-Z][a-z]+(?:[,\\s]+[A-Z]{2})?)/i);\n if (locMatch) location = locMatch[1];\n }\n \n // Only include if it's SF or Remote\n if (location) {\n const locationLower = location.toLowerCase();\n if (!locationLower.includes('san francisco') && \n !locationLower.includes('bay area') && \n !locationLower.includes('remote') &&\n !locationLower.includes('sf')) {\n continue; // Skip non-SF/remote jobs\n }\n }\n \n // Extract URLs\n let jobUrl = '';\n const urls = text.match(/https:\\/\\/[^\\s]+/g);\n if (urls && urls.length > 0) {\n // Prefer job board URLs\n jobUrl = urls.find(url => \n url.includes('greenhouse') || \n url.includes('lever') || \n url.includes('workday') ||\n url.includes('jobs') ||\n url.includes('careers')\n ) || urls[0];\n }\n \n // Build tweet URL\n const tweetUrl = `https://twitter.com/${author.username}/status/${tweet.id}`;\n \n // Extract poster info\n const posterName = author.name || 'Unknown';\n const posterUsername = author.username || '';\n const posterProfile = `https://twitter.com/${author.username}`;\n const posterBio = author.description || '';\n \n // Try to extract poster's title from bio\n let posterTitle = '';\n const titleMatch = posterBio.match(/^([^@|•\\n]{10,80})/);\n if (titleMatch) {\n posterTitle = titleMatch[1].trim();\n }\n \n results.push({\n json: {\n job_title: jobTitle || 'Senior Product Designer',\n company: company,\n location: location || 'Remote/San Francisco',\n job_url: jobUrl || tweetUrl,\n posted_date: tweet.created_at || new Date().toISOString(),\n source: 'twitter',\n poster_name: posterName,\n poster_username: posterUsername,\n poster_profile: posterProfile,\n poster_title: posterTitle,\n description: text.substring(0, 2000),\n tweet_url: tweetUrl,\n likes: tweet.public_metrics?.like_count || 0,\n retweets: tweet.public_metrics?.retweet_count || 0,\n replies: tweet.public_metrics?.reply_count || 0\n }\n });\n}\n\nreturn results;"
},
"typeVersion": 2
},
{
"id": "734e5a37-6ae0-4eea-ba2f-0c1b07fe4f22",
"name": "필터 Valid Jobs",
"type": "n8n-nodes-base.if",
"position": [
880,
880
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.job_title }}",
"operation": "isNotEmpty"
},
{
"value1": "={{ $json.company }}",
"operation": "isNotEmpty"
}
]
}
},
"typeVersion": 1
},
{
"id": "ef931ed3-80a9-46b3-93f9-14d670d224c4",
"name": "대기.",
"type": "n8n-nodes-base.wait",
"position": [
1152,
880
],
"webhookId": "b628a9fa-833f-4957-8d65-d086b6dd0e94",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "b628b752-301b-4b0c-9690-ac871f63f7a2",
"name": "Save to Notion Database",
"type": "n8n-nodes-base.notion",
"position": [
1440,
880
],
"parameters": {
"simple": false,
"options": {},
"resource": "databasePage",
"databaseId": {
"__rl": true,
"mode": "list",
"value": ""
},
"propertiesUi": {
"propertyValues": [
{
"key": "Job Title|title",
"title": "={{ $json.job_title }}"
},
{
"key": "Company|rich_text",
"textContent": "={{ $json.company }}"
},
{
"key": "Location|rich_text",
"textContent": "={{ $json.location }}"
},
{
"key": "Job URL|url",
"urlValue": "={{ $json.job_url }}"
},
{
"key": "Poster Name|rich_text",
"textContent": "={{ $json.poster_name }}"
},
{
"key": "Poster Title|rich_text",
"textContent": "={{ $json.poster_title }}"
},
{
"key": "Poster Profile|url",
"urlValue": "={{ $json.poster_profile }}"
},
{
"key": "Job Description|rich_text",
"textContent": "={{ $json.description }}"
},
{
"key": "Tweet URL|url",
"urlValue": "={{ $json.tweet_url }}"
},
{
"key": "Source|select",
"selectValue": "={{ $json.source }}"
},
{
"key": "Posted Date|date"
}
]
}
},
"credentials": {
"notionApi": {
"id": "7Lv3qvnDmu3mBnqh",
"name": "Notion account"
}
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"Wait": {
"main": [
[
{
"node": "574cfe35-c3bd-467b-8e5b-7fa8146ff69d",
"type": "main",
"index": 0
}
]
]
},
"Wait.": {
"main": [
[
{
"node": "b628b752-301b-4b0c-9690-ac871f63f7a2",
"type": "main",
"index": 0
}
]
]
},
"Limit1": {
"main": [
[
{
"node": "Filter1",
"type": "main",
"index": 0
}
]
]
},
"Filter1": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Set Search": {
"main": [
[
{
"node": "642c6a0a-0306-4e63-88ab-ff7b531c391f",
"type": "main",
"index": 0
}
]
]
},
"28683ae2-4633-4350-a4b0-b53929c92093": {
"main": [
[
{
"node": "Limit1",
"type": "main",
"index": 0
}
]
]
},
"cc2e9e92-c56c-45af-a3a8-176dfc856707": {
"main": [
[
{
"node": "Set Search Criteria1",
"type": "main",
"index": 0
}
]
]
},
"658fdab8-9caf-4306-a732-5bf326c7c545": {
"main": [
[
{
"node": "Set Search",
"type": "main",
"index": 0
}
]
]
},
"4f7313f0-b4df-4a43-8496-51bccfdb85ec": {
"main": [
[
{
"node": "28683ae2-4633-4350-a4b0-b53929c92093",
"type": "main",
"index": 0
}
]
]
},
"Filter Valid Jobs": {
"main": [
[
{
"node": "Wait.",
"type": "main",
"index": 0
}
]
]
},
"574cfe35-c3bd-467b-8e5b-7fa8146ff69d": {
"main": [
[
{
"node": "2dac2dd8-f005-47ae-8885-1974acc8b63c",
"type": "main",
"index": 0
}
]
]
},
"2dac2dd8-f005-47ae-8885-1974acc8b63c": {
"main": [
[
{
"node": "a1531ba4-5e38-4b0a-93e2-a188f6e6e5a3",
"type": "main",
"index": 0
}
]
]
},
"Set Search Criteria1": {
"main": [
[
{
"node": "4f7313f0-b4df-4a43-8496-51bccfdb85ec",
"type": "main",
"index": 0
}
]
]
},
"Parse and Filter Jobs": {
"main": [
[
{
"node": "Filter Valid Jobs",
"type": "main",
"index": 0
}
]
]
},
"642c6a0a-0306-4e63-88ab-ff7b531c391f": {
"main": [
[
{
"node": "Parse and Filter Jobs",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
콘텐츠생성기 v3
AI驱动블로그자동화:사용GPT-4생성并게시SEO기사至WordPress및Twitter
If
Set
Code
+
If
Set
Code
144 노드Jay Emp0
콘텐츠 제작
리드 생성 및 이메일 워크플로
Google 지도, SendGrid 및 AI를 사용한 B2B 잠재 고객 개발 및 이메일 마케팅 자동화
If
Set
Code
+
If
Set
Code
141 노드Ezema Kingsley Chibuzo
리드 생성
WordPress 블로그 자동화 프로페셔널 에디션(심층 연구) v2.1 마켓
GPT-4o, Perplexity AI 및 다국어 지원을 사용한 SEO 최적화 블로그 생성 자동화
If
Set
Xml
+
If
Set
Xml
125 노드Daniel Ng
콘텐츠 제작
Airtable, OpenAI 및 Unipile을 사용한 자동화된 LinkedIn 잠재 고객 생성 및 개인 메시지 발송
Airtable, OpenAI 및 Unipile을 사용한 자동화된 LinkedIn 리드 생성 및 개인 메시지 발송
If
Set
Code
+
If
Set
Code
143 노드Ruben AI
리드 육성
콘텐츠 생성기 v4
콘텐츠 팜 v4 - ChatGPT 5와 Gemini를 사용하여 WordPress 블로그 자동화
If
Set
Code
+
If
Set
Code
168 노드Jay Emp0
워크플로우 정보
난이도
고급
노드 수23
카테고리-
노드 유형11
저자
Summer
@summerchangProduct Designer & AI Consultant | I help business owners improve their websites, apps, and digital marketing systems to drive growth and save time—using design expertise and AI automation.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유