Bright Data と OpenAI 4o mini を使用した自動履歴書求人情報マッチングエンジン

上級

これはHR, AI分野の自動化ワークフローで、22個のノードを含みます。主にSet, Function, SplitOut, McpClient, HttpRequestなどのノードを使用、AI技術を活用したスマート自動化を実現。 Bright Data MCP と OpenAI 4o mini を使った自動履歴書職業マッチングエンジン

前提条件
  • ターゲットAPIの認証情報が必要な場合あり
  • OpenAI API Key

カテゴリー

ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "gIdIv8qN7zruqLbG",
  "meta": {
    "instanceId": "885b4fb4a6a9c2cb5621429a7b972df0d05bb724c20ac7dac7171b62f1c7ef40",
    "templateCredsSetupCompleted": true
  },
  "name": "Automated Resume Job Matching Engine with Bright Data & OpenAI 4o mini",
  "tags": [
    {
      "id": "Kujft2FOjmOVQAmJ",
      "name": "Engineering",
      "createdAt": "2025-04-09T01:31:00.558Z",
      "updatedAt": "2025-04-09T01:31:00.558Z"
    },
    {
      "id": "ZOwtAMLepQaGW76t",
      "name": "Building Blocks",
      "createdAt": "2025-04-13T15:23:40.462Z",
      "updatedAt": "2025-04-13T15:23:40.462Z"
    },
    {
      "id": "ddPkw7Hg5dZhQu2w",
      "name": "AI",
      "createdAt": "2025-04-13T05:38:08.053Z",
      "updatedAt": "2025-04-13T05:38:08.053Z"
    },
    {
      "id": "rKOa98eAi3IETrLu",
      "name": "HR",
      "createdAt": "2025-04-13T04:59:30.580Z",
      "updatedAt": "2025-04-13T04:59:30.580Z"
    }
  ],
  "nodes": [
    {
      "id": "a75e1f8d-9dd4-4c87-b1ab-05c502b8cae7",
      "name": "アイテムをループ処理",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        736,
        115
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "92f0272d-dc5d-4424-9d96-cc2521e8a4ae",
      "name": "「ワークフローテスト」クリック時",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -740,
        115
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3820c9d3-be68-4a60-a810-943a9795bdbd",
      "name": "Bright Dataの全ツールを一覧表示",
      "type": "n8n-nodes-mcp.mcpClient",
      "position": [
        -520,
        115
      ],
      "parameters": {},
      "credentials": {
        "mcpClientApi": {
          "id": "JtatFSfA2kkwctYa",
          "name": "MCP Client (STDIO) account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "83219c20-7341-4e42-8cae-cc2e1e8e9b8e",
      "name": "入力フィールドを設定",
      "type": "n8n-nodes-base.set",
      "position": [
        -300,
        115
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "214e61a0-3587-453f-baf5-eac013990857",
              "name": "resume",
              "type": "string",
              "value": "I am Pechi, Senior Python Developer with 9+ years of experience."
            },
            {
              "id": "98c64f52-1564-4889-811d-39cac3951cc3",
              "name": "keywords",
              "type": "string",
              "value": "Python"
            },
            {
              "id": "34202143-4b07-4301-b5e9-767430952214",
              "name": "location",
              "type": "string",
              "value": "India"
            },
            {
              "id": "47d01515-302b-4a91-b9db-3af0033a56e1",
              "name": "job_search_base_url",
              "type": "string",
              "value": "https://www.linkedin.com/jobs/search/"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "40a70c2b-5dcc-44f7-8fde-9c28748181cd",
      "name": "Bright Data MCPクライアント(求人情報抽出用)",
      "type": "n8n-nodes-mcp.mcpClient",
      "notes": "Scrape a single webpage URL with advanced options for content extraction and get back the results in MarkDown language.",
      "position": [
        -80,
        115
      ],
      "parameters": {
        "toolName": "scrape_as_html",
        "operation": "executeTool",
        "toolParameters": "={\n   \"url\": \"{{ $json.job_search_base_url }}?keywords={{ $json.keywords }}&location={{ $json.location }}\"\n} "
      },
      "credentials": {
        "mcpClientApi": {
          "id": "JtatFSfA2kkwctYa",
          "name": "MCP Client (STDIO) account"
        }
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "ff3193e5-cd22-40f4-8180-b76ad32055b3",
      "name": "分割",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        516,
        115
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "output"
      },
      "typeVersion": 1
    },
    {
      "id": "cd1fcbd8-acf3-4a91-8158-f664aaa839e7",
      "name": "ループ内でのBright Data MCPクライアント(求人情報抽出用)",
      "type": "n8n-nodes-mcp.mcpClient",
      "notes": "Scrape a single webpage URL with advanced options for content extraction and get back the results in MarkDown language.",
      "position": [
        956,
        -10
      ],
      "parameters": {
        "toolName": "scrape_as_html",
        "operation": "executeTool",
        "toolParameters": "={\n   \"url\": \"{{ $json.output }}\"\n} "
      },
      "credentials": {
        "mcpClientApi": {
          "id": "JtatFSfA2kkwctYa",
          "name": "MCP Client (STDIO) account"
        }
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "d9f78a12-9eaa-4d9b-9e5c-5150d6e40e95",
      "name": "職務記述情報抽出器",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        1176,
        -10
      ],
      "parameters": {
        "text": "=Extract the job description in a textual format\n\nHere's the content: {{ $json.result.content[0].text }}",
        "options": {},
        "attributes": {
          "attributes": [
            {
              "name": "job_description",
              "description": "Job Description"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 1
    },
    {
      "id": "4636d7e9-8d13-4f57-95f9-936f6d8bbf1d",
      "name": "AI職務マッチング",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1552,
        -10
      ],
      "parameters": {
        "text": "=Hi, you are a helpful job matcher, you analyze the given resume and job description and providing a job matching skills and score in a JSON format.\n\nHere's the Resume:\n{{ $('Set the Input fields').item.json.resume }}\n\nHere's the Job Desc:\n\n{{ $json.output.job_description }}",
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.6
    },
    {
      "id": "51b5d9dd-b0c8-4aaf-b789-f96e94519b94",
      "name": "構造化出力パーサー",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1720,
        200
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"job_match_analysis\": {\n    \"resume_summary\": \"Senior Python Developer with 9+ years of experience.\",\n    \"job_description_summary\": \"Seeking a developer with expertise in Sagemaker, Python, and LLM. The role involves client interaction, requirements understanding, design review, architecture validation, and team leadership.\",\n    \"skill_match\": [\n      {\n        \"skill\": \"python\",\n        \"resume\": \"Strong match - explicitly mentioned as core skill.\",\n        \"job_description\": \"Strong match - listed as a primary skill.\",\n        \"score\": 100\n      },\n      {\n        \"skill\": \"sagemaker\",\n        \"resume\": \"No match - not mentioned in the resume.\",\n        \"job_description\": \"Strong match - listed as a primary skill.\",\n        \"score\": 0\n      },\n      {\n        \"skill\": \"llm\",\n        \"resume\": \"No match - not mentioned in the resume.\",\n        \"job_description\": \"Strong match - listed as a primary skill.\",\n        \"score\": 0\n      },\n      {\n        \"skill\": \"leadership\",\n        \"resume\": \"Implicit match - Senior role implies leadership experience.\",\n        \"job_description\": \"Explicit match - requires leading and guiding teams.\",\n        \"score\": 75\n      },\n      {\n        \"skill\": \"client_interaction\",\n        \"resume\": \"No explicit mention, inferred from senior role.\",\n        \"job_description\": \"Explicit match - requires interfacing with clients.\",\n        \"score\": 50\n      }\n    ],\n    \"overall_match_score\": 45,\n    \"rationale\": \"The candidate's core skill (Python) is a strong match. The resume implies leadership skills, aligning with the job's team leadership requirements. However, the absence of Sagemaker and LLM experience significantly lowers the overall score. The candidate needs to demonstrate experience in these areas for a higher match.\",\n    \"recommendations\": [\n      \"Highlight any experience (even if limited) with Sagemaker or LLMs in the resume.\",\n      \"Quantify Python experience with specific projects and technologies used.\",\n      \"Emphasize any client-facing experience or responsibilities in previous roles.\",\n      \"Showcase leadership experience with specific examples (e.g., mentoring junior developers, leading project teams).\"\n    ]\n  }\n}\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "1dcb1ca7-e4e9-4775-9eb8-94c9e1f89e64",
      "name": "AI職務マッチング用バイナリデータ作成",
      "type": "n8n-nodes-base.function",
      "position": [
        1928,
        -60
      ],
      "parameters": {
        "functionCode": "items[0].binary = {\n  data: {\n    data: new Buffer(JSON.stringify(items[0].json, null, 2)).toString('base64')\n  }\n};\nreturn items;"
      },
      "typeVersion": 1
    },
    {
      "id": "da19ddc2-5e0f-4a4a-b524-1086b59c511f",
      "name": "Webhook AI職務マッチング通知",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1928,
        215
      ],
      "parameters": {
        "url": "https://webhook.site/7b5380a0-0544-48dc-be43-0116cb2d52c2",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "name": "job_match_response",
              "value": "={{ $json.output.job_match_analysis.toJsonString() }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0561839e-9ca9-4c18-9a9e-98b9a1f796fc",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        -320
      ],
      "parameters": {
        "width": 440,
        "height": 120,
        "content": "## Disclaimer\nThis template is only available on n8n self-hosted as it's making use of the community node for MCP Client."
      },
      "typeVersion": 1
    },
    {
      "id": "d68fd51a-d74f-4236-89e1-6144f9e80943",
      "name": "付箋4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -300,
        -140
      ],
      "parameters": {
        "color": 5,
        "width": 440,
        "height": 220,
        "content": "## LLM Usages\n\nOpenAI 4o mini LLM is being utilized for the structured data extraction handling."
      },
      "typeVersion": 1
    },
    {
      "id": "29342cc1-10dd-490c-b274-fd5a82dbae1e",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        -160
      ],
      "parameters": {
        "color": 3,
        "width": 1660,
        "height": 620,
        "content": "## Bright Data MCP Job Extract via Job Listings\nExtract job information via BrightData MCP and then perform the AI Job matching by utilizing the OpenAI GPT 4o mini LLM"
      },
      "typeVersion": 1
    },
    {
      "id": "25d7b451-0f5e-4694-a821-ea7fe93b7d6f",
      "name": "付箋5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -740,
        -700
      ],
      "parameters": {
        "color": 7,
        "width": 400,
        "height": 400,
        "content": "## Logo\n\n\n![logo](https://images.seeklogo.com/logo-png/43/1/brightdata-logo-png_seeklogo-439974.png)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "02e69f64-f7b4-4a0d-828c-3fcea324268e",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -740,
        -240
      ],
      "parameters": {
        "width": 400,
        "height": 320,
        "content": "## Note\n\nDeals with the LinkedIn profile data extraction by utilizing the Bright Data MCP and OpenAI GPT 4o LLM.\n\n**Please make sure to set the input fields node with the LinkedIn profile URL with the resume, location, keywords etc.\n\nPlease make sure to update the Webhook Notification URL of your interest**"
      },
      "typeVersion": 1
    },
    {
      "id": "cb84eebb-4215-4bb3-91f6-bf7897a8ddf6",
      "name": "OpenAI 職務記述抽出用チャットモデル",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1264,
        210
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "vPKynKbDzJ5ZU4cU",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "4d14c3a1-5402-4f27-beda-dba41c1aa912",
      "name": "OpenAI AI職務マッチング用チャットモデル",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1560,
        200
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "vPKynKbDzJ5ZU4cU",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2aec37e7-a67b-47b1-b3b2-7ea7e114bfff",
      "name": "AI職務マッチング結果をディスクに書き込み",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        2148,
        -60
      ],
      "parameters": {
        "options": {},
        "fileName": "=d:\\Job-Match-{{$now.toSeconds()}}.json",
        "operation": "write"
      },
      "typeVersion": 1
    },
    {
      "id": "af980102-85d0-4f90-842f-196605f6bcd6",
      "name": "ページネーション対応求人データ抽出器",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        140,
        115
      ],
      "parameters": {
        "text": "=Extract all the job links from the provided content. \n\nHere's the content:  {{ $json.result.content[0].text }}",
        "options": {},
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"array\",\n\t\"properties\": {\n\t\t\"link\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t}\n}"
      },
      "retryOnFail": true,
      "typeVersion": 1
    },
    {
      "id": "cb8e32c9-c1ac-4441-a42a-42e6b0d78970",
      "name": "OpenAI ページネーション求人抽出用チャットモデル",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        228,
        335
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "vPKynKbDzJ5ZU4cU",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "b366450e-b10e-412e-b442-a0827ca430bb",
  "connections": {
    "ff3193e5-cd22-40f4-8180-b76ad32055b3": {
      "main": [
        [
          {
            "node": "a75e1f8d-9dd4-4c87-b1ab-05c502b8cae7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4636d7e9-8d13-4f57-95f9-936f6d8bbf1d": {
      "main": [
        [
          {
            "node": "1dcb1ca7-e4e9-4775-9eb8-94c9e1f89e64",
            "type": "main",
            "index": 0
          },
          {
            "node": "da19ddc2-5e0f-4a4a-b524-1086b59c511f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a75e1f8d-9dd4-4c87-b1ab-05c502b8cae7": {
      "main": [
        [],
        [
          {
            "node": "cd1fcbd8-acf3-4a91-8158-f664aaa839e7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "83219c20-7341-4e42-8cae-cc2e1e8e9b8e": {
      "main": [
        [
          {
            "node": "40a70c2b-5dcc-44f7-8fde-9c28748181cd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "51b5d9dd-b0c8-4aaf-b789-f96e94519b94": {
      "ai_outputParser": [
        [
          {
            "node": "4636d7e9-8d13-4f57-95f9-936f6d8bbf1d",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "af980102-85d0-4f90-842f-196605f6bcd6": {
      "main": [
        [
          {
            "node": "ff3193e5-cd22-40f4-8180-b76ad32055b3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d9f78a12-9eaa-4d9b-9e5c-5150d6e40e95": {
      "main": [
        [
          {
            "node": "4636d7e9-8d13-4f57-95f9-936f6d8bbf1d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3820c9d3-be68-4a60-a810-943a9795bdbd": {
      "main": [
        [
          {
            "node": "83219c20-7341-4e42-8cae-cc2e1e8e9b8e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "92f0272d-dc5d-4424-9d96-cc2521e8a4ae": {
      "main": [
        [
          {
            "node": "3820c9d3-be68-4a60-a810-943a9795bdbd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4d14c3a1-5402-4f27-beda-dba41c1aa912": {
      "ai_languageModel": [
        [
          {
            "node": "4636d7e9-8d13-4f57-95f9-936f6d8bbf1d",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "1dcb1ca7-e4e9-4775-9eb8-94c9e1f89e64": {
      "main": [
        [
          {
            "node": "2aec37e7-a67b-47b1-b3b2-7ea7e114bfff",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "da19ddc2-5e0f-4a4a-b524-1086b59c511f": {
      "main": [
        [
          {
            "node": "a75e1f8d-9dd4-4c87-b1ab-05c502b8cae7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cb84eebb-4215-4bb3-91f6-bf7897a8ddf6": {
      "ai_languageModel": [
        [
          {
            "node": "d9f78a12-9eaa-4d9b-9e5c-5150d6e40e95",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "2aec37e7-a67b-47b1-b3b2-7ea7e114bfff": {
      "main": [
        []
      ]
    },
    "40a70c2b-5dcc-44f7-8fde-9c28748181cd": {
      "main": [
        [
          {
            "node": "af980102-85d0-4f90-842f-196605f6bcd6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cb8e32c9-c1ac-4441-a42a-42e6b0d78970": {
      "ai_languageModel": [
        [
          {
            "node": "af980102-85d0-4f90-842f-196605f6bcd6",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "cd1fcbd8-acf3-4a91-8158-f664aaa839e7": {
      "main": [
        [
          {
            "node": "d9f78a12-9eaa-4d9b-9e5c-5150d6e40e95",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - 人事, 人工知能

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

関連ワークフロー

Bright Data を使用して Google Gemini で Etsy データをスクレイピングし自動化
Etsy データマイニングの自動化を実現:Bright Data によるスクレピング、Google Gemini
Set
Function
Split Out
+
Set
Function
Split Out
19 ノードRanjan Dailata
プロダクト
DNB企業検索と抽出:Bright DataとOpenAI 4o miniを使用
Bright Data そして OpenAI 4o mini に基づく DNB 社検索と抽出
Set
Function
Mcp Client
+
Set
Function
Mcp Client
18 ノードRanjan Dailata
プロダクト
Amazon製品の価格下落をBright Dataで抽出・要約・分析
Bright DataとGoogle GeminiでAmazonの価格下落情報を抽出・要約・分析
Set
Wait
Merge
+
Set
Wait
Merge
26 ノードRanjan Dailata
人工知能
Bright Data MCPとGoogle Geminiを使用した法の事例研究抽出ツール、データマイニングツール
Bright Data MCPとGoogle Geminiを使用した法のケーススタディ抽出データマイニングツール
Set
Code
Wait
+
Set
Code
Wait
22 ノードRanjan Dailata
人工知能
LinkedInプロフィール抽出とJSON履歴書の構築(Bright DataとGoogle Gemini)
LinkedInプロフィール抽出とJSON履歴書構築(Bright DataとGoogle Gemini)
Set
Code
Function
+
Set
Code
Function
19 ノードRanjan Dailata
人事
AIアゲント駆動のProduct Huntデータ抽出と検索(Bright DataとGoogle Geminiを使用)
Bright Data MCPとGoogle Gemini AIを使ってProduct Huntデータをクロールして検索
Set
Function
Mcp Client
+
Set
Function
Mcp Client
21 ノードRanjan Dailata
人工知能
ワークフロー情報
難易度
上級
ノード数22
カテゴリー2
ノードタイプ13
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

作成者
Ranjan Dailata

Ranjan Dailata

@ranjancse

A Professional based out of India specialized in handling AI-powered automations. Contact me at ranjancse@gmail.com

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34