AutomationFlowsSocial Media › Enrich Linkedin Profiles with Ghost Genius and Google Sheets (no Account Needed)

Enrich Linkedin Profiles with Ghost Genius and Google Sheets (no Account Needed)

ByMatthieu @yaznow on n8n.io

Who is this for? This template is perfect for sales teams, recruiters, marketing professionals, and business development specialists who need to gather comprehensive LinkedIn profile data at scale. Ideal for lead generation teams building prospect databases, recruiters sourcing…

Event trigger★★☆☆☆ complexity7 nodesHTTP RequestGoogle Sheets
Social Media Trigger: Event Nodes: 7 Complexity: ★★☆☆☆ Added:

This workflow corresponds to n8n.io template #5161 — we link there as the canonical source.

This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "aYhTrpk2bbP6PzC7",
  "name": "My workflow 11",
  "tags": [],
  "nodes": [
    {
      "id": "8332ef6d-626b-4fa8-888c-e41284154d73",
      "name": "Start",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -400,
        440
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "e24a9fbf-2812-4386-bee9-857df3ba4924",
      "name": "Get Profile Info",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        40,
        440
      ],
      "parameters": {
        "url": "https://api.ghostgenius.fr/v2/profile",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1,
              "batchInterval": 2000
            }
          }
        },
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "={{ $json.url }}"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "c6c53ff4-5c54-48ac-940f-05faf4f335cc",
      "name": "Recover Profiles",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -180,
        440
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.YOUR_AWS_SECRET_KEY_HERE_L4a0XyjNLiOiyLH3Jl8PKI/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1D3aCtCOHUZd2B2KgPmi5_L4a0XyjNLiOiyLH3Jl8PKI",
          "cachedResultUrl": "https://docs.google.YOUR_AWS_SECRET_KEY_HERE_L4a0XyjNLiOiyLH3Jl8PKI/edit?usp=drivesdk",
          "cachedResultName": "Copy of List of profiles"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "ebc0382a-3d69-43bc-a64d-409647649e49",
      "name": "Update",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        260,
        440
      ],
      "parameters": {
        "columns": {
          "value": {
            "url": "={{ $('Recover Profiles').item.json.url }}",
            "Skills": "={{ ($json.skills?.length > 0) ? $json.skills.join(', ') : '' }}",
            "Hiring?": "={{ $json.is_hiring.toString() }}",
            "Summary": "={{ $json.summary }}",
            "Tagline": "={{ $json.headline }}",
            "Lastname": "={{ $json.last_name }}",
            "Location": "={{ [$json.geo?.location?.name, $json.geo?.country?.name].filter(Boolean).join(', ') }}",
            "Firstname": "={{ $json.first_name }}",
            "Followers": "={{ $json.followers }}",
            "Languages": "={{ $json.languages?.map(lang => lang.name + ' (' + lang.level + ')').join(', ') ?? '' }}",
            "Connections": "={{ $json.connections }}",
            "Education 1": "={{ $json.educations?.[0]?.school?.full_name ?? '' }}\n{{ $json.educations?.[0]?.school?.url ?? '' }}\n{{ [$json.educations?.[0]?.start, $json.educations?.[0]?.end].filter(Boolean).join(' - ') }}\n{{ $json.educations?.[0]?.description ?? '' }}\n{{ [$json.educations?.[0]?.grade, $json.educations?.[0]?.major, $json.educations?.[0]?.degree].filter(Boolean).join(' - ') }}",
            "Education 2": "={{ $json.educations?.[1]?.school?.full_name ?? '' }}\n{{ $json.educations?.[1]?.school?.url ?? '' }}\n{{ [$json.educations?.[1]?.start, $json.educations?.[1]?.end].filter(Boolean).join(' - ') }}\n{{ $json.educations?.[1]?.description ?? '' }}\n{{ [$json.educations?.[1]?.grade, $json.educations?.[1]?.major, $json.educations?.[1]?.degree].filter(Boolean).join(' - ') }}",
            "Education 3": "={{ $json.educations?.[2]?.school?.full_name ?? '' }}\n{{ $json.educations?.[2]?.school?.url ?? '' }}\n{{ [$json.educations?.[2]?.start, $json.educations?.[2]?.end].filter(Boolean).join(' - ') }}\n{{ $json.educations?.[2]?.description ?? '' }}\n{{ [$json.educations?.[2]?.grade, $json.educations?.[2]?.major, $json.educations?.[2]?.degree].filter(Boolean).join(' - ') }}",
            "Experience 1": "={{ $json.experiences?.[0]?.company?.name ?? '' }}\n{{ $json.experiences?.[0]?.company?.url ?? '' }}\n{{ ($json.experiences?.[0]?.start ?? '') + (($json.experiences?.[0]?.start && $json.experiences?.[0]?.end) ? ' - ' : '') + ($json.experiences?.[0]?.end ?? '') }}\n{{ $json.experiences?.[0]?.position ?? '' }}\n{{ $json.experiences?.[0]?.location ?? '' }}",
            "Experience 2": "={{ $json.experiences?.[1]?.company?.name ?? '' }}\n{{ $json.experiences?.[1]?.company?.url ?? '' }}\n{{ ($json.experiences?.[1]?.start ?? '') + (($json.experiences?.[1]?.start && $json.experiences?.[1]?.end) ? ' - ' : '') + ($json.experiences?.[1]?.end ?? '') }}\n{{ $json.experiences?.[1]?.position ?? '' }}\n{{ $json.experiences?.[1]?.location ?? '' }}",
            "Experience 3": "={{ $json.experiences?.[2]?.company?.name ?? '' }}\n{{ $json.experiences?.[2]?.company?.url ?? '' }}\n{{ ($json.experiences?.[2]?.start ?? '') + (($json.experiences?.[2]?.start && $json.experiences?.[2]?.end) ? ' - ' : '') + ($json.experiences?.[2]?.end ?? '') }}\n{{ $json.experiences?.[2]?.position ?? '' }}\n{{ $json.experiences?.[2]?.location ?? '' }}",
            "Experience 4": "={{ $json.experiences?.[3]?.company?.name ?? '' }}\n{{ $json.experiences?.[3]?.company?.url ?? '' }}\n{{ ($json.experiences?.[3]?.start ?? '') + (($json.experiences?.[3]?.start && $json.experiences?.[3]?.end) ? ' - ' : '') + ($json.experiences?.[3]?.end ?? '') }}\n{{ $json.experiences?.[3]?.position ?? '' }}\n{{ $json.experiences?.[3]?.location ?? '' }}",
            "Experience 5": "={{ $json.experiences?.[4]?.company?.name ?? '' }}\n{{ $json.experiences?.[4]?.company?.url ?? '' }}\n{{ ($json.experiences?.[4]?.start ?? '') + (($json.experiences?.[4]?.start && $json.experiences?.[4]?.end) ? ' - ' : '') + ($json.experiences?.[4]?.end ?? '') }}\n{{ $json.experiences?.[4]?.position ?? '' }}\n{{ $json.experiences?.[4]?.location ?? '' }}",
            "Open to work?": "={{ $json.is_open_to_work.toString() }}"
          },
          "schema": [
            {
              "id": "url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Firstname",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Firstname",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Lastname",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Lastname",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tagline",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Tagline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Location",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Connections",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Connections",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Followers",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Followers",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Hiring?",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Hiring?",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Open to work?",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Open to work?",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Languages",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Languages",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Skills",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Skills",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Experience 1",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Experience 1",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Experience 2",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Experience 2",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Experience 3",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Experience 3",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Experience 4",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Experience 4",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Experience 5",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Experience 5",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Education 1",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Education 1",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Education 2",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Education 2",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Education 3",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Education 3",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Skills",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Skills",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "url"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/YOUR_AWS_SECRET_KEY_HERE-s6PhA/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1D3aCtCOHUZd2B2KgPmi5_L4a0XyjNLiOiyLH3Jl8PKI",
          "cachedResultUrl": "https://docs.google.YOUR_AWS_SECRET_KEY_HERE_L4a0XyjNLiOiyLH3Jl8PKI/edit?usp=drivesdk",
          "cachedResultName": "Copy of List of profiles"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "91c969bc-dd32-45a3-a8e7-f69ce94fe365",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -520,
        280
      ],
      "parameters": {
        "color": 5,
        "width": 1040,
        "height": 420,
        "content": "## Enrich a LinkedIn profile list"
      },
      "typeVersion": 1
    },
    {
      "id": "62815f2f-a917-4f39-987a-2e0ce9046134",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 420,
        "height": 220,
        "content": "## Resources\n[Video Setup](https://youtu.be/kIOJeMoCfp4)\n\nGoogle Sheet: [Make a copy here](https://docs.google.com/spreadsheets/d/1oiV25COrTMP20nMgNvbtMo2LHcm7ehkqOxbAB-s6PhA/edit?usp=sharing)\n\nAPI LinkedIn (cookieless): [Ghost Genius](https://ghostgenius.fr)\n\nGoogle Sheet Credential Setup: [Video Tutorial](https://www.youtube.com/watch?v=pWGXlZBGu4k)"
      },
      "typeVersion": 1
    },
    {
      "id": "f477d4bc-9e67-4b93-a8aa-12bdf2807daa",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        80
      ],
      "parameters": {
        "color": 7,
        "height": 80,
        "content": "# [Setup Video](https://youtu.be/kIOJeMoCfp4)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2474bd40-54d9-4582-a58d-2a085b82ab64",
  "connections": {
    "Start": {
      "main": [
        [
          {
            "node": "Recover Profiles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Profile Info": {
      "main": [
        [
          {
            "node": "Update",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recover Profiles": {
      "main": [
        [
          {
            "node": "Get Profile Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Who is this for? This template is perfect for sales teams, recruiters, marketing professionals, and business development specialists who need to gather comprehensive LinkedIn profile data at scale. Ideal for lead generation teams building prospect databases, recruiters sourcing…

Source: https://n8n.io/workflows/5161/ — original creator credit. Request a take-down →

More Social Media workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Social Media

The Recap AI - Twitter Scraping. Uses formTrigger, httpRequest, googleSheets. Event-driven trigger; 13 nodes.

Form Trigger, HTTP Request, Google Sheets
Social Media

Disclaimer: this workflow only works on self-hosted instances due to the file system usage.

Execute Workflow Trigger, HTTP Request, Form Trigger +3
Social Media

More workflow: https://aitool.wiki/

Google Sheets, Google Drive, Read Write File +3
Social Media

> ⚠️ Disclaimer: This workflow uses Community Nodes and requires a self-hosted n8n instance.

HTTP Request, Telegram Trigger, Google Sheets +1
Social Media

This n8n workflow automates the process of scraping job listings from both LinkedIn and Indeed platforms simultaneously, combining results, and exporting data to Google Sheets for comprehensive job ma

Form Trigger, HTTP Request, Google Sheets