AutomationFlowsGeneral › Extract Company Data and Calculate Icp Score with Airtop

Extract Company Data and Calculate Icp Score with Airtop

ByAirtop @cesar-at-airtop on n8n.io

This automation identifies a company's LinkedIn profile, extracts key business data, and calculates an ICP (Ideal Customer Profile) score to qualify and enrich company records. It is perfect for sales teams, data enrichment pipelines, and CRM integrations. Company domain: The…

Event trigger★★★★☆ complexity13 nodesForm TriggerExecute Workflow Trigger
General Trigger: Event Nodes: 13 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #4260 — 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": "Ipc5s7U9UzuqexMI",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Extract company data and calculate ICP",
  "tags": [],
  "nodes": [
    {
      "id": "bc969415-98e7-4160-ab92-6088ea752265",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        0,
        -140
      ],
      "parameters": {
        "options": {},
        "formTitle": "LinkedIn Company Profile Extractor",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Company domain",
              "placeholder": "company.com",
              "requiredField": true
            },
            {
              "fieldLabel": "Airtop Profile (connected to Linkedin)",
              "requiredField": true
            },
            {
              "fieldLabel": "Company LinkedIn"
            }
          ]
        },
        "formDescription": "=<h2>Find Company LinkedIn URL</h2> \n<p>This automation takes a company domain and returns its LinkedIn URL.</p> "
      },
      "typeVersion": 2.2
    },
    {
      "id": "c258f7eb-9e86-41a9-ae23-0bf1b24e6b86",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        0,
        60
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "Company domain"
            },
            {
              "name": "Airtop Profile (connected to Linkedin)"
            },
            {
              "name": "Company LinkedIn"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "ad5482d7-93a9-491b-81bf-9111476a000a",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1320,
        -40
      ],
      "parameters": {
        "numberInputs": 3
      },
      "typeVersion": 3.1
    },
    {
      "id": "602d6957-e88b-4ce0-ba9c-1b665eb5b9fb",
      "name": "Extract company LinkedIn url",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        620,
        40
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "JuW1Q92YSk4ErvvC",
          "cachedResultName": "AIRTOP \u2014 Company LinkedIn"
        },
        "workflowInputs": {
          "value": {
            "Company domain": "={{ $('Unify Params').item.json.company_domain }}",
            "Airtop Profile (connected to Linkedin)": "={{ $('Unify Params').item.json.airtop_profile }}"
          },
          "schema": [
            {
              "id": "Company domain",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Company domain",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Airtop Profile (connected to Linkedin)",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Airtop Profile (connected to Linkedin)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "604abdb8-3932-49e7-9a25-0338b3b0b496",
      "name": "Extract Company Information",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        1120,
        -160
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "yWtpgGwGgspx1A1W",
          "cachedResultName": "AIRTOP \u2014 Extract LinkedIn Company Information"
        },
        "workflowInputs": {
          "value": {
            "airtop_profile": "={{ $('Unify Params').item.json.airtop_profile }}",
            "company_linkedin": "={{ $json.company_linkedin }}"
          },
          "schema": [
            {
              "id": "company_linkedin",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_linkedin",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "airtop_profile",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "airtop_profile",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "98ce1d1a-00db-4875-b8f6-8d57435dda3c",
      "name": "Calclate ICP",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        1120,
        60
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "CYDemwO42LTGiiPR",
          "cachedResultName": "AIRTOP \u2014 Company ICP scoring"
        },
        "workflowInputs": {
          "value": {
            "airtop_profile": "={{ $('Unify Params').item.json.airtop_profile }}",
            "company_linkedin": "={{ $json.company_linkedin }}"
          },
          "schema": [
            {
              "id": "company_linkedin",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_linkedin",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "airtop_profile",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "airtop_profile",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2d1b8c05-cba5-4c93-8418-ce0e8585c5a0",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        -240
      ],
      "parameters": {
        "width": 440,
        "height": 460,
        "content": "## Input Parameters\nRun this workflow using a form or from another workflow"
      },
      "typeVersion": 1
    },
    {
      "id": "6e7f3e1c-ebb2-4367-8090-59fc6a25ca43",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        -240
      ],
      "parameters": {
        "color": 4,
        "width": 500,
        "height": 460,
        "content": "## Enrich Company Data\nExtract all information and calculate ICP score"
      },
      "typeVersion": 1
    },
    {
      "id": "ce7271c5-9580-4ca4-8092-c5c0f4697e1e",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        -240
      ],
      "parameters": {
        "color": 5,
        "width": 540,
        "height": 460,
        "content": "## Find Company LinkedIn URL\nIf the link isn't found on the page, search for it externally"
      },
      "typeVersion": 1
    },
    {
      "id": "7a9c617e-eb50-4e9c-b34f-3401c840e658",
      "name": "LinkedIn link exists?",
      "type": "n8n-nodes-base.if",
      "position": [
        440,
        -40
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "2fdc9590-6755-45b9-bfce-69275d04e414",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.company_linkedin }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "6107d9a7-e216-4cda-bfdd-4b4df4fbf0d2",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -940,
        -580
      ],
      "parameters": {
        "width": 860,
        "height": 1200,
        "content": "README\n\n# Automating Company Data Enrichment and ICP Calculation\n\n## Use Case\n\nThis automation identifies a company's LinkedIn profile, extracts key business data, and calculates an ICP (Ideal Customer Profile) score to qualify and enrich company records. It is perfect for sales teams, data enrichment pipelines, and CRM integrations.\n\n## What This Automation Does\n\n### Input Parameters\n\n- **Company domain**: The company's website domain (e.g., `example.com`).\n- **Airtop Profile (connected to LinkedIn)**: Your [Airtop Profile](https://portal.airtop.ai/browser-profiles) authenticated for LinkedIn.\n- **Company LinkedIn** *(optional)*: If already known, skips search.\n\n### Output Includes\n\n- Verified LinkedIn company URL (if not provided)\n- Company profile (name, tagline, website, location, about)\n- Scale metrics (employee count and bracket)\n- Classification (automation agency status, AI focus, technical level)\n- ICP score with justifications\n- Structured JSON object with all values merged\n\n## How It Works\n\n1. **LinkedIn Detection**: If not provided, attempts to locate the LinkedIn URL using website scraping or search.\n2. **Data Extraction**: Uses Airtop to gather structured data from the company\u2019s LinkedIn profile.\n3. **ICP Scoring**: Applies a scoring rubric based on AI/tech orientation, scale, agency status, and geography.\n4. **Merge Results**: All data components are merged into a unified output.\n\n## Setup Requirements\n\n1. [Airtop API Key](https://portal.airtop.ai/api-keys)\n2. [Airtop Profile](https://portal.airtop.ai/browser-profiles) with LinkedIn authentication\n\n## Next Steps\n\n- **Combine with Person Enrichment**: Pair with workflows that enrich individuals tied to the company.\n- **Sync to CRM**: Connect the output to your CRM for record enrichment or scoring fields.\n- **Adjust ICP Scoring Logic**: Modify the rubric for your organization's ICP model."
      },
      "typeVersion": 1
    },
    {
      "id": "653010d1-8c28-4610-aa8a-8acb7df5c4af",
      "name": "Is valid LinkedIn link?",
      "type": "n8n-nodes-base.filter",
      "position": [
        800,
        -100
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "55e08410-2042-4a1f-b833-06bf79afc964",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.company_linkedin }}",
              "rightValue": "linkedin.com/company"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e2b80e65-7143-4f5a-85a1-11a5722bdad1",
      "name": "Unify Params",
      "type": "n8n-nodes-base.set",
      "position": [
        220,
        -40
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "f7e835ee-9c35-4461-83fa-23dbcea60e95",
              "name": "company_domain",
              "type": "string",
              "value": "={{ $json[\"Company domain\"] }}"
            },
            {
              "id": "fc73097b-1fae-4897-a951-70871366401d",
              "name": "airtop_profile",
              "type": "string",
              "value": "={{ $json[\"Airtop Profile (connected to Linkedin)\"] }}"
            },
            {
              "id": "9de7678e-d26f-4457-b7c3-159e6a3ec5ae",
              "name": "company_linkedin",
              "type": "string",
              "value": "={{ $json[\"Company LinkedIn\"] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "78ab0589-075f-4788-96be-c39968a569e1",
  "connections": {
    "Calclate ICP": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Unify Params": {
      "main": [
        [
          {
            "node": "LinkedIn link exists?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Unify Params",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LinkedIn link exists?": {
      "main": [
        [
          {
            "node": "Is valid LinkedIn link?",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Extract company LinkedIn url",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is valid LinkedIn link?": {
      "main": [
        [
          {
            "node": "Extract Company Information",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          },
          {
            "node": "Calclate ICP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Company Information": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract company LinkedIn url": {
      "main": [
        [
          {
            "node": "Is valid LinkedIn link?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Unify Params",
            "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

This automation identifies a company's LinkedIn profile, extracts key business data, and calculates an ICP (Ideal Customer Profile) score to qualify and enrich company records. It is perfect for sales teams, data enrichment pipelines, and CRM integrations. Company domain: The…

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

More General workflows → · Browse all categories →

Related workflows

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

General

This automation enriches a person’s data using LinkedIn and calculates an Ideal Customer Profile (ICP) score based on their professional presence. It is particularly useful for lead qualification, con

Form Trigger, Execute Workflow Trigger
General

Automatically responding to X (formerly Twitter) posts can help you engage with potential customers at scale, saving time while maintaining a personal touch.

Execute Workflow Trigger, Airtop, Form Trigger
General

Post on X. Uses airtop, executeWorkflowTrigger, stickyNote, formTrigger. Event-driven trigger; 9 nodes.

Airtop, Execute Workflow Trigger, Form Trigger
General

Seamlessly automate posting to X using Airtop and Make.

Airtop, Execute Workflow Trigger, Form Trigger
General

This automation scores companies based on their LinkedIn profile using custom Ideal Customer Profile (ICP) criteria. It’s ideal for qualifying B2B leads and prioritizing outreach based on fit.

Form Trigger, Airtop, Execute Workflow Trigger