{
  "id": "Vx1gBwunQwoW8r3w",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Resume Intelligence and Data Mining using Decodo with GPT-4o-mini",
  "tags": [
    {
      "id": "Kujft2FOjmOVQAmJ",
      "name": "Engineering",
      "createdAt": "2025-04-09T01:31:00.558Z",
      "updatedAt": "2025-04-09T01:31:00.558Z"
    },
    {
      "id": "ZOwtAMLepQaGW76t",
      "name": "Building Blocks",
      "createdAt": "2025-04-13T15:23:40.462Z",
      "updatedAt": "2025-04-13T15:23:40.462Z"
    },
    {
      "id": "ddPkw7Hg5dZhQu2w",
      "name": "AI",
      "createdAt": "2025-04-13T05:38:08.053Z",
      "updatedAt": "2025-04-13T05:38:08.053Z"
    },
    {
      "id": "rKOa98eAi3IETrLu",
      "name": "HR",
      "createdAt": "2025-04-13T04:59:30.580Z",
      "updatedAt": "2025-04-13T04:59:30.580Z"
    }
  ],
  "nodes": [
    {
      "id": "d10ea979-7f28-4236-ab7e-a3f347c88c25",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -144,
        128
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "24e68c9b-2b5c-4098-97bb-90e294b74520",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        320
      ],
      "parameters": {
        "width": 496,
        "height": 688,
        "content": "## Purpose\n\nAdvanced talent intelligence platform that performs data mining on the JSON resume-based profiles to generate comprehensive recruitment insights and predictive job matching analytics.\n\n### Flow Summary:\n\n- Input: Resume URL\n\n- Decodo: Performs comprehensive web scraping of candidate resume\n\n- OpenAI GPT-4o-mini: Extracts structured profile data with advanced parsing\n\n- Advanced Data Mining Engine: Performs deep analytics including skills analysis, experience intelligence, cultural fit assessment, career trajectory insights, and competitive advantage identification\n\n- Advanced Summarization Engine: Performs the comprehensive and abstraction summarization of the LinkedIn profile content\n\n- Output: Comprehensive JSON with structured profile data and advanced recruitment intelligence ready for ATS, CRM systems, or talent analytics platforms.\n\n### Use Case:\nIdeal for data-driven recruiters, talent acquisition teams, HR analytics professionals, and recruitment technology platforms requiring sophisticated candidate analysis and predictive matching capabilities "
      },
      "typeVersion": 1
    },
    {
      "id": "8a99dc3d-6c39-4ee6-a855-b8775fdd004d",
      "name": "Decodo",
      "type": "@decodo/n8n-nodes-decodo.decodo",
      "position": [
        352,
        128
      ],
      "parameters": {
        "geo": "={{ $json.geo }}",
        "url": "={{ $json.url }}"
      },
      "credentials": {
        "decodoApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "dd017b60-e717-454f-bc10-0bd4a71906b1",
      "name": "Set the Input Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        112,
        128
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "01a2dade-6674-4158-8303-97a1151d3965",
              "name": "url",
              "type": "string",
              "value": "https://registry.jsonresume.org/thomasdavis?theme=academic-cv-lite"
            },
            {
              "id": "82a8ccde-dc3c-4ed1-b81e-bbcf44a2cf11",
              "name": "geo",
              "type": "string",
              "value": "India"
            },
            {
              "id": "b8104d33-8d7a-415c-935b-1e8432b8a756",
              "name": "jobDescription",
              "type": "string",
              "value": "Senior Software Engineer with 5+ years of experience in React, Node.js, and cloud technologies. Must have experience with AWS, Docker, and agile development methodologies. Looking for someone who can lead technical projects and mentor junior developers."
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "80ce7dc5-b8d1-4a76-a991-f982c6bb5113",
      "name": "Structured Data Extractor",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        720,
        -208
      ],
      "parameters": {
        "text": "=Parse and build content using {{ $json.data.results[0].content }} in JSON Resume Schema.\n\nDo not output your own response or thoughts or suggestions. \n\nNeed to output a proper fully formatted JSON response.",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "You are an expert resume parser"
            }
          ]
        },
        "promptType": "define"
      },
      "retryOnFail": true,
      "typeVersion": 1.7,
      "alwaysOutputData": true
    },
    {
      "id": "5b8db369-beaf-4380-96bb-1c0270b49710",
      "name": "Advanced Data Mining & Profile-Job Analysis",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        720,
        176
      ],
      "parameters": {
        "text": "=Perform advanced data mining analysis on the candidate profile and job description.\n\nCandidate Profile:\n{{ $json.data.results[0].content }}\n\nJob Description:\n{{ $('Set the Input Fields').item.json.jobDescription }}\n\nConduct comprehensive data mining including:\n\n1. SKILLS ANALYSIS:\n- Technical skills extraction and categorization\n- Skill level assessment (Beginner/Intermediate/Advanced/Expert)\n- Skills gap analysis against job requirements\n- Transferable skills identification\n\n2. EXPERIENCE INTELLIGENCE:\n- Career progression pattern analysis\n- Industry experience depth assessment\n- Leadership and management experience evaluation\n- Project complexity and scale analysis\n\n3. CULTURAL & CONTEXTUAL FIT:\n- Company culture alignment indicators\n- Work style preferences inference\n- Communication style analysis\n- Learning agility indicators\n\n4. CAREER TRAJECTORY INSIGHTS:\n- Career growth velocity\n- Job stability patterns\n- Promotion frequency analysis\n- Industry transition analysis\n\n5. COMPETITIVE ADVANTAGES:\n- Unique selling points identification\n- Market positioning analysis\n- Salary expectation indicators\n- Availability timeline assessment\n\nOutput comprehensive JSON with data-driven insights for recruitment decisions.\n\nDo not output your own response or thoughts or suggestions. \n\nNeed to output a proper fully formatted JSON response.",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "You are a senior data scientist and HR analytics expert specializing in talent intelligence and predictive recruitment analytics."
            }
          ]
        },
        "promptType": "define"
      },
      "retryOnFail": true,
      "typeVersion": 1.7,
      "alwaysOutputData": true
    },
    {
      "id": "3a48d42b-5412-4ea0-b9e8-99b87f5c4a3f",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        -144
      ],
      "parameters": {
        "color": 7,
        "width": 384,
        "height": 208,
        "content": "![Logo](https://cdn.brandfetch.io/idIeG9_eXK/w/100/h/100/theme/dark/icon.jpeg?c=1bxid64Mup7aczewSAYMX&t=1756483136894)\n\nOpenAI GPT-4o-mini for the Structured Data Extraction and Data Mining Purposes"
      },
      "typeVersion": 1
    },
    {
      "id": "1016f828-0030-4a00-8101-b81781ed505c",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        528,
        -288
      ],
      "parameters": {
        "color": 4,
        "width": 608,
        "height": 1104,
        "content": "## Data Miner"
      },
      "typeVersion": 1
    },
    {
      "id": "0b584256-8d98-445b-9d83-6c3bc7fdc002",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1376,
        160
      ],
      "parameters": {
        "numberInputs": 3
      },
      "typeVersion": 3.2
    },
    {
      "id": "ffb0413b-e293-4f68-8fd3-a6ccd9e9cf19",
      "name": "Append or update row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1600,
        176
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1oNScKT5lCIFJTXZ006vAu5IJEC_nWHTOil56tvB3JYU/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1oNScKT5lCIFJTXZ006vAu5IJEC_nWHTOil56tvB3JYU",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1oNScKT5lCIFJTXZ006vAu5IJEC_nWHTOil56tvB3JYU/edit?usp=drivesdk",
          "cachedResultName": "LinkedIn Talent Intelligence"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "243a19c7-12ca-409f-841e-fd6db293f094",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        784,
        336
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a418dd98-f39c-4fe8-8d19-8aab9953eeef",
      "name": "OpenAI Chat Model for Structured Data Extract",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        736,
        -48
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "bef20961-1e35-422d-b0d4-edb4be0ee908",
      "name": "Summarizer",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        736,
        480
      ],
      "parameters": {
        "text": "=Perform abstractive and comprehensive summarize of the following  {{ $json.data.results[0].content }} in JSON Resume Schema",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "You are an expert resume summarizer"
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.7,
      "alwaysOutputData": true
    },
    {
      "id": "b5bb3d0a-6acc-46a6-9485-b38fed0f2af1",
      "name": "OpenAI Chat Model for Summarizer",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        704,
        656
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "69ba6eae-a116-4c46-8e28-a98c6b189b04",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        912,
        656
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"abstractive_summarizer\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n      \"comprehensive_summarizer\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t}\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "c488826d-a4a6-4aad-872f-c9c835447545",
      "name": "Read/Write Files from Disk",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        1584,
        -176
      ],
      "parameters": {
        "options": {},
        "fileName": "=C:\\\\{{ $('Extract Structured JSON').item.json.basics.name }}.json",
        "operation": "write",
        "dataPropertyName": "=data"
      },
      "typeVersion": 1
    },
    {
      "id": "3737445a-f4d8-477e-a9ae-7d6d814b1232",
      "name": "Make Binary",
      "type": "n8n-nodes-base.function",
      "position": [
        1376,
        -176
      ],
      "parameters": {
        "functionCode": "items[0].binary = {\n  data: {\n    data: new Buffer(JSON.stringify(items[0].json, null, 2)).toString('base64')\n  }\n};\nreturn items;"
      },
      "typeVersion": 1
    },
    {
      "id": "64dd716d-8891-478a-ac86-6f1b4e1fb8a5",
      "name": "Extract Structured JSON",
      "type": "n8n-nodes-base.code",
      "position": [
        1184,
        -32
      ],
      "parameters": {
        "jsCode": "let text =  $input.first().json.text;\nconst output = [];\n\n// Remove ```json ... ``` or ``` ... ``` wrappers\ntext = text\n      .replace(/```json\\s*/gi, '')\n      .replace(/```/g, '')\n      .trim();\n\n// Parse the cleaned JSON text\nconst parsed = JSON.parse(text);\noutput.push({ json: parsed });\n\nreturn output;"
      },
      "typeVersion": 2
    },
    {
      "id": "860a4040-2915-4236-a03c-e547eff14d74",
      "name": "Extract formatted JSON",
      "type": "n8n-nodes-base.code",
      "position": [
        1152,
        176
      ],
      "parameters": {
        "jsCode": "let text =  $input.first().json.text;\nconst output = [];\n\n// Remove ```json ... ``` or ``` ... ``` wrappers\ntext = text\n      .replace(/```json\\s*/gi, '')\n      .replace(/```/g, '')\n      .trim();\n\n// Parse the cleaned JSON text\nconst parsed = JSON.parse(text);\noutput.push({ json: parsed });\n\nreturn output;"
      },
      "typeVersion": 2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "865efb08-4a07-47d9-ab1c-c14f09d7ed3c",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Append or update row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Decodo": {
      "main": [
        [
          {
            "node": "Structured Data Extractor",
            "type": "main",
            "index": 0
          },
          {
            "node": "Advanced Data Mining & Profile-Job Analysis",
            "type": "main",
            "index": 0
          },
          {
            "node": "Summarizer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summarizer": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Make Binary": {
      "main": [
        [
          {
            "node": "Read/Write Files from Disk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Advanced Data Mining & Profile-Job Analysis",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Set the Input Fields": {
      "main": [
        [
          {
            "node": "Decodo",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract formatted JSON": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Extract Structured JSON": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          },
          {
            "node": "Make Binary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Summarizer",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Data Extractor": {
      "main": [
        [
          {
            "node": "Extract Structured JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append or update row in sheet": {
      "main": [
        []
      ]
    },
    "OpenAI Chat Model for Summarizer": {
      "ai_languageModel": [
        [
          {
            "node": "Summarizer",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Set the Input Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Advanced Data Mining & Profile-Job Analysis": {
      "main": [
        [
          {
            "node": "Extract formatted JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model for Structured Data Extract": {
      "ai_languageModel": [
        [
          {
            "node": "Structured Data Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}