8
n8n 한국어amn8n.com

OpenRouter GPT-5 및 이메일을 사용한 채용 기회 요약 자동화

고급

이것은자동화 워크플로우로, 18개의 노드를 포함합니다.주로 Code, Html, Merge, Filter, EmailSend 등의 노드를 사용하며. OpenRouter GPT-5 및 이메일을 통한 채용 기회 요약 자동화

사전 요구사항
  • 대상 API의 인증 정보가 필요할 수 있음

카테고리

-
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "meta": {
    "instanceId": "42450f423595f391b7c323eb4191c0bc81df9f6de5483a12f34f76cb4146556c",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "dc1dcca4-8789-4403-841a-690878eb0a53",
      "name": "각 게시물",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        576,
        -96
      ],
      "parameters": {
        "url": "={{ $json[\"jobLink\"] }}",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 10,
              "batchInterval": 5000
            }
          }
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3b059cf0-931e-4ce1-8354-11382920d3d0",
      "name": "제목 및 설명 추출",
      "type": "n8n-nodes-base.html",
      "position": [
        864,
        -240
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "jobDescription",
              "attribute": "content",
              "cssSelector": "meta[property=\"og:description\"]",
              "returnValue": "attribute"
            },
            {
              "key": "jobTitle",
              "attribute": "content",
              "cssSelector": "meta[property=\"og:title\"]",
              "returnValue": "attribute"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "6b041491-47c6-4194-98ab-c410631b16e7",
      "name": "최근 7일",
      "type": "n8n-nodes-base.filter",
      "position": [
        352,
        32
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "551c6c94-a861-47b7-8850-32fadf883736",
              "operator": {
                "type": "dateTime",
                "operation": "after"
              },
              "leftValue": "={{ $json.date }}",
              "rightValue": "={{$now.minus({days: 7})}} "
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "16422542-708f-4af7-8ecc-b0633fa55beb",
      "name": "목록 페이지 가져오기",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -320,
        32
      ],
      "parameters": {
        "url": "https://community.n8n.io/c/jobs/13",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "971564de-3d6b-4f55-bfd8-4c4c80635885",
      "name": "게시물 추출",
      "type": "n8n-nodes-base.html",
      "position": [
        -96,
        32
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "jobLink",
              "attribute": "href",
              "cssSelector": ".raw-link",
              "returnArray": true,
              "returnValue": "attribute"
            },
            {
              "key": "date",
              "cssSelector": ".topic-list-item td:last-child",
              "returnArray": true
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d69d273d-f319-4473-8322-846bdd6c85b7",
      "name": "객체 병합",
      "type": "n8n-nodes-base.code",
      "position": [
        128,
        32
      ],
      "parameters": {
        "jsCode": "// Input data from previous node is available in items array\nconst jobLinks = items[0].json[\"jobLink\"];\nconst dates = items[0].json.date;\n\n// Create new array of merged objects\nconst merged = jobLinks.map((link, index) => ({\n  \"jobLink\": link,\n  \"date\": dates[index],\n  \"source\": \"n8n-forum\"\n}));\n\n// Return the merged data\nreturn merged.map(item => ({ json: item }));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "1237545b-bc8f-4e40-a1f9-be7715d88a1a",
      "name": "구조화된 출력 파서",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        944,
        288
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"summary\": \"What the client is looking to build\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "86eb1d6b-5fe5-4468-995c-6890286d6432",
      "name": "OpenRouter 채팅 모델",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        816,
        288
      ],
      "parameters": {
        "model": "openai/gpt-5-mini",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "aCsTDT5LGS5D8Ndl",
          "name": "OpenRouter account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d3bbfe52-65a6-489c-9cba-bd6cf79f0bf2",
      "name": "채용 요약 생성",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        800,
        64
      ],
      "parameters": {
        "text": "=<content> {{ $('Each post').item.json.data }} </content>",
        "messages": {
          "messageValues": [
            {
              "message": "=<prompt>\n    <purpose>\n        Based on this HTML your task is to provide a summary of what the client is looking to build with the automation software n8n\n    </purpose>\n\n    <instructions>\n        <instruction>Output in json format</instruction>\n        <instruction>Give a high level summary of what the client wants to build</instruction>\n        <instruction>Make sure to only distill the relevant text from all the HTML input</instruction>\n    </instructions>\n</prompt>"
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "executeOnce": false,
      "typeVersion": 1.5
    },
    {
      "id": "f4ff7c72-e1e9-4473-9a4a-a9e48f464bd1",
      "name": "채용 데이터와 요약 결합",
      "type": "n8n-nodes-base.merge",
      "position": [
        1152,
        48
      ],
      "parameters": {
        "mode": "combine",
        "options": {
          "includeUnpaired": false
        },
        "combineBy": "combineByPosition",
        "numberInputs": 3
      },
      "typeVersion": 3
    },
    {
      "id": "84d23d82-e136-4465-8966-4fdbf107dded",
      "name": "요약 출력 형식 지정",
      "type": "n8n-nodes-base.code",
      "position": [
        1376,
        64
      ],
      "parameters": {
        "jsCode": "return $input.all().map((item) => ({...item.json, summary:item.json.output.summary, output: undefined}))\n"
      },
      "typeVersion": 2
    },
    {
      "id": "d61c6515-a368-4ee5-bd4d-5508f2b5ff51",
      "name": "모든 채용 정보 통합",
      "type": "n8n-nodes-base.code",
      "position": [
        1600,
        64
      ],
      "parameters": {
        "jsCode": "const items = $input.all().map((item) => {\n    const itemJson = item.json;\n    return {\n        ...itemJson\n    }\n})\n\nreturn {data: items}\n"
      },
      "typeVersion": 2
    },
    {
      "id": "2e493107-b36c-4908-b37e-9fe43133e3fd",
      "name": "주간 채용 요약 발송",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1824,
        64
      ],
      "webhookId": "d53405e8-9964-43c2-8fe4-38eeebf65d34",
      "parameters": {
        "html": "={{(() => {\n  const grouped = $json.data.sort((a,b) => new Date(b.date.replace(/\\s/, 'T')) - new Date(a.date.replace(/\\s/, 'T'))).reduce((acc, job) => {\n    const source = job.source === 'n8n-forum' ? 'n8n-forum' : \n                  job.source === 'make-forum' ? 'make-forum' : \n                  'reddit';\n    if (!acc[source]) acc[source] = [];\n    acc[source].push(job);\n    return acc;\n  }, {});\n  \n  return Object.entries(grouped).reduce((html, [source, jobs]) => \n    html + '<div class=\"section\"><h2>' + \n    (source === 'n8n-forum' ? 'n8n Forum Jobs' : \n     source === 'make-forum' ? 'Make Forum Jobs' : \n     'Reddit Jobs') + '</h2>' +\n    jobs.map(job => \n      '<div class=\"job-item\"><h3><a href=\"' + job.jobLink + '\">' + \n      job.jobTitle + '</a></h3><div class=\"date\">Posted: ' + \n      job.date + '</div><div class=\"source\">Source: ' + \n      (job.source === 'n8n-forum' ? 'n8n Forum' : \n       job.source === 'make-forum' ? 'Make Forum' : \n       'Reddit - ' + job.origin) + '</div><p class=\"summary\">' + \n      job.summary + '</p></div>'\n    ).join('') + '</div>',\n    '<!DOCTYPE html><html><head><style>body{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:800px;margin:0 auto;padding:20px}.section{margin-bottom:30px}.job-item{border:1px solid #ddd;margin-bottom:20px;padding:15px;border-radius:5px}h2{color:#2c5282;border-bottom:2px solid #2c5282;padding-bottom:10px;margin-top:30px}h3{color:#2c5282;margin:0 0 10px}a{color:#2b6cb0;text-decoration:none}a:hover{text-decoration:underline}.date,.source{color:#666;font-size:0.9em;margin-bottom:8px}.summary{background:#f8f9fa;padding:10px;border-left:4px solid #4299e1;margin:10px 0}</style></head><body><h1>Latest Job Opportunities</h1><p>Generated on: ' + new Date().toLocaleString() + '</p>'\n  ) + '</body></html>';\n})()}}\n",
        "options": {},
        "subject": "Job Opportunities",
        "toEmail": "test@example.com",
        "fromEmail": "test@example.com"
      },
      "credentials": {
        "smtp": {
          "id": "JN7BvujMXvFvoUMh",
          "name": "SMTP account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "250a3bdf-9a6c-4c86-a837-1ba70c6c0161",
      "name": "메모",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        -240
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "## 🎯 WORKFLOW START\nThis workflow scrapes job postings from the n8n community forum,\nuses AI to summarize each opportunity, and emails you a digest.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "caf3a804-e37d-4286-abb8-018933fd10b4",
      "name": "매주 월요일 아침 실행",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -544,
        32
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 9 * * 1"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "4b548276-a148-4678-820f-9eef6743f5ed",
      "name": "메모1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        -240
      ],
      "parameters": {
        "width": 256,
        "height": 208,
        "content": "## ⏱️ DATE FILTERING\nOnly processes jobs posted within the last 7 days.\nAdjust the filter condition to change this timeframe.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "d3a054f0-121d-4120-b485-271e3119d5b3",
      "name": "메모2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        784,
        432
      ],
      "parameters": {
        "width": 320,
        "height": 176,
        "content": "## 🤖 AI EXTRACTION\nUses GPT-5-mini to read the job posting HTML and extract a clear summary \nof what the client wants to build. This makes scanning opportunities much faster!\n"
      },
      "typeVersion": 1
    },
    {
      "id": "2d894203-70de-4283-86cd-fb4c50afa800",
      "name": "메모3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1744,
        -176
      ],
      "parameters": {
        "width": 256,
        "height": 176,
        "content": "## 📧 EMAIL FORMATTING\nCreates a beautiful HTML email with jobs organized by source.\nUpdate the fromEmail and toEmail parameters to your addresses.\n"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "dc1dcca4-8789-4403-841a-690878eb0a53": {
      "main": [
        [
          {
            "node": "3b059cf0-931e-4ce1-8354-11382920d3d0",
            "type": "main",
            "index": 0
          },
          {
            "node": "d3bbfe52-65a6-489c-9cba-bd6cf79f0bf2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6b041491-47c6-4194-98ab-c410631b16e7": {
      "main": [
        [
          {
            "node": "f4ff7c72-e1e9-4473-9a4a-a9e48f464bd1",
            "type": "main",
            "index": 1
          },
          {
            "node": "dc1dcca4-8789-4403-841a-690878eb0a53",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "971564de-3d6b-4f55-bfd8-4c4c80635885": {
      "main": [
        [
          {
            "node": "d69d273d-f319-4473-8322-846bdd6c85b7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "16422542-708f-4af7-8ecc-b0633fa55beb": {
      "main": [
        [
          {
            "node": "971564de-3d6b-4f55-bfd8-4c4c80635885",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d69d273d-f319-4473-8322-846bdd6c85b7": {
      "main": [
        [
          {
            "node": "6b041491-47c6-4194-98ab-c410631b16e7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d61c6515-a368-4ee5-bd4d-5508f2b5ff51": {
      "main": [
        [
          {
            "node": "2e493107-b36c-4908-b37e-9fe43133e3fd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d3bbfe52-65a6-489c-9cba-bd6cf79f0bf2": {
      "main": [
        [
          {
            "node": "f4ff7c72-e1e9-4473-9a4a-a9e48f464bd1",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "84d23d82-e136-4465-8966-4fdbf107dded": {
      "main": [
        [
          {
            "node": "d61c6515-a368-4ee5-bd4d-5508f2b5ff51",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "86eb1d6b-5fe5-4468-995c-6890286d6432": {
      "ai_languageModel": [
        [
          {
            "node": "d3bbfe52-65a6-489c-9cba-bd6cf79f0bf2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "1237545b-bc8f-4e40-a1f9-be7715d88a1a": {
      "ai_outputParser": [
        [
          {
            "node": "d3bbfe52-65a6-489c-9cba-bd6cf79f0bf2",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "f4ff7c72-e1e9-4473-9a4a-a9e48f464bd1": {
      "main": [
        [
          {
            "node": "84d23d82-e136-4465-8966-4fdbf107dded",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3b059cf0-931e-4ce1-8354-11382920d3d0": {
      "main": [
        [
          {
            "node": "f4ff7c72-e1e9-4473-9a4a-a9e48f464bd1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "caf3a804-e37d-4286-abb8-018933fd10b4": {
      "main": [
        [
          {
            "node": "16422542-708f-4af7-8ecc-b0633fa55beb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

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

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

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

고급

유료인가요?

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

워크플로우 정보
난이도
고급
노드 수18
카테고리-
노드 유형11
난이도 설명

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

저자
Julian Kaiser

Julian Kaiser

@jksr

Full Stack Developer turned AI & Automation Engineer, implementing intelligent solutions with custom code, LLMs & n8n. Use my link to book a free 30-minute call to discuss your AI challenges and see if my services might be a good fit for your needs.

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34