{
  "name": "Collect LinkedIn profiles with AI processing using SerpAPI, OpenAI, and NocoDB",
  "nodes": [
    {
      "id": "6a120c5d-3405-467e-8073-80bf30f2f0fc",
      "name": "Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -580,
        160
      ]
    },
    {
      "id": "5a4cb9af-faff-4fba-a5ce-d2c9bc25a070",
      "name": "Google search w/ SerpAPI",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -100,
        160
      ]
    },
    {
      "id": "300e3483-0f7b-427d-9f95-bf631dbda3d3",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        340,
        160
      ]
    },
    {
      "id": "ca824e0a-dddd-401a-a48a-debe4821d24e",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        -200
      ],
      "parameters": {
        "width": 220,
        "height": 520,
        "content": "### Adaptation required\nGet a free tier for serpAPI (Google Search) at serpapi.com\n\nSet up the credentials for serpAPI\n\nExplanations in the [n8n docs](https://docs.n8n.io/integrations/builtin/cluster-"
      }
    },
    {
      "id": "b8feccbd-6d14-4838-afc3-7fb9a1cd4f04",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        -200
      ],
      "parameters": {
        "width": 180,
        "height": 520,
        "content": "### NO adaptation required\nThe search metadata is being discarded and only the \"organic results\" being preserved as individual list items as they are containing the relevant data\n"
      }
    },
    {
      "id": "a5eb2f30-37e1-43b9-8e2c-dde0227908c5",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        300,
        -200
      ],
      "parameters": {
        "width": 180,
        "height": 520,
        "content": "### NO adaptation required\nDiscard irrelevant search result (meta)data\n"
      }
    },
    {
      "id": "94232837-e5b8-484e-b453-17952b3d8fbe",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        500,
        -200
      ],
      "parameters": {
        "width": 520,
        "height": 520,
        "content": "### Adaptation required\n\n**This node does the following**:\n- Identify where possible the company name the LinkedIn profile is working in.\n- Turn the number of followers into a real number, e.g. \"3.3k+"
      }
    },
    {
      "id": "3e3214b0-ace5-47e2-bb17-2db3c3db1de3",
      "name": "Discard meta data",
      "type": "n8n-nodes-base.set",
      "position": [
        1080,
        160
      ]
    },
    {
      "id": "2b1a66c3-be8a-4b00-86ee-3438022ad775",
      "name": "LinkedIn profiles in Excel for download",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1600,
        160
      ]
    },
    {
      "id": "b1b982f2-eeb7-4816-be25-aee5568d2283",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1220,
        -200
      ],
      "parameters": {
        "width": 540,
        "height": 260,
        "content": "## What problem does this solve? \n\nIt fetches **LinkedIn profiles** based on a keyword and location via Google search and stores them in an Excel file for download and in a NocoDB database.\nIt tries t"
      }
    },
    {
      "id": "15340d73-272d-45a1-b96f-b75569bae0b5",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        -200
      ],
      "parameters": {
        "width": 180,
        "height": 520,
        "content": "### NO adaption required\nThis node discards irrelevant OpenAI metadata"
      }
    },
    {
      "id": "da183064-0eb2-4e7d-ad83-7aca8f9b9e36",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -420,
        120
      ],
      "parameters": {
        "width": null,
        "height": 760,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Setting the parameters for Google search via SerpAPI\n\nSearching **LinkedIn profiles** by setting the following **parameters** for the Google query in the next node\n\n- Keyword on wha"
      }
    },
    {
      "id": "1fc2f6f8-df39-47c5-92a1-c1a14cbe0d65",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1220,
        100
      ],
      "parameters": {
        "width": 540,
        "height": 200,
        "content": "## What does it do?\n\n- Based on criteria input, it searches LinkedIn profiles\n- It discards unnecessary data and turns the follower count into a real number\n- The output is provided as an Excel table "
      }
    },
    {
      "id": "a522ed81-9d50-464e-b872-42a4c66a8584",
      "name": "Sticky Note14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1220,
        640
      ],
      "parameters": {
        "width": 540,
        "height": 500,
        "content": "## Step-by-step instruction\n\n\n1. Import the Workflow:\nCopy the workflow JSON from the \"Template Code\" section below.\nImport it into n8n via \"Import from File\" or \"Import from URL\".\n\n2. Set up a free a"
      }
    },
    {
      "id": "69696205-5ed2-4891-8cf3-1bcf9fc83ebd",
      "name": "Search parameter",
      "type": "n8n-nodes-base.set",
      "position": [
        -360,
        160
      ]
    },
    {
      "id": "0b588ebc-eddf-4c4c-a0c2-81cc0e8ae9d1",
      "name": "Turn search results into individual items",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        120,
        160
      ]
    },
    {
      "id": "daef5714-3e40-4ac1-a02e-f3dacddeb5e8",
      "name": "Company name & followers",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        620,
        160
      ]
    },
    {
      "id": "2f204f01-836c-41ab-97c1-38fee34adffc",
      "name": "Generate final data via merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1300,
        280
      ]
    },
    {
      "id": "f52e65b5-1369-4410-99fe-0cb0c11f5da5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1260,
        -60
      ],
      "parameters": {
        "width": 180,
        "height": 520,
        "content": "### NO adaption required\nThis node creates the final data output "
      }
    },
    {
      "id": "de7ace7e-ba9b-4abb-a54b-8996fc9b88a6",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1540,
        -60
      ],
      "parameters": {
        "width": 220,
        "height": 520,
        "content": "### NO adaption required\nThis node creates stores all the data in an Excel file which can be downloaded. \n- Open the node\n- Click on download button"
      }
    },
    {
      "id": "17a32318-e1bc-4c07-b6a2-59f47a68a595",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1540,
        480
      ],
      "parameters": {
        "width": 780,
        "height": 920,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Adaption required\n\n- This node creates stores all the data in an NocoDB database for further utilization.\n- In case the database is not needed, just delete this node.\n\n\n\n**Set up p"
      }
    },
    {
      "id": "d41f26fe-9068-4202-9677-a355c5276999",
      "name": "Store data in a NocoDB table",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        1600,
        520
      ]
    },
    {
      "id": "98212dd7-5449-4fc1-b96f-3f1b94931c32",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1220,
        320
      ],
      "parameters": {
        "width": 540,
        "height": 280,
        "content": "## How does it do it?\n\n- Based on criteria input, it uses serpAPI.com to conduct Google search of the respective LinkedI profiles\n- With OpenAI.com the name of the respective company is being added\n- "
      }
    }
  ],
  "connections": {
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Company name & followers",
            "type": "main",
            "index": 0
          },
          {
            "node": "Generate final data via merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Manual Trigger": {
      "main": [
        [
          {
            "node": "Search parameter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search parameter": {
      "main": [
        [
          {
            "node": "Google search w/ SerpAPI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Discard meta data": {
      "main": [
        [
          {
            "node": "Generate final data via merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Company name & followers": {
      "main": [
        [
          {
            "node": "Discard meta data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google search w/ SerpAPI": {
      "main": [
        [
          {
            "node": "Turn search results into individual items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate final data via merge": {
      "main": [
        [
          {
            "node": "LinkedIn profiles in Excel for download",
            "type": "main",
            "index": 0
          },
          {
            "node": "Store data in a NocoDB table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Turn search results into individual items": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}