{
  "name": "Enrich LinkedIn profiles with Apollo and display candidate pages in the browser",
  "nodes": [
    {
      "id": "694b75fc-cb9f-45d6-b1a7-6153ddb57bdd",
      "name": "Receive LinkedIn URL via Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -848,
        512
      ]
    },
    {
      "id": "24433e6b-4ac3-4848-90a8-5f3af0752e61",
      "name": "Fetch Profile from Apollo API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -576,
        512
      ]
    },
    {
      "id": "4781e833-0d78-410f-8f5c-d010933e7329",
      "name": "Normalize & Extract Profile Fields",
      "type": "n8n-nodes-base.code",
      "position": [
        -208,
        512
      ]
    },
    {
      "id": "40e8cb6b-ef61-4f22-87cc-4184ca9af63b",
      "name": "Build HTML Profile Cards",
      "type": "n8n-nodes-base.code",
      "position": [
        128,
        512
      ]
    },
    {
      "id": "3ad6eded-fcba-4305-bf5e-5f0ee789fb4c",
      "name": "Return HTML Profile Page",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        336,
        512
      ]
    },
    {
      "id": "30e3b485-ed0b-48e8-aebb-6886be7f4cae",
      "name": "Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1520,
        208
      ],
      "parameters": {
        "width": 520,
        "height": 804,
        "content": "## 🔍 Apollo LinkedIn Profile Viewer\n\n### How it works\nThis workflow accepts a LinkedIn profile URL via a POST webhook request and returns a fully rendered HTML page displaying enriched candidate profi"
      }
    },
    {
      "id": "f334da27-2eed-40dd-a826-b52b46086fce",
      "name": "Section – Webhook Entry",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -944,
        288
      ],
      "parameters": {
        "width": 260,
        "height": 200,
        "content": "## 📥 Webhook Entry Point\nReceives a POST request containing a `linkedin_url` in the body. This is the sole trigger for the workflow — no scheduler or manual trigger is used."
      }
    },
    {
      "id": "1a7cf214-3ba9-4866-9615-ae88544a2e12",
      "name": "Warning – Apollo API Key",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        736
      ],
      "parameters": {
        "width": 280,
        "height": 180,
        "content": "⚠️ **Apollo API Key Required**\nReplace the hardcoded `x-api-key` header value with your own Apollo.io API key. Using an invalid or expired key will cause this node to fail silently or return empty dat"
      }
    },
    {
      "id": "b583ab77-39cf-4a8a-85b7-10cc0deb9cc5",
      "name": "Section – Data Processing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -512,
        288
      ],
      "parameters": {
        "width": 420,
        "height": 200,
        "content": "## 🔄 Data Processing\nNormalizes the raw Apollo API response and maps person and organization fields into a clean flat object. Errors are suppressed — if no `person` object is returned, the node output"
      }
    },
    {
      "id": "fd12f228-2c47-4a5b-b949-b15cbff81292",
      "name": "Section – HTML Output",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        16,
        288
      ],
      "parameters": {
        "width": 420,
        "height": 200,
        "content": "## 🖼️ HTML Rendering & Response\nGenerates a styled multi-card HTML page from the normalized profile data, then returns it directly as the webhook HTTP response. The output can be opened in any browser"
      }
    }
  ],
  "connections": {
    "Build HTML Profile Cards": {
      "main": [
        [
          {
            "node": "Return HTML Profile Page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Profile from Apollo API": {
      "main": [
        [
          {
            "node": "Normalize & Extract Profile Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receive LinkedIn URL via Webhook": {
      "main": [
        [
          {
            "node": "Fetch Profile from Apollo API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Normalize & Extract Profile Fields": {
      "main": [
        [
          {
            "node": "Build HTML Profile Cards",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}