AutomationFlowsWeb Scraping › Evaluate Linkedin Profiles with Apify and Groq Llama Chat Model

Evaluate Linkedin Profiles with Apify and Groq Llama Chat Model

ByDhia Kassab @meddhiakassab on n8n.io

This workflow collects a LinkedIn profile URL via an n8n form, scrapes the public profile data using the Apify LinkedIn Profile Scraper actor, analyzes the results with a Groq-hosted Llama model, and displays an HTML-formatted evaluation back to the user. Receives a LinkedIn…

Event trigger★★★★☆ complexityAI-powered12 nodesForm TriggerHTTP RequestChain LlmGroq ChatForm
Web Scraping Trigger: Event Nodes: 12 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Chainllm → 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": "PVXqzQSEj2gjd7W4",
  "name": "LinkedIn Profile Evaluator",
  "tags": [],
  "nodes": [
    {
      "id": "05c43f9b-1682-4360-a2a9-309d49e9784d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        32
      ],
      "parameters": {
        "width": 480,
        "height": 912,
        "content": "## LinkedIn Profile Evaluator\n\n### How it works\n\nThis workflow evaluates a LinkedIn profile submitted through a form. It prepares the required API keys and profile URL, sends the URL to Apify to retrieve profile data, then uses a Groq-powered AI chain to analyze the profile. The final evaluation is displayed back to the user.\n\n### Setup steps\n\n- Configure the form trigger to collect the LinkedIn profile URL from the user.\n- Add valid Apify and Groq API keys in the Prepare API Keys node or replace them with secure n8n credentials/environment variables.\n- Verify the Apify HTTP request URL, actor, request method, and payload match the LinkedIn scraping actor you intend to use.\n- Configure the Groq chat model credentials and model settings for the AI analysis node.\n\n### Customization\n\nYou can adjust the AI prompt or Groq model to change the evaluation criteria, such as focusing on recruiting appeal, sales prospecting quality, personal branding, or profile completeness."
      },
      "typeVersion": 1
    },
    {
      "id": "592ae68b-fcf1-4983-953c-3738d74b419f",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        32
      ],
      "parameters": {
        "color": 7,
        "width": 416,
        "height": 336,
        "content": "## Collect profile input\n\nStarts the workflow when the user submits the form, then prepares the Apify API key, Groq API key, and submitted LinkedIn profile URL for downstream steps."
      },
      "typeVersion": 1
    },
    {
      "id": "a462f612-531a-40e8-ade9-b4d51610f982",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1008,
        32
      ],
      "parameters": {
        "color": 7,
        "height": 336,
        "content": "## Fetch LinkedIn data\n\nSends the prepared LinkedIn profile URL to the Apify API to retrieve profile data for evaluation."
      },
      "typeVersion": 1
    },
    {
      "id": "069bf3ac-3b06-4056-8809-73a874998beb",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        32
      ],
      "parameters": {
        "color": 7,
        "width": 352,
        "height": 544,
        "content": "## Analyze profile with AI\n\nUses an LLM chain backed by the Groq chat model to analyze the fetched LinkedIn profile data and generate an evaluation."
      },
      "typeVersion": 1
    },
    {
      "id": "2aa568e4-3f07-4e5c-afd4-4af2407562a8",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1664,
        0
      ],
      "parameters": {
        "color": 7,
        "height": 384,
        "content": "## Display evaluation result\n\nShows the generated LinkedIn profile evaluation back to the user in a form-style output step."
      },
      "typeVersion": 1
    },
    {
      "id": "32ee03c0-fd59-406b-94d4-85031300fa63",
      "name": "When Profile Form Submitted",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        608,
        208
      ],
      "parameters": {
        "options": {
          "buttonLabel": "Evaluate Profile"
        },
        "formTitle": "LinkedIn Profile Evaluator",
        "formFields": {
          "values": [
            {
              "fieldLabel": "LinkedIn Profile URL",
              "placeholder": "https://www.linkedin.com/in/example",
              "requiredField": true
            }
          ]
        },
        "formDescription": "Paste a public LinkedIn profile URL to get an AI-generated evaluation."
      },
      "typeVersion": 2.2
    },
    {
      "id": "0af9c56a-fda0-42e5-830a-a976bfe3a031",
      "name": "Set API Keys and Profile URL",
      "type": "n8n-nodes-base.set",
      "position": [
        832,
        208
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "22222222-2222-4222-8222-222222222222",
              "name": "apifyApiKey",
              "type": "string",
              "value": "YOUR_APIFY_API_KEY_HERE"
            },
            {
              "id": "33333333-3333-4333-8333-333333333333",
              "name": "groqApiKey",
              "type": "string",
              "value": "YOUR_GROQ_API_KEY_HERE"
            },
            {
              "id": "44444444-4444-4444-8444-444444444444",
              "name": "profileUrl",
              "type": "string",
              "value": "={{ $json['LinkedIn Profile URL'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "37f88f2c-03d9-4ca5-9331-e6f011b4a0d3",
      "name": "Submit Profile to Apify",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1056,
        208
      ],
      "parameters": {
        "url": "=https://api.apify.com/v2/acts/harvestapi~linkedin-profile-scraper/run-sync-get-dataset-items?token={{ $json.apifyApiKey }}",
        "method": "POST",
        "options": {
          "timeout": 60000
        },
        "jsonBody": "={{ JSON.stringify({ urls: [$json.profileUrl] }) }}",
        "sendBody": true,
        "specifyBody": "json"
      },
      "typeVersion": 4.2
    },
    {
      "id": "6e71fcd2-cb6d-4342-90bd-a14842d31290",
      "name": "AI Profile Analysis",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1328,
        208
      ],
      "parameters": {
        "text": "=You are an expert LinkedIn profile reviewer (recruiter + personal branding consultant). Evaluate the following LinkedIn profile data and return your evaluation as clean HTML using <h2> for section titles and <p>/<ul><li> for content. Do not include <html>, <head>, or <body> tags \u2014 just the inner content fragment.\n\nStructure your evaluation into these sections, in this order:\n<h2>Overall Summary</h2> \u2014 2-3 sentence high-level impression.\n<h2>Headline & About Section</h2> \u2014 quality and clarity assessment.\n<h2>Experience</h2> \u2014 strength and relevance of work history.\n<h2>Education</h2> \u2014 relevance and presentation.\n<h2>Skills</h2> \u2014 strengths and notable gaps.\n<h2>Overall Score</h2> \u2014 give a score out of 10 with one sentence justification.\n<h2>Top 3 Recommendations</h2> \u2014 actionable improvements, as a bullet list.\n\nIf the profile data is empty or scraping failed, say clearly that the profile could not be found or is private, and suggest checking the URL.\n\nProfile data (raw JSON):\n{{ JSON.stringify($json, null, 2) }}",
        "promptType": "define"
      },
      "typeVersion": 1.5
    },
    {
      "id": "3584f523-9b57-43c9-bdf1-15f717a884c6",
      "name": "Initialize Groq Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGroq",
      "position": [
        1376,
        432
      ],
      "parameters": {
        "model": "meta-llama/llama-4-scout-17b-16e-instruct",
        "options": {}
      },
      "credentials": {
        "groqApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "368826e1-aa1d-4fdc-b824-e5d6a45237a3",
      "name": "Show Profile Evaluation Results",
      "type": "n8n-nodes-base.form",
      "position": [
        1712,
        208
      ],
      "parameters": {
        "options": {
          "customCss": ":root {\n\t--font-family: 'Open Sans', sans-serif;\n\t--font-weight-normal: 400;\n\t--font-weight-bold: 600;\n\t--font-size-body: 12px;\n\t--font-size-label: 14px;\n\t--font-size-test-notice: 12px;\n\t--font-size-input: 14px;\n\t--font-size-header: 20px;\n\t--font-size-paragraph: 14px;\n\t--font-size-link: 12px;\n\t--font-size-error: 12px;\n\t--font-size-html-h1: 28px;\n\t--font-size-html-h2: 20px;\n\t--font-size-html-h3: 16px;\n\t--font-size-html-h4: 14px;\n\t--font-size-html-h5: 12px;\n\t--font-size-html-h6: 10px;\n\t--font-size-subheader: 14px;\n\n\t/* Colors */\n\t--color-background: #fbfcfe;\n\t--color-test-notice-text: #e6a23d;\n\t--color-test-notice-bg: #fefaf6;\n\t--color-test-notice-border: #f6dcb7;\n\t--color-card-bg: #ffffff;\n\t--color-card-border: #dbdfe7;\n\t--color-card-shadow: rgba(99, 77, 255, 0.06);\n\t--color-link: #7e8186;\n\t--color-header: #525356;\n\t--color-label: #555555;\n\t--color-input-border: #dbdfe7;\n\t--color-input-text: #71747A;\n\t--color-focus-border: rgb(90, 76, 194);\n\t--color-submit-btn-bg: #ff6d5a;\n\t--color-submit-btn-text: #ffffff;\n\t--color-error: #ea1f30;\n\t--color-required: #ff6d5a;\n\t--color-clear-button-bg: #7e8186;\n\t--color-html-text: #555;\n\t--color-html-link: #ff6d5a;\n\t--color-header-subtext: #7e8186;\n\n\t/* Border Radii */\n\t--border-radius-card: 8px;\n\t--border-radius-input: 6px;\n\t--border-radius-clear-btn: 50%;\n\t--card-border-radius: 8px;\n\n\t/* Spacing */\n\t--padding-container-top: 24px;\n\t--padding-card: 24px;\n\t--padding-test-notice-vertical: 12px;\n\t--padding-test-notice-horizontal: 24px;\n\t--margin-bottom-card: 16px;\n\t--padding-form-input: 12px;\n\t--card-padding: 24px;\n\t--card-margin-bottom: 16px;\n\n\t/* Dimensions */\n\t--container-width: 448px;\n\t--submit-btn-height: 48px;\n\t--checkbox-size: 18px;\n\n\t/* Others */\n\t--box-shadow-card: 0px 4px 16px 0px var(--color-card-shadow);\n\t--opacity-placeholder: 0.5;\n}",
          "formTitle": "Profile Evaluation Results"
        },
        "operation": "completion",
        "completionTitle": "Profile Evaluation Results",
        "completionMessage": "={{ $json.text }}"
      },
      "typeVersion": 1
    },
    {
      "id": "7d5f1fe0-7461-4c9a-b3b2-74cc31277bd7",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        576,
        416
      ],
      "parameters": {
        "width": 672,
        "height": 512,
        "content": "# This is a demo showing how to use the workflow in development mode, from entering a LinkedIn profile link to viewing a detailed evaluation broken down into sections, along with an attached score\n\n@[youtube](fboaQrR2o8w)\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "29a4cf7f-1081-433a-a770-46475b26ede5",
  "nodeGroups": [],
  "connections": {
    "AI Profile Analysis": {
      "main": [
        [
          {
            "node": "Show Profile Evaluation Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Submit Profile to Apify": {
      "main": [
        [
          {
            "node": "AI Profile Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Initialize Groq Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Profile Analysis",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "When Profile Form Submitted": {
      "main": [
        [
          {
            "node": "Set API Keys and Profile URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set API Keys and Profile URL": {
      "main": [
        [
          {
            "node": "Submit Profile to Apify",
            "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

This workflow collects a LinkedIn profile URL via an n8n form, scrapes the public profile data using the Apify LinkedIn Profile Scraper actor, analyzes the results with a Groq-hosted Llama model, and displays an HTML-formatted evaluation back to the user. Receives a LinkedIn…

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

More Web Scraping workflows → · Browse all categories →

Related workflows

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

Web Scraping

Travel agencies, freelance travel planners, or anyone who wants to automate personalized trip planning by combining real-time hotel and flight data with AI-generated recommendations. Collects travel d

Form Trigger, @Apify/N8N Nodes Apify, HTTP Request +4
Web Scraping

The Recap AI - Nano Banana Static Ad Spinner. Uses formTrigger, @mendable/n8n-nodes-firecrawl, chainLlm, lmChatGoogleGemini. Event-driven trigger; 31 nodes.

Form Trigger, @Mendable/N8N Nodes Firecrawl, Chain Llm +5
Web Scraping

viral-cat-video-creator. Uses formTrigger, chainLlm, lmChatMistralCloud, outputParserStructured. Event-driven trigger; 22 nodes.

Form Trigger, Chain Llm, Lm Chat Mistral Cloud +4
Web Scraping

[VICTOR] Google Maps Extractor. Uses formTrigger, outputParserStructured, lmChatOpenAi, httpRequest. Event-driven trigger; 21 nodes.

Form Trigger, Output Parser Structured, OpenAI Chat +5
Web Scraping

This SEO Keyword Monitoring workflow template is perfect for SEO professionals, digital marketing agencies, website owners, and content strategists who need to track their search rankings and get acti

HTTP Request, Form Trigger, Groq Chat +2