{
  "name": "🧩#168 - Find People Lead Finder in n8n",
  "nodes": [
    {
      "parameters": {
        "operation": "read",
        "sheetName": {
          "__rl": true,
          "value": "Businesses",
          "mode": "list"
        },
        "filters": {
          "conditions": [
            {
              "keyName": "Status",
              "condition": "notEqual",
              "value": "Completed"
            }
          ]
        },
        "options": {}
      },
      "id": "168-sheets-read-001",
      "name": "Get row(s) in sheet1",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        -700,
        200
      ]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "https://www.searchapi.io/api/v1/search",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "engine",
              "value": "google"
            },
            {
              "name": "q",
              "value": "={{ $json[\"Business Name\"] }} (CEO OR Founder OR Owner OR \"Managing Director\" OR Director)"
            },
            {
              "name": "api_key",
              "value": "={{ $credentials.searchApi?.apiKey || \"REPLACE_WITH_YOUR_KEY\" }}"
            }
          ]
        },
        "options": {}
      },
      "id": "168-searchapi-primary-002",
      "name": "SearchApi",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -450,
        200
      ]
    },
    {
      "parameters": {
        "jsCode": "// Prepare primary search results for Google Vertex LLM\nconst business = $('Get row(s) in sheet1').item.json;\nconst organic = $json.organic_results || [];\n\nconst snippets = organic.slice(0, 5).map((res, i) => {\n  return `[Result ${i + 1}]\nTitle: ${res.title || ''}\nSnippet: ${res.snippet || ''}\nLink: ${res.link || ''}`;\n}).join('\\n\\n');\n\nreturn {\n  json: {\n    ...business,\n    searchQuery: `${business[\"Business Name\"]} (CEO OR Founder OR Owner OR \"Managing Director\" OR Director)`,\n    snippetsContext: snippets,\n    rawResultCount: organic.length\n  }\n};"
      },
      "id": "168-code-prep-primary-003",
      "name": "Code in JavaScript5",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -220,
        200
      ]
    },
    {
      "parameters": {
        "prompt": "You are a B2B Lead Verification Specialist. Analyze the provided search results for the business: \"{{ $json[\"Business Name\"] }}\" (Website: {{ $json[\"Website\"] }}, Location: {{ $json[\"Location\"] }}).\n\nSearch Results:\n{{ $json[\"snippetsContext\"] }}\n\nRules:\n1. Find the primary executive decision maker (CEO, Founder, Owner, Managing Director, President).\n2. NEVER trust a result blindly. Confirm that the person is CURRENTLY affiliated with \"{{ $json[\"Business Name\"] }}\", not a competitor, former executive, or someone from a completely different company with a similar name.\n3. If confident, provide firstName, lastName, fullName, title, companyMatch (true), and confidence score (0-100).\n4. If no reliable decision maker is verified, return decisionMakerFound: false, companyMatch: false, confidence: 0.\n\nRespond ONLY with valid JSON in this exact structure:\n{\n  \"decisionMakerFound\": true,\n  \"firstName\": \"string\",\n  \"lastName\": \"string\",\n  \"fullName\": \"string\",\n  \"title\": \"string\",\n  \"companyMatch\": true,\n  \"confidence\": 85,\n  \"rationale\": \"string\"\n}"
      },
      "id": "168-llm-chain-primary-004",
      "name": "Basic LLM Chain2",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "typeVersion": 1.4,
      "position": [
        20,
        200
      ]
    },
    {
      "parameters": {
        "modelName": "chat-bison"
      },
      "id": "168-vertex-model-primary-005",
      "name": "Google Vertex Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleVertex",
      "typeVersion": 1,
      "position": [
        20,
        400
      ]
    },
    {
      "parameters": {
        "jsCode": "// Parse LLM verification result\nconst item = $('Code in JavaScript5').item.json;\nlet parsed = {};\n\ntry {\n  const text = $json.text || $json.output || JSON.stringify($json);\n  const cleanText = text.replace(/```json/g, '').replace(/```/g, '').trim();\n  parsed = JSON.parse(cleanText);\n} catch (e) {\n  parsed = {\n    decisionMakerFound: false,\n    companyMatch: false,\n    confidence: 0,\n    rationale: 'Failed to parse LLM response'\n  };\n}\n\n// Clue: Never trust the first result blindly. Must confirm business + person + role belong together.\nconst isValid = Boolean(\n  parsed.decisionMakerFound &&\n  parsed.companyMatch &&\n  parsed.confidence >= 70 &&\n  parsed.firstName &&\n  parsed.lastName\n);\n\nreturn {\n  json: {\n    ...item,\n    decisionMaker: parsed,\n    valid: isValid,\n    firstName: parsed.firstName || '',\n    lastName: parsed.lastName || '',\n    fullName: parsed.fullName || (parsed.firstName ? `${parsed.firstName} ${parsed.lastName}` : ''),\n    role: parsed.title || '',\n    llmConfidence: parsed.confidence || 0,\n    llmRationale: parsed.rationale || ''\n  }\n};"
      },
      "id": "168-code-parse-primary-006",
      "name": "Code in JavaScript4",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        260,
        200
      ]
    },
    {
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $json.valid }}",
              "value2": true
            }
          ]
        }
      },
      "id": "168-if-primary-valid-007",
      "name": "If2",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        480,
        200
      ]
    },
    {
      "parameters": {
        "jsCode": "// Extract clean domain for Hunter API from website URL\nconst website = $json.Website || '';\nlet domain = '';\ntry {\n  const urlObj = new URL(website.startsWith('http') ? website : `https://${website}`);\n  domain = urlObj.hostname.replace(/^www\\./, '');\n} catch (e) {\n  domain = website.replace(/^https?:\\/\\//, '').replace(/^www\\./, '').split('/')[0];\n}\n\nreturn {\n  json: {\n    ...$json,\n    targetDomain: domain,\n    hunterQuery: {\n      domain: domain,\n      first_name: $json.firstName,\n      last_name: $json.lastName,\n      company: $json[\"Business Name\"]\n    }\n  }\n};"
      },
      "id": "168-code-prep-hunter-primary-008",
      "name": "Code in JavaScript14",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        700,
        200
      ]
    },
    {
      "parameters": {
        "operation": "emailFinder",
        "domain": "={{ $json.targetDomain }}",
        "firstName": "={{ $json.firstName }}",
        "lastName": "={{ $json.lastName }}",
        "additionalFields": {
          "company": "={{ $json[\"Business Name\"] }}"
        }
      },
      "id": "168-hunter-primary-009",
      "name": "Hunter2",
      "type": "n8n-nodes-base.hunter",
      "typeVersion": 1,
      "position": [
        920,
        200
      ]
    },
    {
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ Boolean($json.email && ($json.score >= 60 || $json.verification?.status === 'valid')) }}",
              "value2": true
            }
          ]
        }
      },
      "id": "168-if-email-verified-primary-010",
      "name": "If5",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        1140,
        200
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "value": "Businesses",
          "mode": "list"
        },
        "columnToMatchOn": "Row ID",
        "valueToMatchOn": "={{ $('Code in JavaScript14').item.json[\"Row ID\"] }}",
        "fieldsUi": {
          "values": [
            {
              "column": "Decision Maker Name",
              "fieldValue": "={{ $('Code in JavaScript14').item.json.fullName }}"
            },
            {
              "column": "Role",
              "fieldValue": "={{ $('Code in JavaScript14').item.json.role }}"
            },
            {
              "column": "Email",
              "fieldValue": "={{ $json.email }}"
            },
            {
              "column": "Email Score",
              "fieldValue": "={{ $json.score || 85 }}"
            },
            {
              "column": "Status",
              "fieldValue": "Completed"
            },
            {
              "column": "Match Source",
              "fieldValue": "Primary Search + Hunter Verified"
            },
            {
              "column": "Updated At",
              "fieldValue": "={{ new Date().toISOString() }}"
            }
          ]
        },
        "options": {}
      },
      "id": "168-update-sheet-primary-verified-011",
      "name": "Update row in sheet9",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1360,
        100
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "value": "Businesses",
          "mode": "list"
        },
        "columnToMatchOn": "Row ID",
        "valueToMatchOn": "={{ $('Code in JavaScript14').item.json[\"Row ID\"] }}",
        "fieldsUi": {
          "values": [
            {
              "column": "Decision Maker Name",
              "fieldValue": "={{ $('Code in JavaScript14').item.json.fullName }}"
            },
            {
              "column": "Role",
              "fieldValue": "={{ $('Code in JavaScript14').item.json.role }}"
            },
            {
              "column": "Email",
              "fieldValue": "Not Found"
            },
            {
              "column": "Email Score",
              "fieldValue": "0"
            },
            {
              "column": "Status",
              "fieldValue": "Completed"
            },
            {
              "column": "Match Source",
              "fieldValue": "Primary Search (Email Unverified)"
            },
            {
              "column": "Updated At",
              "fieldValue": "={{ new Date().toISOString() }}"
            }
          ]
        },
        "options": {}
      },
      "id": "168-update-sheet-primary-unverified-012",
      "name": "Update row in sheet8",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1360,
        300
      ]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "https://www.searchapi.io/api/v1/search",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "engine",
              "value": "google"
            },
            {
              "name": "q",
              "value": "=site:linkedin.com/in/ \"{{ $json[\"Business Name\"] }}\" (CEO OR Founder OR Owner OR Director OR \"Managing Director\")"
            },
            {
              "name": "api_key",
              "value": "={{ $credentials.searchApi?.apiKey || \"REPLACE_WITH_YOUR_KEY\" }}"
            }
          ]
        },
        "options": {}
      },
      "id": "168-searchapi-linkedin-fallback-013",
      "name": "SearchApi-LinkedIn",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        480,
        520
      ]
    },
    {
      "parameters": {
        "jsCode": "// Prepare LinkedIn fallback search results for Google Vertex LLM\nconst business = $('Code in JavaScript4').item.json;\nconst organic = $json.organic_results || [];\n\nconst snippets = organic.slice(0, 5).map((res, i) => {\n  return `[LinkedIn Profile ${i + 1}]\nTitle: ${res.title || ''}\nSnippet: ${res.snippet || ''}\nLink: ${res.link || ''}`;\n}).join('\\n\\n');\n\nreturn {\n  json: {\n    ...business,\n    fallbackQuery: `site:linkedin.com/in/ \"${business[\"Business Name\"]}\" (CEO OR Founder OR Owner OR Director OR \"Managing Director\")`,\n    linkedInSnippets: snippets,\n    fallbackResultCount: organic.length\n  }\n};"
      },
      "id": "168-code-prep-fallback-014",
      "name": "Code in JavaScript7",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        700,
        520
      ]
    },
    {
      "parameters": {
        "prompt": "You are a Senior B2B Prospecting & Verification Agent. The primary search failed to produce a reliable match for: \"{{ $json[\"Business Name\"] }}\" (Location: {{ $json[\"Location\"] }}).\n\nAnalyze these LinkedIn profiles:\n{{ $json[\"linkedInSnippets\"] }}\n\nStrict Verification Rules:\n1. Ensure the LinkedIn profile title/snippet explicitly confirms active employment at \"{{ $json[\"Business Name\"] }}\".\n2. Extract firstName, lastName, fullName, title (CEO, Founder, Managing Director, Partner, Owner).\n3. If confident of the company match, return companyMatch: true and confidence >= 70.\n4. If ambiguous, or if the person works at another entity with a similar name, return decisionMakerFound: false, companyMatch: false, confidence: 0.\n\nRespond ONLY with valid JSON in this exact structure:\n{\n  \"decisionMakerFound\": true,\n  \"firstName\": \"string\",\n  \"lastName\": \"string\",\n  \"fullName\": \"string\",\n  \"title\": \"string\",\n  \"companyMatch\": true,\n  \"confidence\": 80,\n  \"rationale\": \"string\"\n}"
      },
      "id": "168-llm-chain-fallback-015",
      "name": "Basic LLM Chain3",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "typeVersion": 1.4,
      "position": [
        920,
        520
      ]
    },
    {
      "parameters": {
        "modelName": "chat-bison"
      },
      "id": "168-vertex-model-fallback-016",
      "name": "Google Vertex Chat Model3",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleVertex",
      "typeVersion": 1,
      "position": [
        920,
        720
      ]
    },
    {
      "parameters": {
        "jsCode": "// Parse Fallback LLM verification result\nconst item = $('Code in JavaScript7').item.json;\nlet parsed = {};\n\ntry {\n  const text = $json.text || $json.output || JSON.stringify($json);\n  const cleanText = text.replace(/```json/g, '').replace(/```/g, '').trim();\n  parsed = JSON.parse(cleanText);\n} catch (e) {\n  parsed = {\n    decisionMakerFound: false,\n    companyMatch: false,\n    confidence: 0,\n    rationale: 'Failed to parse fallback LLM response'\n  };\n}\n\nconst isValid = Boolean(\n  parsed.decisionMakerFound &&\n  parsed.companyMatch &&\n  parsed.confidence >= 70 &&\n  parsed.firstName &&\n  parsed.lastName\n);\n\nreturn {\n  json: {\n    ...item,\n    fallbackDecisionMaker: parsed,\n    validFallback: isValid,\n    firstName: parsed.firstName || '',\n    lastName: parsed.lastName || '',\n    fullName: parsed.fullName || (parsed.firstName ? `${parsed.firstName} ${parsed.lastName}` : ''),\n    role: parsed.title || '',\n    fallbackConfidence: parsed.confidence || 0,\n    fallbackRationale: parsed.rationale || ''\n  }\n};"
      },
      "id": "168-code-parse-fallback-017",
      "name": "Code in JavaScript6",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1140,
        520
      ]
    },
    {
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $json.validFallback }}",
              "value2": true
            }
          ]
        }
      },
      "id": "168-if-fallback-valid-018",
      "name": "If3",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        1360,
        520
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "value": "Businesses",
          "mode": "list"
        },
        "columnToMatchOn": "Row ID",
        "valueToMatchOn": "={{ $json[\"Row ID\"] }}",
        "fieldsUi": {
          "values": [
            {
              "column": "Decision Maker Name",
              "fieldValue": "Not Found"
            },
            {
              "column": "Role",
              "fieldValue": "N/A"
            },
            {
              "column": "Email",
              "fieldValue": "Not Found"
            },
            {
              "column": "Email Score",
              "fieldValue": "0"
            },
            {
              "column": "Status",
              "fieldValue": "Completed"
            },
            {
              "column": "Match Source",
              "fieldValue": "Exhausted Searches"
            },
            {
              "column": "Updated At",
              "fieldValue": "={{ new Date().toISOString() }}"
            }
          ]
        },
        "options": {}
      },
      "id": "168-update-sheet-exhausted-019",
      "name": "Update row in sheet1",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1480,
        680
      ]
    },
    {
      "parameters": {
        "jsCode": "// Prepare Hunter parameters for LinkedIn-verified contact\nconst website = $json.Website || '';\nlet domain = '';\ntry {\n  const urlObj = new URL(website.startsWith('http') ? website : `https://${website}`);\n  domain = urlObj.hostname.replace(/^www\\./, '');\n} catch (e) {\n  domain = website.replace(/^https?:\\/\\//, '').replace(/^www\\./, '').split('/')[0];\n}\n\nreturn {\n  json: {\n    ...$json,\n    targetDomain: domain,\n    hunterQuery: {\n      domain: domain,\n      first_name: $json.firstName,\n      last_name: $json.lastName,\n      company: $json[\"Business Name\"]\n    }\n  }\n};"
      },
      "id": "168-code-prep-hunter-fallback-020",
      "name": "Code in JavaScript15",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1480,
        420
      ]
    },
    {
      "parameters": {
        "operation": "emailFinder",
        "domain": "={{ $json.targetDomain }}",
        "firstName": "={{ $json.firstName }}",
        "lastName": "={{ $json.lastName }}",
        "additionalFields": {
          "company": "={{ $json[\"Business Name\"] }}"
        }
      },
      "id": "168-hunter-fallback-021",
      "name": "Hunter3",
      "type": "n8n-nodes-base.hunter",
      "typeVersion": 1,
      "position": [
        1700,
        420
      ]
    },
    {
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ Boolean($json.email && ($json.score >= 60 || $json.verification?.status === 'valid')) }}",
              "value2": true
            }
          ]
        }
      },
      "id": "168-if-email-verified-fallback-022",
      "name": "If6",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        1920,
        420
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "value": "Businesses",
          "mode": "list"
        },
        "columnToMatchOn": "Row ID",
        "valueToMatchOn": "={{ $('Code in JavaScript15').item.json[\"Row ID\"] }}",
        "fieldsUi": {
          "values": [
            {
              "column": "Decision Maker Name",
              "fieldValue": "={{ $('Code in JavaScript15').item.json.fullName }}"
            },
            {
              "column": "Role",
              "fieldValue": "={{ $('Code in JavaScript15').item.json.role }}"
            },
            {
              "column": "Email",
              "fieldValue": "={{ $json.email }}"
            },
            {
              "column": "Email Score",
              "fieldValue": "={{ $json.score || 85 }}"
            },
            {
              "column": "Status",
              "fieldValue": "Completed"
            },
            {
              "column": "Match Source",
              "fieldValue": "LinkedIn Fallback + Hunter Verified"
            },
            {
              "column": "Updated At",
              "fieldValue": "={{ new Date().toISOString() }}"
            }
          ]
        },
        "options": {}
      },
      "id": "168-update-sheet-fallback-verified-023",
      "name": "Update row in sheet10",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        2140,
        320
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "value": "Businesses",
          "mode": "list"
        },
        "columnToMatchOn": "Row ID",
        "valueToMatchOn": "={{ $('Code in JavaScript15').item.json[\"Row ID\"] }}",
        "fieldsUi": {
          "values": [
            {
              "column": "Decision Maker Name",
              "fieldValue": "={{ $('Code in JavaScript15').item.json.fullName }}"
            },
            {
              "column": "Role",
              "fieldValue": "={{ $('Code in JavaScript15').item.json.role }}"
            },
            {
              "column": "Email",
              "fieldValue": "Not Found"
            },
            {
              "column": "Email Score",
              "fieldValue": "0"
            },
            {
              "column": "Status",
              "fieldValue": "Completed"
            },
            {
              "column": "Match Source",
              "fieldValue": "LinkedIn Fallback (Email Unverified)"
            },
            {
              "column": "Updated At",
              "fieldValue": "={{ new Date().toISOString() }}"
            }
          ]
        },
        "options": {}
      },
      "id": "168-update-sheet-fallback-unverified-024",
      "name": "Update row in sheet11",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        2140,
        500
      ]
    },
    {
      "parameters": {
        "content": "## SearchAPI\nPrimary & LinkedIn Fallback Prospecting",
        "height": 80,
        "width": 240
      },
      "id": "168-sticky-note-025",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -720,
        60
      ]
    }
  ],
  "connections": {
    "Get row(s) in sheet1": {
      "main": [
        [
          {
            "node": "SearchApi",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SearchApi": {
      "main": [
        [
          {
            "node": "Code in JavaScript5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript5": {
      "main": [
        [
          {
            "node": "Basic LLM Chain2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Vertex Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain2": {
      "main": [
        [
          {
            "node": "Code in JavaScript4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript4": {
      "main": [
        [
          {
            "node": "If2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If2": {
      "main": [
        [
          {
            "node": "Code in JavaScript14",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "SearchApi-LinkedIn",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript14": {
      "main": [
        [
          {
            "node": "Hunter2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Hunter2": {
      "main": [
        [
          {
            "node": "If5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If5": {
      "main": [
        [
          {
            "node": "Update row in sheet9",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update row in sheet8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SearchApi-LinkedIn": {
      "main": [
        [
          {
            "node": "Code in JavaScript7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript7": {
      "main": [
        [
          {
            "node": "Basic LLM Chain3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Vertex Chat Model3": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain3",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain3": {
      "main": [
        [
          {
            "node": "Code in JavaScript6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript6": {
      "main": [
        [
          {
            "node": "If3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If3": {
      "main": [
        [
          {
            "node": "Code in JavaScript15",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update row in sheet1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript15": {
      "main": [
        [
          {
            "node": "Hunter3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Hunter3": {
      "main": [
        [
          {
            "node": "If6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If6": {
      "main": [
        [
          {
            "node": "Update row in sheet10",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update row in sheet11",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {
    "Get row(s) in sheet1": [
      {
        "json": {
          "Row ID": "ROW-101",
          "Business Name": "Acme Cloud Solutions",
          "Website": "https://acmecloud.io",
          "Location": "San Francisco, CA",
          "Status": "Pending"
        }
      },
      {
        "json": {
          "Row ID": "ROW-102",
          "Business Name": "Summit Peak Marketing",
          "Website": "https://summitpeakmarketing.com",
          "Location": "Denver, CO",
          "Status": "Pending"
        }
      },
      {
        "json": {
          "Row ID": "ROW-103",
          "Business Name": "BlueWave Logistics",
          "Website": "https://bluewavelogistics.net",
          "Location": "Seattle, WA",
          "Status": "Pending"
        }
      },
      {
        "json": {
          "Row ID": "ROW-104",
          "Business Name": "Apex Zenith Consulting",
          "Website": "https://apexzenith.org",
          "Location": "Austin, TX",
          "Status": "Pending"
        }
      },
      {
        "json": {
          "Row ID": "ROW-105",
          "Business Name": "Ghost Town Enterprises",
          "Website": "https://ghosttownent.fake",
          "Location": "Nowhere, NV",
          "Status": "Pending"
        }
      }
    ],
    "SearchApi": [
      {
        "json": {
          "organic_results": [
            {
              "title": "David Miller - Chief Executive Officer - Acme Cloud Solutions",
              "snippet": "David Miller is the CEO and Co-Founder at Acme Cloud Solutions in San Francisco, CA. Overseeing enterprise cloud migrations.",
              "link": "https://www.linkedin.com/in/david-miller-acmecloud"
            },
            {
              "title": "About Acme Cloud Solutions Management Team",
              "snippet": "Leadership at Acme Cloud Solutions: David Miller (CEO), Elena Cruz (CTO). Founded in 2019 in San Francisco.",
              "link": "https://acmecloud.io/about"
            }
          ]
        }
      }
    ],
    "Hunter2": [
      {
        "json": {
          "first_name": "David",
          "last_name": "Miller",
          "email": "david.miller@acmecloud.io",
          "score": 94,
          "domain": "acmecloud.io",
          "position": "Chief Executive Officer",
          "verification": {
            "status": "valid",
            "score": 94
          }
        }
      }
    ],
    "Update row in sheet9": [
      {
        "json": {
          "Row ID": "ROW-101",
          "Business Name": "Acme Cloud Solutions",
          "Decision Maker Name": "David Miller",
          "Role": "Chief Executive Officer",
          "Email": "david.miller@acmecloud.io",
          "Email Score": 94,
          "Status": "Completed",
          "Match Source": "Primary Search + Hunter Verified"
        }
      }
    ]
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "168-find-people-lead-finder-v1",
  "id": "168-find-people-lead-finder",
  "tags": [
    {
      "name": "lead-generation"
    },
    {
      "name": "data-enrichment"
    },
    {
      "name": "b2b-outreach"
    }
  ]
}
