Bright Data APIとGoogle Sheets連携によるLinkedInジョブ検索の自動化

上級

これはOther, AI分野の自動化ワークフローで、16個のノードを含みます。主にIf, Wait, Filter, FormTrigger, HttpRequestなどのノードを使用、AI技術を活用したスマート自動化を実現。 LinkedIn求人検索の自動化、Bright Data APIとGoogle Sheetsを使用

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

カテゴリー

ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "Eo2mqDdtIQFdZhxp",
  "meta": {
    "instanceId": "bc8ca75c203589705ae2e446cad7181d6f2a7cc1766f958ef9f34810e53b8cb2",
    "templateCredsSetupCompleted": true
  },
  "name": "LinkedIn Job Finder Automation using Bright Data API & Google Sheets Integration",
  "tags": [],
  "nodes": [
    {
      "id": "9617d433-62f7-4ddf-bf47-a9a3208aa248",
      "name": "フォーム送信時1",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -660,
        -460
      ],
      "webhookId": "37d0e84c-0cda-47f8-826d-9ae5b22ba1d5",
      "parameters": {
        "options": {},
        "formTitle": "LinkedIn Job Finder",
        "formFields": {
          "values": [
            {
              "fieldLabel": "City",
              "requiredField": true
            },
            {
              "fieldLabel": "Job Title",
              "requiredField": true
            },
            {
              "fieldLabel": "Country",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Job_type(Optional)",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Full-Time"
                  },
                  {
                    "option": "Part-Time"
                  },
                  {
                    "option": "Remote"
                  },
                  {
                    "option": "WFH"
                  },
                  {
                    "option": "Contract"
                  },
                  {
                    "option": "Internship"
                  },
                  {
                    "option": "Freelance"
                  }
                ]
              }
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "47c35950-354c-42e4-b707-60ed5b1eeb2f",
      "name": "最終ステータス確認",
      "type": "n8n-nodes-base.if",
      "position": [
        320,
        -460
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "35ed620d-b5d5-4e97-bcc5-52b283d85616",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "ready"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "cef9c86d-98ce-4944-9907-d815cba406f4",
      "name": "スナップショットID作成",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -360,
        -460
      ],
      "parameters": {
        "url": "https://api.brightdata.com/datasets/v3/trigger",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"input\": [\n    {\n      \"location\": \"{{$node['On form submission1'].json['City'] ? $node['On form submission1'].json['City'].trim() : ''}}\",\n      \"keyword\": \"{{$node['On form submission1'].json['Job Title'] ? $node['On form submission1'].json['Job Title'].trim() : ''}}\",\n      \"country\": \"{{$node['On form submission1'].json['Country'] ? $node['On form submission1'].json['Country'].slice(0, 2).toUpperCase() : ''}}\",\n      \"time_range\": \"Past week\",\n      \"job_type\": \"{{ ['full-time', 'part-time', 'internship', 'contract', 'temporary'].includes($node['On form submission1'].json['Job_type']?.toLowerCase()) ? $node['On form submission1'].json['Job_type'] : '' }}\"\n    }\n  ],\n  \"custom_output_fields\": [\n    \"url\",\n    \"job_posting_id\",\n    \"job_title\",\n    \"company_name\",\n    \"company_id\",\n    \"job_location\",\n    \"job_summary\",\n    \"job_seniority_level\",\n    \"job_function\",\n    \"job_employment_type\",\n    \"job_industries\",\n    \"job_base_pay_range\",\n    \"company_url\",\n    \"job_posted_time\",\n    \"job_num_applicants\",\n    \"discovery_input\",\n    \"apply_link\",\n    \"country_code\",\n    \"title_id\",\n    \"company_logo\",\n    \"job_posted_date\",\n    \"job_poster\",\n    \"application_availability\",\n    \"job_description_formatted\",\n    \"base_salary\",\n    \"timestamp\",\n    \"error\",\n    \"error_code\",\n    \"warning\",\n    \"warning_code\"\n  ]\n}\n",
        "sendBody": true,
        "sendQuery": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "queryParameters": {
          "parameters": [
            {
              "name": "dataset_id",
              "value": "YOUR_DATASET_ID_HERE"
            },
            {
              "name": "include_errors",
              "value": "true"
            },
            {
              "name": "type",
              "value": "discover_new"
            },
            {
              "name": "discover_by",
              "value": "keyword"
            },
            {
              "name": "limit_per_input",
              "value": "2"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_BRIGHTDATA_API_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "66705bee-6424-4f6f-8c24-d9aa7a198399",
      "name": "スナップショットステータス確認",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        20,
        -460
      ],
      "parameters": {
        "url": "=https://api.brightdata.com/datasets/v3/progress/{{ $json.snapshot_id }}",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "format",
              "value": "json"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_BRIGHTDATA_API_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b5f9e1c9-eace-4a68-a084-dc254b1b9c46",
      "name": "1分間待機",
      "type": "n8n-nodes-base.wait",
      "position": [
        620,
        -100
      ],
      "webhookId": "7047efad-de41-4608-b95c-d3e0203ef620",
      "parameters": {
        "unit": "minutes",
        "amount": 1
      },
      "typeVersion": 1.1
    },
    {
      "id": "fff887f5-0388-4667-a5e9-7ef72ea36ac0",
      "name": "SnapIDからデータをスクレイピング",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        900,
        -500
      ],
      "parameters": {
        "url": "=https://api.brightdata.com/datasets/v3/snapshot/{{ $json.snapshot_id }}",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "format",
              "value": "json"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_BRIGHTDATA_API_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "57572d1d-3366-447d-8186-62a121824033",
      "name": "シートの求人リストを更新",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1380,
        -500
      ],
      "parameters": {
        "columns": {
          "value": {
            "Location": "={{ $json.job_location }}",
            "Job Title": "={{ $json.job_title }}",
            "Apply Link": "={{ $json.apply_link }}",
            "Job Detail": "={{ $json.job_summary }}",
            "Company URL": "={{ $json.company_url }}",
            "Company Name ": "={{ $json.company_name }}"
          },
          "schema": [
            {
              "id": "Company URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Company URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Job Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Name ",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Company Name ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Location",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Detail",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Job Detail",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Apply Link",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Apply Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID_HERE/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_GOOGLE_SHEET_ID_HERE",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID_HERE/edit?usp=drivesdk",
          "cachedResultName": "LinkedIn"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "YOUR_GOOGLE_SHEETS_CREDENTIAL_ID",
          "name": "Google Sheets Credential"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "3afbef52-97fe-4ead-8d57-d8e98e684b47",
      "name": "フィルター",
      "type": "n8n-nodes-base.filter",
      "position": [
        1140,
        -500
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "eb682420-fc89-4e01-a491-5a4a3f6bf10f",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.job_summary }}",
              "rightValue": "={{ $json.shortCommonName }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "1badd4f4-4f66-4777-a2b7-3343f2afb2b3",
      "name": "条件分岐",
      "type": "n8n-nodes-base.if",
      "position": [
        620,
        -480
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f01bd215-c406-493c-a6e4-2b8ec5686b44",
              "operator": {
                "type": "number",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.records }}",
              "rightValue": "={{ 0 }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "df16ac92-0f96-40cd-ad9c-da17332a3e81",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -760,
        -620
      ],
      "parameters": {
        "color": 2,
        "width": 300,
        "height": 340,
        "content": "🔹 Search by Keyword — Form Trigger\nPurpose:\nCollects the user-submitted job search criteria including city, job title, country, and job type.\nTriggers the workflow when new search parameters are entered."
      },
      "typeVersion": 1
    },
    {
      "id": "454c5db0-beb7-4a0b-95ca-8308a114e420",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        -660
      ],
      "parameters": {
        "color": 3,
        "width": 320,
        "height": 380,
        "content": "🔹 LinkedIn Job Search Fetcher — HTTP Request (POST to Bright Data)\nPurpose:\nSends the job search criteria to Bright Data's LinkedIn dataset API.\nInitiates the scraping job to fetch LinkedIn job postings matching the criteria."
      },
      "typeVersion": 1
    },
    {
      "id": "c68c4da8-6965-45cb-833f-0bb3a99a289c",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -100,
        -640
      ],
      "parameters": {
        "color": 4,
        "width": 300,
        "height": 360,
        "content": "🔹 Check Delivery Status of Snap ID — HTTP Request (GET)\nPurpose:\nChecks the status of the scraping job using the returned snapshot_id.\nEnsures the task is complete before continuing to data extraction."
      },
      "typeVersion": 1
    },
    {
      "id": "57d2b098-41ce-4ee6-ab1d-130e2645dc3e",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        500,
        -220
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 280,
        "content": "🔹 Wait 1 minute — Wait Node\nPurpose:\nDelays the workflow execution by 1 minute.\nPrevents frequent polling of Bright Data API to reduce load and errors."
      },
      "typeVersion": 1
    },
    {
      "id": "47fc7436-1f6b-4bec-b88c-4df12ceddf57",
      "name": "付箋4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        220,
        -640
      ],
      "parameters": {
        "color": 5,
        "width": 270,
        "height": 360,
        "content": "🔹 Check Final Status — IF Node #1\nPurpose:\nConditionally checks if snapshot status is \"ready\".\nIf yes → proceed to download scraped data.\nIf no → loop back to Wait Node and recheck."
      },
      "typeVersion": 1
    },
    {
      "id": "7a978cd2-efad-474d-92b7-3f9f28155f00",
      "name": "付箋5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        820,
        -680
      ],
      "parameters": {
        "color": 6,
        "width": 260,
        "height": 400,
        "content": "🔹 Decode Snapshot from Response — HTTP Request (GET)\nPurpose:\nDownloads the final scraped LinkedIn job dataset using the ready snapshot ID.\nContains full job posting data in JSON format."
      },
      "typeVersion": 1
    },
    {
      "id": "6ff9b0c5-b18c-44e9-b671-86388428927b",
      "name": "付箋6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1300,
        -660
      ],
      "parameters": {
        "color": 3,
        "width": 340,
        "height": 400,
        "content": "🔹 Google Sheets — Google Sheets (AppendOrUpdate)\nPurpose:\nAppends each LinkedIn job result into your Google Sheet.\nCaptures data fields like job title, company name, location, job details, and apply links."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "57896d29-3f06-44b6-bb08-964875ffc7fb",
  "connections": {
    "1badd4f4-4f66-4777-a2b7-3343f2afb2b3": {
      "main": [
        [
          {
            "node": "fff887f5-0388-4667-a5e9-7ef72ea36ac0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3afbef52-97fe-4ead-8d57-d8e98e684b47": {
      "main": [
        [
          {
            "node": "57572d1d-3366-447d-8186-62a121824033",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b5f9e1c9-eace-4a68-a084-dc254b1b9c46": {
      "main": [
        [
          {
            "node": "66705bee-6424-4f6f-8c24-d9aa7a198399",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "47c35950-354c-42e4-b707-60ed5b1eeb2f": {
      "main": [
        [
          {
            "node": "1badd4f4-4f66-4777-a2b7-3343f2afb2b3",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "b5f9e1c9-eace-4a68-a084-dc254b1b9c46",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cef9c86d-98ce-4944-9907-d815cba406f4": {
      "main": [
        [
          {
            "node": "66705bee-6424-4f6f-8c24-d9aa7a198399",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9617d433-62f7-4ddf-bf47-a9a3208aa248": {
      "main": [
        [
          {
            "node": "cef9c86d-98ce-4944-9907-d815cba406f4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "66705bee-6424-4f6f-8c24-d9aa7a198399": {
      "main": [
        [
          {
            "node": "47c35950-354c-42e4-b707-60ed5b1eeb2f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fff887f5-0388-4667-a5e9-7ef72ea36ac0": {
      "main": [
        [
          {
            "node": "3afbef52-97fe-4ead-8d57-d8e98e684b47",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

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

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

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

上級 - その他, 人工知能

有料ですか?

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

ワークフロー情報
難易度
上級
ノード数16
カテゴリー2
ノードタイプ7
難易度説明

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

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34