8
n8n 한국어amn8n.com

취업 도우미 Agent

고급

이것은Miscellaneous, Multimodal AI분야의자동화 워크플로우로, 16개의 노드를 포함합니다.주로 Set, Code, Gmail, FormTrigger, Agent 등의 노드를 사용하며. Gemini와 Google Jobs을 사용하여 이상한 일자리를 찾고 맞춤형 취업 서신을 생성합니다.

사전 요구사항
  • Google 계정 및 Gmail API 인증 정보
  • Google Gemini API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "jDUtQ2fgs8EOqU95",
  "meta": {
    "instanceId": "c2650793f644091dc80fb900fe63448ad1f4b774008de9608064d67294f8307c",
    "templateCredsSetupCompleted": true
  },
  "name": "JOB Hunter Agent",
  "tags": [],
  "nodes": [
    {
      "id": "c6d0bc1b-bd78-4eea-84ed-6bed5c999d45",
      "name": "Sticky Note - 작동 방식",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        -288
      ],
      "parameters": {
        "color": 5,
        "width": 500,
        "height": 864,
        "content": "## 🎯 SMART JOB HUNTER + COVER LETTER GENERATOR\n\n### 🚀 What This Workflow Does:\n\n1. **User Submission**\n   - User upload CV (PDF) + preferences (location, job type, salary, etc.)\n   - Triggered by Form node\n\n2. **Extract CV**\n   - PDF text extracted\n   - Stored in `cvData`\n\n3. **Prepare Data**\n   - Collects all form fields (location, work setting, job type, salary, email)\n   - Normalized into JSON variables\n\n4. **Job Hunter Agent**\n   - Uses SerpAPI + Gemini LLM\n   - System prompt forces **ONLY 1 job result**\n   - Returns structured JSON with cover letter\n\n5. **Parse Agent Output**\n   - Cleans JSON (removes ```json fences)\n   - Ensures valid JSON for downstream\n\n6. **Generate HTML Email**\n   - Builds clean email template\n   - Inserts candidate profile + job match + cover letter + application tips\n\n7. **Send via Gmail**\n   - Sends final email to user’s address\n   - Subject: *Your Job MATCH!*\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ef02ff8f-9fa8-4f8a-a66f-d81003fe3915",
      "name": "Sticky Note - 설정 가이드",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -384,
        48
      ],
      "parameters": {
        "color": 4,
        "width": 380,
        "height": 528,
        "content": "## ⚙️ SETUP GUIDE (Updated)\n\n### 1. Google Gemini (Required)\n* Go to [Google AI Studio](https://aistudio.google.com/)\n* Create Gemini API key\n* Add it to n8n credentials (`Google Palm / Gemini`)\n* Model used: **Gemini 2.5 Pro**\n\n### 2. SerpAPI (Required)\n* Go to [SerpAPI Dashboard](https://serpapi.com/)\n* Create API key\n* Add it to n8n credentials (`SerpAPI`)\n* Used by workflow to fetch **Google Jobs search results**\n\n### 3. Form Configuration\n* Form webhook auto-generated by n8n\n* Share form link directly with users\n* Or embed form in your website\n"
      },
      "typeVersion": 1
    },
    {
      "id": "d776ebde-2cda-4b59-a0aa-a6ee0925d4f9",
      "name": "Sticky Note - 전문가 팁",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        48
      ],
      "parameters": {
        "color": 3,
        "width": 360,
        "height": 528,
        "content": "## 🛠️ Customization Tips\n\n- **Prompt**:\n  Adjust system message in Job Hunter Agent to refine tone/length of cover letter.\n\n- **Email Branding**:\n  Update footer in HTML email (currently: *Generated by khmuhtadin.com*).\n\n- **Job Filters**:\n  Extend Prepare Data node to pass blacklist, industries, or company size.\n\n- **LLM Model**:\n  Currently using Google Gemini (Gemini 2.5 Pro).\n  Switch to GPT-4o or Claude 3.5 Sonnet if available for better reasoning.\n\n- **Attachments**:\n  Optionally attach parsed CV summary as PDF for user reference.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "027c527d-90c0-4aec-b3f5-7ca212c72b1d",
      "name": "양식 제출 시",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -1200,
        -256
      ],
      "webhookId": "smart-job-hunter-v2",
      "parameters": {
        "options": {},
        "formTitle": "🎯 Smart Job Hunter + Cover Letter Generator",
        "formFields": {
          "values": [
            {
              "fieldType": "file",
              "fieldLabel": "CV/Resume (PDF)",
              "multipleFiles": false,
              "requiredField": true,
              "acceptFileTypes": ".pdf"
            },
            {
              "fieldLabel": "Preferred Location",
              "placeholder": "e.g., Jakarta, Bandung, Remote, Anywhere",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Job Type",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Full Time"
                  },
                  {
                    "option": "Part Time"
                  },
                  {
                    "option": "Freelance"
                  },
                  {
                    "option": "Contract"
                  },
                  {
                    "option": "Internship"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Work Setting",
              "fieldOptions": {
                "values": [
                  {
                    "option": "On Site"
                  },
                  {
                    "option": "Remote"
                  },
                  {
                    "option": "Hybrid"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldLabel": "Minimum Salary Expectation (Optional)",
              "placeholder": "e.g., 10 juta, 15-20 juta, negotiable"
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Additional Preferences (Optional)",
              "placeholder": "e.g., startup culture, specific companies, must have BPJS"
            },
            {
              "fieldType": "email",
              "fieldLabel": "Email",
              "placeholder": "We will send the results to this email",
              "requiredField": true
            }
          ]
        },
        "formDescription": "Upload your CV and let AI find perfect jobs with custom cover letters!"
      },
      "typeVersion": 2.3
    },
    {
      "id": "c84aae8d-0731-4158-ae47-74cbf7a3fb92",
      "name": "PDF에서 이력서 추출",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -976,
        -256
      ],
      "parameters": {
        "options": {},
        "operation": "pdf",
        "binaryPropertyName": "CV_Resume__PDF_"
      },
      "typeVersion": 1
    },
    {
      "id": "6fa762f1-f99a-4436-b975-7583e5456ddd",
      "name": "데이터 준비",
      "type": "n8n-nodes-base.set",
      "position": [
        -752,
        -256
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "ce5f3a96-c63d-40fa-b02c-8d763bfa2ed1",
              "name": "cvData",
              "type": "string",
              "value": "={{ $json.text }}"
            },
            {
              "id": "51623c31-dacf-4828-b1ac-f03f67e00d54",
              "name": "location",
              "type": "string",
              "value": "={{ $('On form submission').item.json['Preferred Location'] }}"
            },
            {
              "id": "068b13d5-6941-415d-935b-4936e42df913",
              "name": "workSetting",
              "type": "string",
              "value": "={{ $('On form submission').item.json['Work Setting'] }}"
            },
            {
              "id": "e1636d57-472b-4886-b631-5deb45b103a3",
              "name": "jobType",
              "type": "string",
              "value": "={{ $('On form submission').item.json['Job Type'] }}"
            },
            {
              "id": "salary-expectation",
              "name": "salaryExpectation",
              "type": "string",
              "value": "={{ $('On form submission').item.json['Minimum Salary Expectation (Optional)'] || 'Not specified' }}"
            },
            {
              "id": "additional-prefs",
              "name": "additionalPreferences",
              "type": "string",
              "value": "={{ $('On form submission').item.json['Additional Preferences (Optional)'] || 'None' }}"
            },
            {
              "id": "user-email",
              "name": "userEmail",
              "type": "string",
              "value": "={{ $('On form submission').item.json['Email'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "7ace28c0-f3d0-4d89-b250-8896817dbac5",
      "name": "Job Hunter Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -528,
        -256
      ],
      "parameters": {
        "text": "={{ \n`ANALYZE CV AND FIND JOBS:\n\nCV Content:\n${$json.cvData}\n\nUser Preferences:\n- Location: ${$json.location}\n- Work Setting: ${$json.workSetting}\n- Job Type: ${$json.jobType}\n- Salary: ${$json.salaryExpectation}\n- Additional: ${$json.additionalPreferences}\n\nTASKS:\n1. Extract key info from CV (name, skills, experience, achievements)\n2. Search for 3 best matching jobs using tools\n3. Generate personalized cover letter for each job\n4. Format everything as structured JSON for email template`\n}}",
        "options": {
          "systemMessage": "=You are an expert Job Hunter specializing in the Indonesian job market.  \nUse Decodo Scrapper and SerpAPI to find a real job.  \n\n## YOUR MISSION:\n1. Analyze the CV to extract skills, experience, and achievements.  \n2. Search for exactly 1 best matching job using the tools.  \n   - Return the first high-quality match you find.  \n   - Do not attempt multiple searches or retries.  \n3. Generate one personalized cover letter for that job (250–350 words).  \n4. Output everything as structured JSON.\n\n## OUTPUT FORMAT:\nYou MUST output a valid JSON object with this exact structure:\n\n{\n  \"candidateName\": \"[Name from CV]\",\n  \"candidateExperience\": \"[X years in Y field]\",\n  \"candidateSkills\": \"[Top 3 skills]\",\n  \"candidateLevel\": \"[Junior/Mid/Senior]\",\n  \"candidateStrength\": \"[Key differentiator]\",\n  \"searchSummary\": \"[Platform searched and result]\",\n  \"job\": {\n    \"title\": \"[Job title]\",\n    \"company\": \"[Company name]\",\n    \"location\": \"[City/Remote]\",\n    \"salary\": \"[Range or estimate]\",\n    \"postedDate\": \"[X days ago]\",\n    \"applyUrl\": \"[URL]\",\n    \"whyMatch\": [\"Reason 1\",\"Reason 2\",\"Reason 3\"],\n    \"coverLetter\": \"Dear Hiring Manager at [Company],\\n\\n[250-350 word letter]\\n\\nBest regards,\\n[Name]\"\n  },\n  \"applicationTips\": {\n    \"bestTime\": \"Monday-Wednesday, 9-11 AM\",\n    \"keywords\": \"[List of keywords from the job]\",\n    \"followUp\": \"After 1 week\",\n    \"interviewPrep\": \"[Focus areas]\"\n  }\n}\n\n## IMPORTANT:\n- Use real job data from the tools (no imaginary jobs).  \n- Stop after finding **one** matching job.  \n- Output ONLY valid JSON, no extra text.\n"
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "da5ec126-74e9-4708-8ec6-bc0136cf6fa2",
      "name": "HTML 이메일 생성",
      "type": "n8n-nodes-base.code",
      "position": [
        0,
        -256
      ],
      "parameters": {
        "jsCode": "const jobData = $json;\nconst job = jobData.job || null;\n\n// Build HTML email\nconst htmlEmail = `\n<!DOCTYPE html>\n<html lang=\"id\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>Your Job Match</title>\n</head>\n<body style=\"margin:0; padding:0; font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color:#f4f7fa;\">\n  <table role=\"presentation\" width=\"100%\" style=\"background-color:#f4f7fa;\">\n    <tr>\n      <td align=\"center\" style=\"padding:40px 20px;\">\n        <table role=\"presentation\" width=\"600\" style=\"background:#fff; border-radius:10px; box-shadow:0 4px 6px rgba(0,0,0,0.1);\">\n\n          <!-- Header -->\n          <tr>\n            <td style=\"background:linear-gradient(135deg,#667eea 0%,#764ba2 100%); padding:40px; border-radius:10px 10px 0 0; text-align:center;\">\n              <h1 style=\"margin:0; color:#fff; font-size:28px;\">🎯 Your Job Match Is Ready!</h1>\n            </td>\n          </tr>\n\n          <!-- Profile Summary -->\n          <tr>\n            <td style=\"padding:30px;\">\n              <div style=\"background:#f8f9fa; border-radius:8px; padding:20px; margin-bottom:30px;\">\n                <h2 style=\"margin:0 0 15px 0;\">👤 Profile Summary</h2>\n                <p><strong>Name:</strong> ${jobData.candidateName || 'N/A'}</p>\n                <p><strong>Experience:</strong> ${jobData.candidateExperience || 'N/A'}</p>\n                <p><strong>Skills:</strong> ${(jobData.candidateSkills || []).join(', ')}</p>\n                <p><strong>Level:</strong> ${jobData.candidateLevel || 'N/A'}</p>\n              </div>\n\n              <!-- Job Match -->\n              ${job ? `\n              <div style=\"border:1px solid #e0e0e0; border-radius:8px; padding:20px; margin-bottom:25px;\">\n                <div style=\"background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%); color:white; padding:8px 16px; border-radius:20px; font-weight:600; font-size:14px; display:inline-block; margin-bottom:15px;\">\n                  🥇 BEST MATCH\n                </div>\n\n                <h3>${job.title}</h3>\n                <p>🏢 ${job.company} | 📍 ${job.location}</p>\n                <p>💰 ${job.salary} | 📅 Posted ${job.postedDate}</p>\n\n                <div style=\"background:#f8f9fa; padding:12px; border-radius:6px; margin:15px 0;\">\n                  <p style=\"margin:0 0 8px 0; font-weight:600;\">Why this matches:</p>\n                  <ul>${(job.whyMatch || []).map(r => `<li>${r}</li>`).join('')}</ul>\n                </div>\n\n                <a href=\"${job.applyUrl}\" style=\"display:inline-block; background:#00a8e8; color:white; padding:10px 24px; text-decoration:none; border-radius:5px; font-weight:600;\">\n                  Apply Now →\n                </a>\n\n                <!-- Cover Letter -->\n                <div style=\"margin-top:20px; padding-top:20px; border-top:1px solid #e0e0e0;\">\n                  <h4>💌 Your Cover Letter</h4>\n                  <div style=\"background:#fff; border:1px solid #e0e0e0; padding:20px; border-radius:6px; white-space:pre-line; line-height:1.6;\">\n                    ${job.coverLetter}\n                  </div>\n                </div>\n              </div>\n              ` : '<p>No job found.</p>'}\n\n              <!-- Tips -->\n              ${jobData.applicationTips ? `\n              <div style=\"background:linear-gradient(135deg,#667eea 0%,#764ba2 100%); color:white; border-radius:8px; padding:20px;\">\n                <h3 style=\"margin:0 0 15px 0;\">💡 Application Tips</h3>\n                <p>📅 Best Time: ${jobData.applicationTips.bestTime}</p>\n                <p>🎯 Keywords: ${(jobData.applicationTips.keywords || []).join(', ')}</p>\n                <p>📧 Follow-up: ${jobData.applicationTips.followUp}</p>\n              </div>\n              ` : ''}\n            </td>\n          </tr>\n\n          <!-- Footer -->\n          <tr>\n            <td style=\"background:#f8f9fa; padding:30px; text-align:center; border-radius:0 0 10px 10px;\">\n              <p style=\"margin:0; color:#999; font-size:12px;\">\n                Generated by khmuhtadin.com | ${new Date().toLocaleDateString()}\n              </p>\n            </td>\n          </tr>\n\n        </table>\n      </td>\n    </tr>\n  </table>\n</body>\n</html>\n`;\n\n// Ambil email user dari workflow sebelumnya\nconst userEmail = $('Prepare Data').first().json.userEmail;\n\nreturn {\n  htmlEmail,\n  userEmail,\n  jobData\n};\n"
      },
      "typeVersion": 2
    },
    {
      "id": "4496a0d1-5bc3-4155-9b7f-5760f997da15",
      "name": "메시지 보내기",
      "type": "n8n-nodes-base.gmail",
      "position": [
        192,
        -256
      ],
      "webhookId": "f8fd58d8-4038-4e45-b7df-261ab2cfcddc",
      "parameters": {
        "sendTo": "={{ $('On form submission').item.json.Email }}",
        "message": "={{ $json.htmlEmail }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Your Job MATCH!"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "8p11S7abjY8KddB9",
          "name": "contactmuhtadin"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "7c1caa4d-d9f2-4404-a7e1-497ea55c87b5",
      "name": "에이전트 출력 파싱",
      "type": "n8n-nodes-base.code",
      "position": [
        -208,
        -256
      ],
      "parameters": {
        "jsCode": "let raw = $json.output || \"\";\n\n// Clean markdown fences if they exist\nraw = raw.replace(/```json/g, '').replace(/```/g, '').trim();\n\nlet parsed;\ntry {\n  parsed = JSON.parse(raw);\n} catch (e) {\n  parsed = { error: \"Failed to parse JSON\", raw };\n}\n\nreturn parsed;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "bb0c881a-0185-4de3-ba10-97d1e5e91f7b",
      "name": "SerpAPI",
      "type": "@n8n/n8n-nodes-langchain.toolSerpApi",
      "position": [
        -384,
        -96
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "serpApi": {
          "id": "RnX2LOB0xs45mOEw",
          "name": "Login w Github"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "08df6d1a-16fd-47aa-9c42-5a88e7184b59",
      "name": "Sticky Note - 작동 방식1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -832,
        48
      ],
      "parameters": {
        "color": 7,
        "width": 420,
        "height": 528,
        "content": "## ⚠️ Known Limitations\n\n- **Job Sources**:\n  Currently only SerpAPI (Google Jobs) + Decodo supported.\n  Can add LinkedIn, Jobstreet, Indeed with API/connector.\n\n- **Result Count**:\n  Hard-limited to **1 job** per run (by system prompt).\n  Change prompt if you want multiple jobs.\n\n- **Parsing**:\n  If AI fails to return valid JSON → fallback is `{ error: ... }`.\n  Email will show \"No job found\".\n\n- **Email Output**:\n  Gmail API required in n8n.\n  Make sure OAuth2 refresh tokens are valid.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "19c63f7b-d693-495d-94ec-5195c17df88a",
      "name": "Gemini 2.5 Pro",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -528,
        -96
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-pro"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "KMIkjDkgwnQFlQ9j",
          "name": "dev.uratalier"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d3684fdb-1701-400b-b6fc-1bab7bc6f2e3",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2256,
        32
      ],
      "parameters": {
        "width": 432,
        "height": 912,
        "content": "![Inbox 1](https://raw.githubusercontent.com/khmuhtadin/n8n-template/main/Website/%20JOB%20Hunter/inbox1.PNG)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c9019277-17de-4099-a76f-a73742e42142",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1792,
        32
      ],
      "parameters": {
        "width": 432,
        "height": 912,
        "content": "![Inbox 2](https://raw.githubusercontent.com/khmuhtadin/n8n-template/main/Website/%20JOB%20Hunter/inbox%202.PNG)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5f1f23db-4681-4473-a0e6-1f142853e68f",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1344,
        32
      ],
      "parameters": {
        "width": 432,
        "height": 912,
        "content": "![Inbox 3](https://raw.githubusercontent.com/khmuhtadin/n8n-template/main/Website/%20JOB%20Hunter/inbox3.PNG)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {
    "On form submission": [
      {
        "json": {
          "Email": "khmuhtadin@proton.me",
          "Job Type": "Freelance",
          "formMode": "test",
          "submittedAt": "2025-09-11T23:14:58.671+07:00",
          "Work Setting": "Remote",
          "CV/Resume (PDF)": {
            "size": 4430,
            "filename": "Dummy_ATS_Programmer_CV.pdf",
            "mimetype": "application/pdf"
          },
          "Preferred Location": "USA",
          "Additional Preferences (Optional)": "",
          "Minimum Salary Expectation (Optional)": ""
        },
        "binary": {
          "CV_Resume__PDF_": {
            "data": "JVBERi0xLjQKJZOMi54gUmVwb3J0TGFiIEdlbmVyYXRlZCBQREYgZG9jdW1lbnQgaHR0cDovL3d3dy5yZXBvcnRsYWIuY29tCjEgMCBvYmoKPDwKL0YxIDIgMCBSIC9GMiAzIDAgUgo+PgplbmRvYmoKMiAwIG9iago8PAovQmFzZUZvbnQgL0hlbHZldGljYSAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZyAvTmFtZSAvRjEgL1N1YnR5cGUgL1R5cGUxIC9UeXBlIC9Gb250Cj4+CmVuZG9iagozIDAgb2JqCjw8Ci9CYXNlRm9udCAvSGVsdmV0aWNhLUJvbGQgL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcgL05hbWUgL0YyIC9TdWJ0eXBlIC9UeXBlMSAvVHlwZSAvRm9udAo+PgplbmRvYmoKNCAwIG9iago8PAovQ29udGVudHMgOSAwIFIgL01lZGlhQm94IFsgMCAwIDU5NS4yNzU2IDg0MS44ODk4IF0gL1BhcmVudCA4IDAgUiAvUmVzb3VyY2VzIDw8Ci9Gb250IDEgMCBSIC9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdCj4+IC9Sb3RhdGUgMCAvVHJhbnMgPDwKCj4+IAogIC9UeXBlIC9QYWdlCj4+CmVuZG9iago1IDAgb2JqCjw8Ci9Db250ZW50cyAxMCAwIFIgL01lZGlhQm94IFsgMCAwIDU5NS4yNzU2IDg0MS44ODk4IF0gL1BhcmVudCA4IDAgUiAvUmVzb3VyY2VzIDw8Ci9Gb250IDEgMCBSIC9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdCj4+IC9Sb3RhdGUgMCAvVHJhbnMgPDwKCj4+IAogIC9UeXBlIC9QYWdlCj4+CmVuZG9iago2IDAgb2JqCjw8Ci9QYWdlTW9kZSAvVXNlTm9uZSAvUGFnZXMgOCAwIFIgL1R5cGUgL0NhdGFsb2cKPj4KZW5kb2JqCjcgMCBvYmoKPDwKL0F1dGhvciAoXChhbm9ueW1vdXNcKSkgL0NyZWF0aW9uRGF0ZSAoRDoyMDI1MDkxMTE2MTM1OCswMCcwMCcpIC9DcmVhdG9yIChcKHVuc3BlY2lmaWVkXCkpIC9LZXl3b3JkcyAoKSAvTW9kRGF0ZSAoRDoyMDI1MDkxMTE2MTM1OCswMCcwMCcpIC9Qcm9kdWNlciAoUmVwb3J0TGFiIFBERiBMaWJyYXJ5IC0gd3d3LnJlcG9ydGxhYi5jb20pIAogIC9TdWJqZWN0IChcKHVuc3BlY2lmaWVkXCkpIC9UaXRsZSAoXChhbm9ueW1vdXNcKSkgL1RyYXBwZWQgL0ZhbHNlCj4+CmVuZG9iago4IDAgb2JqCjw8Ci9Db3VudCAyIC9LaWRzIFsgNCAwIFIgNSAwIFIgXSAvVHlwZSAvUGFnZXMKPj4KZW5kb2JqCjkgMCBvYmoKPDwKL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZSBdIC9MZW5ndGggMTkwOQo+PgpzdHJlYW0KR2F0VXQ/JEchXiY7S1pGLyo6SGlUcG49RmFpQF4+cS5NXz8sVUowI2hXLi9ZX0dPZklYcz5CK0osUEM8VEcxVHFoOD1kR2EwcDRfUmVONTQ+XUIyb1JhM0FhXDx0LC5IUF1vdEFkYFIxPzMlO25cPVQ3PTRgT1BJJVljXCw4JW1sIzFyTGQyIV4+VV03V0lzTGJXTD8wIipyZmNINkM4QDZpcnEmO0AiJidCcGxmUDlHJVYtVCVBYXUxPFl0O1NrV1c7R1RvXEU7PVAtLj9SZFg+I2FrUi5oUGZOSj9UV1QzTkxucyFTbmpQVG04cy1MMUFdJU9MXm1bUzBuVXBzJ3BtXVxadGFWS1ghWWwqV1RjR2cvP09pIVVTc2NjNy9dXk00aFpZYUhmYW9qIi5RdCYwUGkxVm8kJF1bM0JRVlQwUWIiMissJ1VcP29XMyMuaVhHS2I1LWFWYjNqTEInXVhJRWdiIWRwNkJPKDZhXlw6Jyk7MjNybW9uNkY8YF44PWE3OiNiaF9fOSliblpRMW9mUW1fXFImdXE3LyQ5VVghQElZQ1wqIV9sRT41Nz0uKGM4PmdBPkstQG8zW1kkSWpQZiFZakciZEtfUFJcVlcrWHE3alM1WTcwMkUrSEBta1peMV4zbm84QVJcMio6VyZHbktjb2Jfc1Yjb0xtXGZhK2gscGJrWj9OQyUqOnItZmQ7LilDOGF1JktYN0E6VFNrcG9KUk9qUkcsQC9AYWdQZkVRY0gtJnQuTT9NZiJnXVdCRUZcI0IqWEBkTz9WOjppNUpaaV5jRiVdaV0xX1FsZEJDTl1IZ0E8KT9pIklDS3JbKW4hUEdMU1JuI2wrXlYtKjtRYEthS0NVbGk1TUlTOkhEJzFxOlRlNVBPWjNJU1AlSypka28mXykzQ2tCWHFKL3RVcWVyX2o/MTJjQztJclA6SSUuNlldX2IsaGM6byZmbEAkNDlnMVpqaTojODI6KmdgP0ZoYFVJZHAjLTFkQG0hTVY+TnB0ITI2Xj0+UFlUVlwncWhTQm05NFkqVSNbazRbRkY3SE9uJl1cTGVDRiluNUMua0V1bm04TV9wSUkkVGFEMSpNR2F1Mi06N0JEYk1CUWNeZkpiZz8tJ0gpM1dGOC1zZD0mc2tCNDJoaVhHLjheYTQ5Q2JiJDEkXWtCTUkrZmg7TzZraGM3bjY+Si5fSyZeVGM+dCxYNS5YMmRULjRSLmImSm9CaC00Q0xFRkgpKHBuK0NxWFYoIUQ8Tz9sI2MmVStWUUg+TVJmMmQ9IjElK2h0Ny1MZCZlOU4vR0MkY09tcCspOlk0KVlkS04nLVJcY05RWGw1XGVSRSlTQV1xUjs0JyJQUDdUXmdlYVRxMTAkZUUjaztXUSVgSD9hNTxzRTVPPiUqNiFAWGdjZjRLVjQ1TjIoLVk6WjcxJDAzJEdgJF01JDgoIWdoWiZYR2wuUWIocmw+IXA/cURndV86SidldHMsdTUsdEhuMlpJYS5PaiZacVFjIy5GbUVtaU5FQCFlWUgrLUFVYHEiaV0hcUZiNXJcNCliU0BAW2VnL1JOO14zUGFhNz1LVmwkdS1ySFRxbXJRbi5lNUEzXD9BRWpsUCpNUlhGP1pNYi9LWVxNOT1uMitjZSNwb1lAc1JBOjxmbSxgPkVJWyxXVEwxZGcqdEhAczc1bUxFMzRmYFNiQGA5U0BHJjhbIzk+Y21UNlo9Lm9OKVc+Z3VwaiRZQ0xFMmU+JChYUyJWR2MkKyRzPElhWF5xIWZAVElfOjRoa2VpXyFxJSE7WCEiKjE7IT08KFwsPjNscl00XEFdLGZgLnNBMnRmSSIpckA4KV8zaysuT1ttI0w8O01YQ3BDLUNbO2UjRTJFZmwvM2hMMChXVnIlQSVJQjhtW1YsNEk9c00udS5rU1N1Vi4sUj9SKW5HTi1SLSEwXzwhSyhjKSl0a2tAc1xRJiJHJCJXZkIkNUElRFFLMiI8bV9lTkU6OmFTZVtIPUlhcWZSOio5T1w1OUsxV2Q4KlVXYWJpSkdhVVpdS1dFPW1kTVthPWJbPV0lNikiJEgmW2lsQ21PUCZOOCRxQkxCK05GLU1zZj1UQjNhZGZUa1k7JT1MbWdaSVkkNydVSl1BW0UpMSEpb2ZuPUVtQ0hcTEJWaS4hQk1FP20iaFZbMGcsTzUwaVZSY2lYamhPM3A9KC1WUD5wKUgpPSkxLFJVK2xhQHBRSltdNlFJNUNQIkNUX2pwdGZmRG1ZRV1ac1RCWDtSSGlXPlpHXGA0c0lnNDQiRz0lIShfP1dzQFt0ZUVNS2w5I0ZeKUY/UTFfQiYjciVwYCk2PF0odC89biJxYWNsQVk9OkUjLChQTzQxIk4jRENpbT1rdDxgPWR0KiVnWTVuUUZvWGF1LmRTQEJEdTBJOEw+TitzVltALXNyIi1GZidBUTIlTHNMTlw0IzViKHFROCsoL0lUZmo8MSdyQGJqLzMiUFU3WVpyalgmZlJHYlNXMGMjb0VtTC42OWNzYyc6Vm1fbC9gdExILip0ZnBhLjB+PmVuZHN0cmVhbQplbmRvYmoKMTAgMCBvYmoKPDwKL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZSBdIC9MZW5ndGggNzM2Cj4+CnN0cmVhbQpHYXRuJDlsbyNCJjtLWk9NRVEqVEZURUEwNV07JUg4SHInal1ALi0oYD4xcVpRRGU+LXEiSidgUFxDNT8pLEVhWXAzUSlVNS1KJTY3QSxRa1BoLjtjKGtwPkkrW0JpTD0kVzphIjVzWmNASDBrMV1SSyw+XzA4Sl9oXU1KRiIoLEZDM1IqLyQ9ZF9GakgjK1ZaQFwuSHQ8ISg8WV1TZ0lLVi5gMGlJJnA6ciFURXBNYXMycV0ubG0kc2RiQGo6aEdrLUokdDtXIjIrc2JJXFVxKjFbXyYlWSNVN1BeYCpoOTInLl4lO1VsNy0oN0RdNDxNTWwjdS5bYzlsW1ZtR1kpRyxjYU5WWkI9NF1AZzQ8KCJfYjZEY05zRSRvKkRSLSMqS1tkQV8nLSt0TW5NVEEiWlJSayxDT2pyXi8yJmRMP0JKIkhzO1s+OUQ6JWFlTXAmJ0InYFVkbT1wRVI9T3MsR106LiUpS1BBXzlKPjszQzNZX1hzYGJOKHBnW0hRIzswRGZdLmZlJWtqYkNnIXUlakQtNDZJXzJnLEdhcWQ6IW1gKVw0ak4hI2wrJyk3bSYqZiUlSVlGKDE7K2dtLyMsc1pfI28mK2dXcGM/KTcpKWNeMitQNShzSnFRSF43XD9FZEMyQF4kQXFdKUY1JSpkak0uSzIuXzZQVDhwWm5sOSVxRk45PShhRVxhcHNBJ0InUV5NUGU9TzQ2JUskaUZpQEFRcSEkU0I+LGIvbi0kIiU5IiRpazUiRTQkJjI9OUpfNVM1cFY4aVBYQVonI1s/Umg2aG4mZD8lV2VkYWM+XlY/VjovXTdhIlpJJGxlalxTQUpUcl8kMWN0cmBma28rTnBFMilddDFYbmc8PFhwTlUlTV1gY15TRGMsbCdkZD8sTz9vW201aGRyZ1VFaVMqc3EhWTtBc2xoKGhsRC9ZK2kqTEBdQEVxLXJnNmdkYltCKWZGJVUlJk45Li06N34+ZW5kc3RyZWFtCmVuZG9iagp4cmVmCjAgMTEKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDczIDAwMDAwIG4gCjAwMDAwMDAxMTQgMDAwMDAgbiAKMDAwMDAwMDIyMSAwMDAwMCBuIAowMDAwMDAwMzMzIDAwMDAwIG4gCjAwMDAwMDA1MzYgMDAwMDAgbiAKMDAwMDAwMDc0MCAwMDAwMCBuIAowMDAwMDAwODA4IDAwMDAwIG4gCjAwMDAwMDEwOTEgMDAwMDAgbiAKMDAwMDAwMTE1NiAwMDAwMCBuIAowMDAwMDAzMTU2IDAwMDAwIG4gCnRyYWlsZXIKPDwKL0lEIApbPDg0OTg1YmZkMjE4MjNjZDU2OTYwODI5MmZhYzMwMmFhPjw4NDk4NWJmZDIxODIzY2Q1Njk2MDgyOTJmYWMzMDJhYT5dCiUgUmVwb3J0TGFiIGdlbmVyYXRlZCBQREYgZG9jdW1lbnQgLS0gZGlnZXN0IChodHRwOi8vd3d3LnJlcG9ydGxhYi5jb20pCgovSW5mbyA3IDAgUgovUm9vdCA2IDAgUgovU2l6ZSAxMQo+PgpzdGFydHhyZWYKMzk4MwolJUVPRgo=",
            "fileName": "Dummy_ATS_Programmer_CV.pdf",
            "fileSize": "4.43 kB",
            "fileType": "pdf",
            "mimeType": "application/pdf",
            "fileExtension": "pdf"
          }
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "1ec8485f-2772-409f-bb99-f834cbb7c390",
  "connections": {
    "bb0c881a-0185-4de3-ba10-97d1e5e91f7b": {
      "ai_tool": [
        [
          {
            "node": "7ace28c0-f3d0-4d89-b250-8896817dbac5",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "6fa762f1-f99a-4436-b975-7583e5456ddd": {
      "main": [
        [
          {
            "node": "7ace28c0-f3d0-4d89-b250-8896817dbac5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "19c63f7b-d693-495d-94ec-5195c17df88a": {
      "ai_languageModel": [
        [
          {
            "node": "7ace28c0-f3d0-4d89-b250-8896817dbac5",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "7ace28c0-f3d0-4d89-b250-8896817dbac5": {
      "main": [
        [
          {
            "node": "7c1caa4d-d9f2-4404-a7e1-497ea55c87b5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "027c527d-90c0-4aec-b3f5-7ca212c72b1d": {
      "main": [
        [
          {
            "node": "c84aae8d-0731-4158-ae47-74cbf7a3fb92",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7c1caa4d-d9f2-4404-a7e1-497ea55c87b5": {
      "main": [
        [
          {
            "node": "da5ec126-74e9-4708-8ec6-bc0136cf6fa2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c84aae8d-0731-4158-ae47-74cbf7a3fb92": {
      "main": [
        [
          {
            "node": "6fa762f1-f99a-4436-b975-7583e5456ddd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "da5ec126-74e9-4708-8ec6-bc0136cf6fa2": {
      "main": [
        [
          {
            "node": "4496a0d1-5bc3-4155-9b7f-5760f997da15",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급 - 기타, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수16
카테고리2
노드 유형9
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34