AutomationFlowsSocial Media › Extract Structured Linkedin Profile Data with Airtop & AI Parsing

Extract Structured Linkedin Profile Data with Airtop & AI Parsing

ByAirtop @cesar-at-airtop on n8n.io

Manually copying data from LinkedIn profiles is time-consuming and error-prone. This automation helps you extract structured, detailed information from any public LinkedIn profile—enabling fast enrichment, hiring research, or lead scoring.

Event trigger★★☆☆☆ complexity6 nodesAirtopForm TriggerExecute Workflow Trigger
Social Media Trigger: Event Nodes: 6 Complexity: ★★☆☆☆ Added:

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

This workflow follows the Execute Workflow Trigger → Form Trigger 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": "OGfsyvA3tBbLytSo",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Extract LinkedIn Profile Information",
  "tags": [],
  "nodes": [
    {
      "id": "e536a185-e95d-4a15-a28f-10cf207cea2d",
      "name": "Airtop",
      "type": "n8n-nodes-base.airtop",
      "position": [
        200,
        100
      ],
      "parameters": {
        "url": "={{ $json.Linkedi_URL }}",
        "prompt": "This is a LinkedIn profile. Extract the following information:\n\n- Name: The full name of the person\n- Headline: The professional headline\n- Location: The location of the person\n- Current Company: The current company the person works for\n- Current Position: The current position at the company\n- About: The about section text\n- Experience: For each position (up to 10):\n  - Company Name: The name of the company\n  - Position: The position held\n  - Duration: The time period worked at the company\n  - Location: The location of the job\n  - Description: The description of the role\n- Education: For each education entry (up to 5):\n  - Institution: The name of the educational institution\n  - Degree: The degree obtained\n  - Field of Study: The field of study\n  - Duration: The time period of education\n  - Description: Any additional information about the education\n- Skills: List of skills (up to 50)\n- Certifications: For each certification (up to 10):\n  - Name: The name of the certification\n  - Issuing Organization: The organization that issued the certification\n  - Issue Date: When the certification was issued\n  - Expiration Date: When the certification expires (if applicable)\n- Languages: List of languages and proficiency levels\n- Connections: The number of connections\n- Recommendations: The number of recommendations received",
        "resource": "extraction",
        "operation": "query",
        "profileName": "={{ $json.Airtop_profile }}",
        "sessionMode": "new",
        "additionalFields": {
          "outputSchema": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"The full name of the person\"\n    },\n    \"headline\": {\n      \"type\": \"string\",\n      \"description\": \"The professional headline\"\n    },\n    \"location\": {\n      \"type\": \"string\",\n      \"description\": \"The location of the person\"\n    },\n    \"current_company\": {\n      \"type\": \"string\",\n      \"description\": \"The current company the person works for\"\n    },\n    \"current_position\": {\n      \"type\": \"string\",\n      \"description\": \"The current position at the company\"\n    },\n    \"about\": {\n      \"type\": \"string\",\n      \"description\": \"The about section text\"\n    },\n    \"experience\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"company_name\": {\n            \"type\": \"string\",\n            \"description\": \"The name of the company\"\n          },\n          \"position\": {\n            \"type\": \"string\",\n            \"description\": \"The position held\"\n          },\n          \"duration\": {\n            \"type\": \"string\",\n            \"description\": \"The time period worked at the company\"\n          },\n          \"location\": {\n            \"type\": \"string\",\n            \"description\": \"The location of the job\"\n          },\n          \"description\": {\n            \"type\": \"string\",\n            \"description\": \"The description of the role\"\n          }\n        },\n        \"required\": [\n          \"company_name\",\n          \"position\",\n          \"duration\",\n          \"location\",\n          \"description\"\n        ],\n        \"additionalProperties\": false\n      }\n    },\n    \"education\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"institution\": {\n            \"type\": \"string\",\n            \"description\": \"The name of the educational institution\"\n          },\n          \"degree\": {\n            \"type\": \"string\",\n            \"description\": \"The degree obtained\"\n          },\n          \"field_of_study\": {\n            \"type\": \"string\",\n            \"description\": \"The field of study\"\n          },\n          \"duration\": {\n            \"type\": \"string\",\n            \"description\": \"The time period of education\"\n          },\n          \"description\": {\n            \"type\": \"string\",\n            \"description\": \"Any additional information about the education\"\n          }\n        },\n        \"required\": [\n          \"institution\",\n          \"degree\",\n          \"field_of_study\",\n          \"duration\",\n          \"description\"\n        ],\n        \"additionalProperties\": false\n      }\n    },\n    \"skills\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"List of skills\"\n    },\n    \"certifications\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"name\": {\n            \"type\": \"string\",\n            \"description\": \"The name of the certification\"\n          },\n          \"issuing_organization\": {\n            \"type\": \"string\",\n            \"description\": \"The organization that issued the certification\"\n          },\n          \"issue_date\": {\n            \"type\": \"string\",\n            \"description\": \"When the certification was issued\"\n          },\n          \"expiration_date\": {\n            \"type\": [\n              \"string\",\n              \"null\"\n            ],\n            \"description\": \"When the certification expires (if applicable)\"\n          }\n        },\n        \"required\": [\n          \"name\",\n          \"issuing_organization\",\n          \"issue_date\",\n          \"expiration_date\"\n        ],\n        \"additionalProperties\": false\n      }\n    },\n    \"languages\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"language\": {\n            \"type\": \"string\",\n            \"description\": \"The language\"\n          },\n          \"proficiency\": {\n            \"type\": \"string\",\n            \"description\": \"The proficiency level\"\n          }\n        },\n        \"required\": [\n          \"language\",\n          \"proficiency\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"description\": \"List of languages and proficiency levels\"\n    },\n    \"connections\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of connections\"\n    },\n    \"recommendations\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of recommendations received\"\n    }\n  },\n  \"required\": [\n    \"name\",\n    \"headline\",\n    \"location\",\n    \"current_company\",\n    \"current_position\",\n    \"about\",\n    \"experience\",\n    \"education\",\n    \"skills\",\n    \"certifications\",\n    \"languages\",\n    \"connections\",\n    \"recommendations\"\n  ],\n  \"additionalProperties\": false,\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}"
        }
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e82acd23-fd83-4b5b-a460-056669ef7053",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -240,
        0
      ],
      "parameters": {
        "options": {},
        "formTitle": "Linkedin Profile Extractor",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Linkedin Person Profile URL",
              "requiredField": true
            },
            {
              "fieldLabel": "Airtop Profile (connected to Linkedin)",
              "requiredField": true
            }
          ]
        },
        "formDescription": "This Airtop Studio automation simplifies LinkedIn data extraction by automatically providing structured, reliable, and easily actionable data\u2014saving significant effort, reducing errors, and enabling fast analysis and decision-making."
      },
      "typeVersion": 2.2
    },
    {
      "id": "0eb1d929-6c46-432b-9eae-e2cd7ed377b7",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        420,
        100
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={{ $json.data.modelResponse }}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "42a3e2b9-c830-4ef3-bb0b-0c8951fed417",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -240,
        200
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "Linkedin_URL"
            },
            {
              "name": "Airtop_profile"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "c6408039-49db-44e9-905a-7a0e61211375",
      "name": "Parameters",
      "type": "n8n-nodes-base.set",
      "position": [
        -20,
        100
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e612bf63-72bd-4b61-82c9-786a90b58b7b",
              "name": "Linkedi_URL",
              "type": "string",
              "value": "={{ $json[\"Linkedin Person Profile URL\"] || $json.Linkedin_URL }}"
            },
            {
              "id": "567e5e7d-4efd-4d0a-a93c-6c7aed02c305",
              "name": "Airtop_profile",
              "type": "string",
              "value": "={{ $json[\"Airtop Profile (connected to Linkedin)\"] || $json.Airtop_profile }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f57c8cfd-b207-4769-b509-74f3cd6eb1aa",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1040,
        -280
      ],
      "parameters": {
        "width": 720,
        "height": 880,
        "content": "README\n# Extracting LinkedIn Profile Information\n## Use Case\nManually copying data from LinkedIn profiles is time-consuming and error-prone. This automation helps you extract structured, detailed information from any public LinkedIn profile\u2014enabling fast enrichment, hiring research, or lead scoring.\n\n## What This Automation Does\nThis automation extracts profile details from a LinkedIn URL using the following input parameters:\n- **airtop_profile**: The name of your [Airtop Profile](https://portal.airtop.ai/browser-profiles) connected to LinkedIn.\n- **linkedin_url**: The URL of the LinkedIn profile you want to extract data from.\n\n## How It Works\n1. Starts with a form trigger or via another workflow.\n2. Assigns the LinkedIn URL and Airtop profile variables.\n3. Opens the LinkedIn profile in a real browser session using Airtop.\n4. Uses an AI prompt to extract structured information, including:\n   - Name, headline, location\n   - Current company and position\n   - About section, experience, and education history\n   - Skills, certifications, languages, connections, and recommendations\n5. Returns structured JSON ready for further use or storage.\n\n## Setup Requirements\n1. [Airtop API Key](https://portal.airtop.ai/api-keys) \u2014 free to generate.\n2. An [Airtop Profile](https://portal.airtop.ai/browser-profiles) connected to LinkedIn (requires one-time login).\n\n## Next Steps\n- **Sync with CRM**: Push extracted data into HubSpot, Salesforce, or Airtable for lead enrichment.\n- **Combine with Search Automation**: Use with a LinkedIn search scraper to process profiles in bulk.\n- **Adapt to Other Platforms**: Customize the prompt to extract structured data from GitHub, Twitter, or company sites."
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "96f70c8d-e29d-4a1b-9ba9-466c6e1447ff",
  "connections": {
    "Airtop": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parameters": {
      "main": [
        [
          {
            "node": "Airtop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

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

About this workflow

Manually copying data from LinkedIn profiles is time-consuming and error-prone. This automation helps you extract structured, detailed information from any public LinkedIn profile—enabling fast enrichment, hiring research, or lead scoring.

Source: https://n8n.io/workflows/4203/ — 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

This automation extracts detailed company insights from a LinkedIn company page, including identity, scale, classification, and funding data. Ideal for investors, sales teams, and market researchers.

Form Trigger, Execute Workflow Trigger, Airtop
Social Media

This automation scores individual LinkedIn profiles against your Ideal Customer Profile (ICP) based on interest in AI, technical depth, and seniority level. It's ideal for prioritizing leads and under

Airtop, Form Trigger, Execute Workflow Trigger
Social Media

This automation scores individual LinkedIn profiles against your Ideal Customer Profile (ICP) based on interest in AI, technical depth, and seniority level. It's ideal for prioritizing leads and under

Airtop, Form Trigger, Execute Workflow Trigger
Social Media

Automatically sending LinkedIn connection requests to prospects can significantly streamline your outreach process. This automation ensures you only send requests to users you're not already connected

Form Trigger, Execute Workflow Trigger, Airtop
Social Media

Finding the official LinkedIn page of a company is crucial for tasks like outreach, research, or enrichment. This automation streamlines the process by intelligently searching the company’s website an

Form Trigger, Execute Workflow Trigger, Airtop