직무 수집기
고급
이것은자동화 워크플로우로, 20개의 노드를 포함합니다.주로 If, Code, Merge, FormTrigger, HttpRequest 등의 노드를 사용하며. AI 직무 관련성 평가기: GPT-4o-mini를 사용하여 LinkedIn 직무를 검색하고 Google Sheets에 저장
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
- •OpenAI API Key
카테고리
-
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "xqRJgn9kLzy60dnX",
"meta": {
"instanceId": "86964b8d0664d9ba346a233f6936cccbf83e087b0b9c3cb22f6eaa1a271cad0d",
"templateCredsSetupCompleted": true
},
"name": "jobs_scraper",
"tags": [],
"nodes": [
{
"id": "ecd0d08a-44ca-4390-9eff-01f0719abc61",
"name": "기존 직무",
"type": "n8n-nodes-base.googleSheets",
"position": [
1824,
160
],
"parameters": {
"options": {
"dataLocationOnSheet": {
"values": {
"range": "C:C",
"rangeDefinition": "specifyRangeA1"
}
}
},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Jobs Tracker"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $('On form submission').first().json[\"Link to your Google Sheet (jobs will be added here)\"] }}"
}
},
"executeOnce": true,
"notesInFlow": true,
"typeVersion": 4.7,
"alwaysOutputData": true
},
{
"id": "3ccf8c71-7ad0-47a3-b006-bc1fa5e60023",
"name": "파라미터 세트 컴파일",
"type": "n8n-nodes-base.code",
"position": [
96,
0
],
"parameters": {
"jsCode": "// Get values from input item\nlet contractType = $input.first().json[\"Contract Type\"];\nlet experienceLevel = $input.first().json[\"Experience Level\"]; \nlet workType = $input.first().json[\"Working Mode\"];\nlet publishedAt = $input.first().json[\"Date Posted\"];\n\n// Mapping functions\nfunction mapContractType(value) {\n if (!value) return null;\n switch (value) {\n case \"Full-time\": return \"F\";\n case \"Part-time\": return \"P\";\n case \"Contract\": return \"C\";\n case \"Temporary\": return \"T\";\n case \"Internship\": return \"I\";\n case \"Volunteer\": return \"V\";\n default: return null;\n }\n}\n\nfunction mapExperienceLevel(value) {\n if (!value) return null;\n switch (value) {\n case \"Internship\": return \"1\";\n case \"Entry-level\": return \"2\";\n case \"Associate\": return \"3\";\n case \"Mid-senior level\": return \"4\";\n case \"Director\": return \"5\";\n default: return null;\n }\n}\n\nfunction mapWorkType(value) {\n if (!value) return null;\n switch (value) {\n case \"On-site\": return \"1\";\n case \"Remote\": return \"2\";\n case \"Hybrid\": return \"3\";\n default: return null;\n }\n}\n\nfunction mapPublishedAt(value) {\n if (!value) return null;\n switch (value) {\n case \"Past 24 hours\": return \"r86400\";\n case \"Past Week\": return \"r604800\";\n case \"Past Month\": return \"r2592000\";\n default: return null;\n }\n}\n\n// Map all to codes\ncontractType = mapContractType(contractType);\nexperienceLevel = mapExperienceLevel(experienceLevel);\nworkType = mapWorkType(workType);\npublishedAt = mapPublishedAt(publishedAt);\n\nconst rowMap = {\n r86400: 100,\n r604800: 300,\n r2592000: 600,\n};\n\n// Build output, excluding nulls\nconst output = {\n title: $input.first().json.title,\n location: $input.first().json.location,\n rows: rowMap[publishedAt] || 100,\n};\n\nif (contractType !== null) output.contractType = contractType;\nif (experienceLevel !== null) output.experienceLevel = experienceLevel;\nif (workType !== null) output.workType = workType;\nif (publishedAt !== null) output.publishedAt = publishedAt;\n\nreturn [{ json: output }];\n"
},
"typeVersion": 2,
"alwaysOutputData": false
},
{
"id": "aceab631-3ca5-4cc3-923f-6406ad426b81",
"name": "기존 직무 제거",
"type": "n8n-nodes-base.merge",
"notes": "from input 1",
"position": [
1952,
0
],
"parameters": {
"mode": "combine",
"options": {
"fuzzyCompare": true
},
"joinMode": "keepNonMatches",
"outputDataFrom": "input1",
"fieldsToMatchString": "id"
},
"notesInFlow": true,
"typeVersion": 3.2,
"alwaysOutputData": true
},
{
"id": "eb80bc2e-04a4-42e3-afba-6472fdcbac5b",
"name": "직무 필터링",
"type": "n8n-nodes-base.code",
"position": [
1360,
-16
],
"parameters": {
"jsCode": "// Get all GPT output items\nconst gptOutput = $input.all().map(item => item.json);\nconst targetScore = $('On form submission').first().json[\"Target Relevancy Score(out of 100)\"];\n\n// Extract jobs, filter by relevancy_score, and format\nconst filtered = gptOutput\n .map(entry => entry.message?.content)\n .filter(job => job && job.relevancy_score >= targetScore)\n .map(job => ({\n json: {\n id: job.id,\n relevancy_score: job.relevancy_score\n }\n }));\n\nreturn filtered;\n"
},
"notesInFlow": true,
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "e24fe095-02be-48d0-a94d-cb36ea80b2ae",
"name": "직무 필터링 및 중복 제거",
"type": "n8n-nodes-base.code",
"position": [
656,
0
],
"parameters": {
"jsCode": "const blacklisted_companies = [\"Jobot\", \"TieTalent\", \"Pryor Associates Executive Search\"];\n\nconst jobs = $input.all().map(item => item.json);\n\n// Deduplicate by id\nconst uniqueJobs = Array.from(\n new Map(jobs.map(job => [job.id, job])).values()\n);\n\n// Filter out blacklisted companies and jobs without companyUrl\nconst filteredJobs = uniqueJobs.filter(\n job => job.companyUrl && !blacklisted_companies.includes(job.companyName)\n);\n\n// Deduplicate by title + companyName (keep first only)\nconst seen = new Set();\nconst finalJobs = filteredJobs.filter(job => {\n const key = job.title + \"|\" + job.companyName;\n if (seen.has(key)) return false; // skip duplicates\n seen.add(key);\n return true; // keep first\n});\n\nreturn finalJobs.map(job => ({ json: job }));"
},
"notesInFlow": true,
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "0f335618-d674-4012-8511-2de6cc356a6e",
"name": "직무 추가",
"type": "n8n-nodes-base.googleSheets",
"position": [
2320,
-16
],
"parameters": {
"columns": {
"value": {
"id": "={{ $json.id }}",
"Score": "={{ $json.relevancy_score }}",
"Salary": "={{ $json.salary }}",
"HR Name": "={{ $json.posterFullName }}",
"Job URL": "={{ $json.applyUrl }}",
"Job URL2": "={{ $json.jobUrl }}",
"Job Title": "={{ $json.title }}",
"Date Posted": "={{ $json.publishedAt }}",
"HR LinkedIn": "={{ $json.posterProfileUrl }}",
"Company Name": "={{ $json.companyName }}",
"Job Location": "={{ $json.location }}",
"Company Profile": "={{ $json.companyUrl }}"
},
"schema": [
{
"id": "Job URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Job URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Job URL2",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Job URL2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "Job Title",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Job Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Company Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Salary",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Salary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Profile",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Company Profile",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Working Model",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Working Model",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Job Location",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Job Location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date Posted",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date Posted",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Application Status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Application Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date Applied",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date Applied",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Score",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Feedback",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Feedback",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Cover Letter",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Cover Letter",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Resume",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Resume",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "HR Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "HR Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "HR LinkedIn",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "HR LinkedIn",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Notes",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Notes",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Jobs Tracker"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $('On form submission').first().json[\"Link to your Google Sheet (jobs will be added here)\"] }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "udbu9Gbjt5CAnxWD",
"name": "Google Sheets account"
}
},
"notesInFlow": true,
"typeVersion": 4.7
},
{
"id": "6afd2b41-f733-45b3-85c6-5faba765e35e",
"name": "LinkedIn 직무 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
384,
0
],
"parameters": {
"url": "https://api.apify.com/v2/acts/BHzefUZlZRKWxkTck/run-sync-get-dataset-items",
"method": "POST",
"options": {},
"jsonBody": "={{ $json }}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer <your_apify_api>"
}
]
}
},
"notesInFlow": true,
"typeVersion": 4.2,
"alwaysOutputData": true
},
{
"id": "0208b796-b40e-47f0-a67c-5f437f02f301",
"name": "양식 제출 시",
"type": "n8n-nodes-base.formTrigger",
"position": [
-192,
0
],
"webhookId": "8dbd31ae-e835-42cd-979e-88f8dd6ffded",
"parameters": {
"options": {
"path": "jobs-scraper",
"buttonLabel": "Find Jobs",
"appendAttribution": false,
"respondWithOptions": {
"values": {
"formSubmittedText": "Your request processed successfully."
}
}
},
"formTitle": "Jobs Scraper",
"formFields": {
"values": [
{
"fieldLabel": "title",
"placeholder": "e.g Data Analyst, Data Enginner, Software Engineer",
"requiredField": true
},
{
"fieldLabel": "location",
"placeholder": "e.g Austin, United States",
"requiredField": true
},
{
"fieldType": "dropdown",
"fieldLabel": "Contract Type",
"fieldOptions": {
"values": [
{
"option": "All"
},
{
"option": "Full-time"
},
{
"option": "Part-time"
},
{
"option": "Contract"
},
{
"option": "Temporary"
},
{
"option": "Internship"
},
{
"option": "Volunteer"
}
]
}
},
{
"fieldType": "dropdown",
"fieldLabel": "Experience Level",
"fieldOptions": {
"values": [
{
"option": "All"
},
{
"option": "Internship"
},
{
"option": "Entry-level"
},
{
"option": "Associate"
},
{
"option": "Mid-senior level"
},
{
"option": "Director"
}
]
}
},
{
"fieldType": "dropdown",
"fieldLabel": "Working Mode",
"fieldOptions": {
"values": [
{
"option": "all"
},
{
"option": "On-site"
},
{
"option": "Remote"
},
{
"option": "Hybrid"
}
]
}
},
{
"fieldType": "dropdown",
"fieldLabel": "Date Posted",
"fieldOptions": {
"values": [
{
"option": "Past 24 hours"
},
{
"option": "Past Week"
},
{
"option": "Past Month"
}
]
}
},
{
"fieldType": "number",
"fieldLabel": "Target Relevancy Score(out of 100)",
"placeholder": "how relevant the jobs should be to your resume",
"requiredField": true
},
{
"fieldLabel": "Link to your Google Sheet (jobs will be added here)",
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Your Resume",
"placeholder": "Paste Your Resume",
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Your Job Instructions/Preferences",
"placeholder": "Enter Your Job Preferences or any criteria to rank relevant jobs for you",
"requiredField": true
}
]
},
"responseMode": "lastNode",
"formDescription": "Provide your preferences to extract the relevant jobs. The Google Sheet should follow this template: https://docs.google.com/spreadsheets/d/1oOigTwntedPCYiXwW-98oHDj4slYepsFFV-LLP-77uc/edit?gid=0#gid=0"
},
"notesInFlow": true,
"typeVersion": 2.3
},
{
"id": "b3e1bb3a-b77e-472e-b86a-b585df277088",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-272,
-208
],
"parameters": {
"color": 5,
"width": 272,
"height": 352,
"content": "* Collects user input such as resume, preferences, and Google Sheet link via a public form.\n\n* The form automatically triggers the workflow when submitted."
},
"typeVersion": 1
},
{
"id": "395c6d0a-eb70-4e36-b0f9-4db3a823c9e7",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
16,
-208
],
"parameters": {
"color": 6,
"width": 272,
"height": 352,
"content": "Converts the form selections (contract type, experience, etc.) into API-ready parameters for Apify’s LinkedIn Jobs Scraper."
},
"typeVersion": 1
},
{
"id": "08eebd8a-4b77-44a2-9fa7-6cbbd8c28f77",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
304,
-208
],
"parameters": {
"color": 5,
"width": 272,
"height": 352,
"content": "* Calls the Apify API to fetch job listings based on your parameters.\n\n* Requires your Apify API key and the LinkedIn Jobs actor rented from Apify."
},
"typeVersion": 1
},
{
"id": "ab00b3bd-25b6-45a2-920a-cbc09a8edd90",
"name": "직무 조건",
"type": "n8n-nodes-base.if",
"position": [
880,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "c6fa73ec-5859-48c4-9085-68e04ba07b21",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": "running"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "c666e264-2ea8-4c73-b0a5-b38bae070da1",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
-208
],
"parameters": {
"color": 6,
"width": 448,
"height": 352,
"content": "Removes duplicates, filters out blacklisted companies, and excludes listings without a valid company profile."
},
"typeVersion": 1
},
{
"id": "201b0934-417f-4d00-9fd3-7986df544192",
"name": "직무 조건1",
"type": "n8n-nodes-base.if",
"position": [
1504,
-16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "4c35b5be-ac2e-4843-9cbb-420afdb8f0f3",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "c512a004-186e-45ea-a8ef-fa616e8f676f",
"name": "스티키 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1056,
-208
],
"parameters": {
"color": 5,
"width": 592,
"height": 352,
"content": "## Score and Filter Jobs by Relevance\n* Sends each job listing, along with your resume and preferences, to the GPT-4o-mini model.\n* The model returns a relevance score (0–100) for each job.\n* Keeps only the jobs that meet or exceed your target relevancy score (defined in the form)."
},
"typeVersion": 1
},
{
"id": "58b7114e-a45a-41f2-aae2-31c4edbe1e94",
"name": "입력 보강 1",
"type": "n8n-nodes-base.merge",
"position": [
1760,
-16
],
"parameters": {
"mode": "combine",
"options": {
"fuzzyCompare": true,
"clashHandling": {
"values": {
"resolveClash": "preferLast",
"overrideEmpty": true
}
},
"multipleMatches": "first"
},
"joinMode": "enrichInput1",
"fieldsToMatchString": "id"
},
"notesInFlow": true,
"typeVersion": 3.2
},
{
"id": "3be05870-9c10-4a9b-b8dc-0052833d3448",
"name": "직무 조건2",
"type": "n8n-nodes-base.if",
"position": [
2112,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "162163ba-1211-4255-aeed-038a40d0522b",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": "running"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "05163604-3788-4147-a8d4-9be81426ae5a",
"name": "스티키 노트5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1664,
-208
],
"parameters": {
"color": 6,
"width": 784,
"height": 528,
"content": "## Add New jobs to the Google Sheet\n* Fetches all job IDs already present in your Google Sheet to prevent duplicates.\n* Compares new jobs with existing ones in your Google Sheet.\n* Only keeps jobs that are not yet in your sheet."
},
"typeVersion": 1
},
{
"id": "ed9af293-d933-4a67-8ba7-fd9a816d0a22",
"name": "직무 점수 매기기",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1088,
-16
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {
"temperature": 0.4
},
"messages": {
"values": [
{
"role": "system",
"content": "=You are an expert recruiter and job relevance evaluator. Please find a relevancy score for a given job against the Candidate Resume and Preferences. \n\nCandidate Resume:\n{{ $('On form submission').first().json['Your Resume'] }}\n\nCandidate Preferences:\n{{ $('On form submission').first().json[\"Your Job Instructions/Preferences\"] }}\n\nImportant Notes:\n- If salary is not given under job details, check it in the job_description or job_position.\n- When giving the relevancy score, be strict and give a good score(>80) to only those jobs that are highly relevant for the candidate.\n\n⚠️ Output format requirement:\nAlways return only a JSON array with exactly one object, in this structure:\n[\n {\n \"id\": \"...\",\n \"relevancy_score\": <integer 0-100>\n }\n]\nNo other text, comments, or formatting.\n"
},
{
"content": "=Evaluate this job against the candidate resume + preferences.\n\nJob details:\n- id: {{ $json.id }}\n- job_position: {{ $json.title }}\n- salary: {{ $json.salary }}\n- job_description: {{ $json.description }}\n"
}
]
},
"jsonOutput": true
},
"executeOnce": false,
"retryOnFail": true,
"typeVersion": 1.8,
"waitBetweenTries": 5000
},
{
"id": "f4540ed0-bc13-4472-b09f-87f09e892de0",
"name": "스티키 노트6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1072,
-208
],
"parameters": {
"width": 736,
"height": 688,
"content": "## 🧠 AI-Powered Job Scraper & Relevance Evaluator\n\nThis workflow automates the process of finding and ranking the most relevant job opportunities based on your resume, career preferences, and custom filters.\n\nIt uses Apify’s LinkedIn Jobs API to fetch fresh job listings, then applies OpenAI GPT models to assign a relevance score (0–100) for each job.\nOnly jobs that meet or exceed your target score are appended to your Google Sheet, while duplicates are automatically skipped.\n\n### ⚙️ How to Set Up\n\n1. **Connect Accounts**\n * Add credentials for:\n * Google Sheets (OAuth2)\n * OpenAI API\n * Apify API (replace <your_apify_api> with your key)\n\n2. **Prepare Your Google Sheet**\n * Copy the template: 📄 [Google Sheet Template](https://docs.google.com/spreadsheets/d/1Pabh4GDMc0CBK5S6gn8FxpRgLbyXZVN656JNkBH6f7Y/edit?gid=0#gid=0)\n * Enable Edit Access for anyone with the link.\n\n3. **Run the Workflow**\n * Open your public form (auto-generated webhook link).\n * Fill in your resume, preferences, and target relevancy score.\n * Submit — within minutes, new, high-relevance jobs will appear in your Google Sheet."
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "bddb5d81-b4a0-49ce-b31e-49f5b7467321",
"connections": {
"ab00b3bd-25b6-45a2-920a-cbc09a8edd90": {
"main": [
[
{
"node": "ed9af293-d933-4a67-8ba7-fd9a816d0a22",
"type": "main",
"index": 0
}
]
]
},
"0f335618-d674-4012-8511-2de6cc356a6e": {
"main": [
[]
]
},
"201b0934-417f-4d00-9fd3-7986df544192": {
"main": [
[
{
"node": "ecd0d08a-44ca-4390-9eff-01f0719abc61",
"type": "main",
"index": 0
},
{
"node": "58b7114e-a45a-41f2-aae2-31c4edbe1e94",
"type": "main",
"index": 0
}
],
[]
]
},
"3be05870-9c10-4a9b-b8dc-0052833d3448": {
"main": [
[
{
"node": "0f335618-d674-4012-8511-2de6cc356a6e",
"type": "main",
"index": 0
}
],
[]
]
},
"ed9af293-d933-4a67-8ba7-fd9a816d0a22": {
"main": [
[
{
"node": "eb80bc2e-04a4-42e3-afba-6472fdcbac5b",
"type": "main",
"index": 0
}
]
]
},
"ecd0d08a-44ca-4390-9eff-01f0719abc61": {
"main": [
[
{
"node": "aceab631-3ca5-4cc3-923f-6406ad426b81",
"type": "main",
"index": 1
}
]
]
},
"58b7114e-a45a-41f2-aae2-31c4edbe1e94": {
"main": [
[
{
"node": "aceab631-3ca5-4cc3-923f-6406ad426b81",
"type": "main",
"index": 0
}
]
]
},
"eb80bc2e-04a4-42e3-afba-6472fdcbac5b": {
"main": [
[
{
"node": "201b0934-417f-4d00-9fd3-7986df544192",
"type": "main",
"index": 0
}
]
]
},
"aceab631-3ca5-4cc3-923f-6406ad426b81": {
"main": [
[
{
"node": "3be05870-9c10-4a9b-b8dc-0052833d3448",
"type": "main",
"index": 0
}
]
]
},
"3ccf8c71-7ad0-47a3-b006-bc1fa5e60023": {
"main": [
[
{
"node": "6afd2b41-f733-45b3-85c6-5faba765e35e",
"type": "main",
"index": 0
}
]
]
},
"0208b796-b40e-47f0-a67c-5f437f02f301": {
"main": [
[
{
"node": "3ccf8c71-7ad0-47a3-b006-bc1fa5e60023",
"type": "main",
"index": 0
}
]
]
},
"6afd2b41-f733-45b3-85c6-5faba765e35e": {
"main": [
[
{
"node": "e24fe095-02be-48d0-a94d-cb36ea80b2ae",
"type": "main",
"index": 0
}
]
]
},
"e24fe095-02be-48d0-a94d-cb36ea80b2ae": {
"main": [
[
{
"node": "ab00b3bd-25b6-45a2-920a-cbc09a8edd90",
"type": "main",
"index": 0
},
{
"node": "58b7114e-a45a-41f2-aae2-31c4edbe1e94",
"type": "main",
"index": 1
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
경쟁자 내용 분석을 통해 시장 조사와 SEO의 내용 공백 발견
InfraNodus GraphRAG을 사용하여 경쟁사 웹 사이트 내용 공백을 분석하고 SEO를 돕습니다.
If
Code
Wait
+
If
Code
Wait
37 노드InfraNodus
인공지능
작업일지 기록
AI 작업시간표 생성기 - Gmail, 캘린더, GitHub을 Google 스프레드시트에 통합
If
Set
Code
+
If
Set
Code
31 노드Luka Zivkovic
개인 생산성
AI 기반 동영상 제작 및 Instagram, TikTok, YouTube 업로드
클라우드 드라이브 기반 AI 기반 비디오 제작 및 Instagram, TikTok, YouTube 업로드
If
Set
Code
+
If
Set
Code
53 노드DevCode Journey
콘텐츠 제작
AI 기반 잠재고객 생성 (Apollo, LinkedIn 리서치 및 4단계 개인화 이메일)
AI 기반 잠재고객 생성: Apollo, LinkedIn 리서치 및 4단계 개인화 이메일 활용
If
Set
Code
+
If
Set
Code
30 노드Gain FLow AI
리드 생성
스마트资金관리器
基于Telegram、Google Sheets및OpenAI의AI驱动收据및支出追踪器
If
Set
Code
+
If
Set
Code
50 노드Khairul Muhtadin
금융