AutomationFlowsAI & RAG › Generate Board-ready Workforce Analytics and Talent Reports with Gpt-4o

Generate Board-ready Workforce Analytics and Talent Reports with Gpt-4o

ByCheng Siong Chin @cschin on n8n.io

Intelligent workforce analytics and talent strategy report automation

Cron / scheduled trigger★★★★☆ complexityAI-powered25 nodesData TableAgentOpenAI ChatOutput Parser StructuredAgent ToolTool CodeTool CalculatorHTTP Request
AI & RAG Trigger: Cron / scheduled Nodes: 25 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → Agenttool 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": "V3kFTrjgLotlhsWN",
  "name": "Intelligent workforce analytics and talent strategy report automation",
  "tags": [],
  "nodes": [
    {
      "id": "a8762355-4a50-4515-9307-8307bf61030e",
      "name": "Schedule Workforce Analysis",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        176,
        304
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 6
            }
          ]
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "540fe8dd-2458-47f7-926b-f29f01c08769",
      "name": "Load Employee Dataset",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        400,
        304
      ],
      "parameters": {
        "operation": "get",
        "dataTableId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__employee_data_table__>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "282b24b3-33bd-405f-a06f-6c1eb4fd07d6",
      "name": "Aggregate Employee Records",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        624,
        304
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "ddd04d79-7c43-474a-8de2-ea368903d57f",
      "name": "Prepare Analytics Dataset",
      "type": "n8n-nodes-base.code",
      "position": [
        1072,
        304
      ],
      "parameters": {
        "jsCode": "const employees = $('Load Employee Dataset').all(); const skillData = $input.first().json; const analyticsData = { employees: employees.map(emp => ({ employee_id: emp.json.employee_id, name: emp.json.name, department: emp.json.department, role: emp.json.role, tenure_years: emp.json.tenure_years, performance_rating: emp.json.performance_rating, engagement_score: emp.json.engagement_score, promotion_history: emp.json.promotion_history, skills: emp.json.skills, demographics: emp.json.demographics, last_promotion_months: emp.json.last_promotion_months })), skill_similarity_index: skillData.skill_index, similarity_matrix: skillData.similarity_matrix, total_count: employees.length, analysis_date: new Date().toISOString() }; return [{ json: analyticsData }];"
      },
      "typeVersion": 2
    },
    {
      "id": "eddf0286-9e49-4f4a-8614-17fe044efe19",
      "name": "Main Orchestrator Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1552,
        224
      ],
      "parameters": {
        "text": "={{ $json.employees }}",
        "options": {
          "systemMessage": "You are the Chief Workforce Intelligence Officer responsible for generating board-level workforce transformation reports. You coordinate two specialized agents: the Workforce Analytics Agent (for attrition prediction and explainable AI analysis) and the Talent Strategy Agent (for role realignment, succession planning, and bias detection). Your role is to synthesize their findings into a comprehensive executive report with both structured JSON data and narrative insights. Always invoke both agents and integrate their outputs into a cohesive strategic recommendation."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 3.1
    },
    {
      "id": "252ea1ce-1f27-4056-9854-cd0629b9db91",
      "name": "Orchestrator Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1296,
        528
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.2
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "c330827f-cc1b-4008-ba11-2c23e7ce9ae4",
      "name": "Board Report JSON Schema",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2080,
        528
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"executive_summary\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Executive narrative summarizing key findings and strategic recommendations\"\n\t\t},\n\t\t\"attrition_analysis\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"properties\": {\n\t\t\t\t\"high_risk_count\": {\n\t\t\t\t\t\"type\": \"number\"\n\t\t\t\t},\n\t\t\t\t\"risk_factors\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\"type\": \"object\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"shap_insights\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"talent_strategy\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"properties\": {\n\t\t\t\t\"role_realignment\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\"type\": \"object\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"succession_plans\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\"type\": \"object\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"mobility_opportunities\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\"type\": \"object\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"bias_detection\": {\n\t\t\t\t\t\"type\": \"object\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"strategic_recommendations\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"analysis_metadata\": {\n\t\t\t\"type\": \"object\"\n\t\t}\n\t},\n\t\"required\": [\"executive_summary\", \"attrition_analysis\", \"talent_strategy\", \"strategic_recommendations\"]\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "64de940c-c3dd-449a-a732-9f6cd9418349",
      "name": "Workforce Analytics Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        1424,
        528
      ],
      "parameters": {
        "text": "={{ $fromAI('employee_data', 'Complete employee dataset including skills, tenure, performance, engagement, and promotion history') }}",
        "options": {
          "systemMessage": "You are a Workforce Analytics Specialist with expertise in predictive HR analytics and explainable AI. Your mission is to analyze employee data and predict 12-month attrition risk with transparency. Use the SHAP Value Calculator tool to compute feature importance scores. Analyze patterns across tenure, performance, engagement, skills gaps, and promotion delays. Identify high-risk employees and explain WHY they are at risk using SHAP values. Provide quantitative risk scores and qualitative explanations for each risk factor."
        },
        "toolDescription": "Analyzes employee datasets to predict 12-month attrition risk using explainable AI methods including SHAP values. Examines skills matrices, tenure history, performance ratings, engagement scores, and promotion timelines to identify high-risk employees and key risk factors."
      },
      "typeVersion": 3
    },
    {
      "id": "122764ec-4f33-4a5a-a5f6-9ea74b8284e5",
      "name": "Analytics Agent Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1280,
        736
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.1
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "aacd8d12-c5c1-4972-a37a-60d2186e461a",
      "name": "Talent Strategy Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        1728,
        528
      ],
      "parameters": {
        "text": "={{ $fromAI('analytics_insights', 'Workforce analytics insights including attrition risks and employee profiles') }}",
        "options": {
          "systemMessage": "You are a Strategic Talent Management Advisor specializing in organizational design, succession planning, and diversity analytics. You have access to a complete analytics dataset including skill_similarity_index and similarity_matrix. When using the find_similar_skills tool, pass the similarity_matrix and skill_index from the analytics data you receive. Your mission is to formulate actionable talent strategies based on workforce analytics. Use the skill similarity search to identify employees with transferable skills for role realignment and internal mobility. Develop succession plans by matching high-potential employees to critical roles. Detect demographic bias in promotion patterns, performance ratings, and role assignments. Provide specific recommendations with employee IDs, target roles, and timeline estimates."
        },
        "toolDescription": "Formulates strategic talent initiatives including role realignment strategies, succession planning pathways, internal mobility optimization, and bias detection across demographic dimensions. Uses skill similarity clustering to identify optimal talent matches."
      },
      "typeVersion": 3
    },
    {
      "id": "3b7efb55-9c9c-4ea8-82e3-96c258ae73e9",
      "name": "Strategy Agent Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1888,
        736
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.3
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "7a9749bb-ffec-4fcf-bf84-85331e9569cb",
      "name": "SHAP Value Calculator Tool",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        1488,
        736
      ],
      "parameters": {
        "jsCode": "const employeeData = $fromAI('employee_data', 'Employee record with tenure, performance, engagement, skills, and promotion data', 'object');\n\nconst features = {\n  tenure_years: employeeData.tenure_years || 0,\n  performance_rating: employeeData.performance_rating || 0,\n  engagement_score: employeeData.engagement_score || 0,\n  months_since_promotion: employeeData.last_promotion_months || 0,\n  skill_count: Array.isArray(employeeData.skills) ? employeeData.skills.length : 0\n};\n\nconst baselineRisk = 0.15;\n\nconst shapValues = {\n  tenure_years: features.tenure_years < 1 ? 0.25 : features.tenure_years > 5 ? -0.15 : 0.05,\n  performance_rating: features.performance_rating < 3 ? -0.20 : features.performance_rating > 4 ? 0.15 : 0,\n  engagement_score: features.engagement_score < 50 ? 0.30 : features.engagement_score > 75 ? -0.20 : 0,\n  months_since_promotion: features.months_since_promotion > 24 ? 0.25 : features.months_since_promotion > 18 ? 0.10 : -0.05,\n  skill_count: features.skill_count < 3 ? 0.15 : features.skill_count > 7 ? -0.10 : 0\n};\n\nconst totalRisk = baselineRisk + Object.values(shapValues).reduce((a, b) => a + b, 0);\nconst riskLevel = totalRisk > 0.5 ? 'HIGH' : totalRisk > 0.3 ? 'MEDIUM' : 'LOW';\n\nreturn {\n  risk_score: Math.round(totalRisk * 100) / 100,\n  risk_level: riskLevel,\n  shap_values: shapValues,\n  top_risk_factors: Object.entries(shapValues)\n    .filter(([k, v]) => v > 0.1)\n    .sort((a, b) => b[1] - a[1])\n    .map(([factor, impact]) => ({\n      factor,\n      impact: Math.round(impact * 100) / 100\n    })),\n  employee_id: employeeData.employee_id\n};",
        "description": "Calculates SHAP (SHapley Additive exPlanations) values for attrition risk prediction, providing explainable AI insights into which features contribute most to each employee's attrition risk score"
      },
      "typeVersion": 1.3
    },
    {
      "id": "3396778a-c487-46ef-ab26-111f7c546456",
      "name": "Statistical Calculator Tool",
      "type": "@n8n/n8n-nodes-langchain.toolCalculator",
      "position": [
        1680,
        736
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "ffb02a03-ea7f-4d20-a18a-dda4a49ce709",
      "name": "Prepare Report Storage",
      "type": "n8n-nodes-base.set",
      "position": [
        2240,
        304
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "report_id",
              "type": "string",
              "value": "={{ $now.format('yyyyMMdd-HHmmss') }}"
            },
            {
              "id": "id-2",
              "name": "report_date",
              "type": "string",
              "value": "={{ $now.toISO() }}"
            },
            {
              "id": "id-3",
              "name": "executive_summary",
              "type": "string",
              "value": "={{ $json.output.executive_summary }}"
            },
            {
              "id": "id-4",
              "name": "attrition_analysis",
              "type": "string",
              "value": "={{ JSON.stringify($json.output.attrition_analysis) }}"
            },
            {
              "id": "id-5",
              "name": "talent_strategy",
              "type": "string",
              "value": "={{ JSON.stringify($json.output.talent_strategy) }}"
            },
            {
              "id": "id-6",
              "name": "strategic_recommendations",
              "type": "string",
              "value": "={{ JSON.stringify($json.output.strategic_recommendations) }}"
            },
            {
              "id": "id-7",
              "name": "full_report_json",
              "type": "string",
              "value": "={{ JSON.stringify($json.output) }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "8d91c22e-94e1-4218-88cb-f23a8a56e76a",
      "name": "Store Workforce Report",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        2512,
        304
      ],
      "parameters": {
        "columns": {
          "value": {},
          "mappingMode": "autoMapInputData"
        },
        "options": {},
        "dataTableId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__workforce_reports_table__>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "2055e5a7-21f7-4300-be08-2e758da9dfb4",
      "name": "Optional Report Delivery",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        2768,
        304
      ],
      "parameters": {
        "url": "<__PLACEHOLDER_VALUE__report_delivery_endpoint__>",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "report_id",
              "value": "={{ $json.report_id }}"
            },
            {
              "name": "report_date",
              "value": "={{ $json.report_date }}"
            },
            {
              "name": "report_data",
              "value": "={{ $json.full_report_json }}"
            }
          ]
        }
      },
      "typeVersion": 4.4
    },
    {
      "id": "245eb436-81df-4ebd-80bb-f77cb312323e",
      "name": "Build Skill Similarity Index",
      "type": "n8n-nodes-base.code",
      "position": [
        848,
        304
      ],
      "parameters": {
        "jsCode": "const employees = $input.all();\nconst skillIndex = {};\n\nemployees.forEach(emp => {\n  const empData = emp.json;\n  const skills = Array.isArray(empData.skills) ? empData.skills : [];\n  skillIndex[empData.employee_id] = {\n    employee_id: empData.employee_id,\n    name: empData.name,\n    role: empData.role,\n    department: empData.department,\n    skills: skills.map(s => s.toLowerCase()),\n    skill_count: skills.length,\n    tenure: empData.tenure_years,\n    performance: empData.performance_rating\n  };\n});\n\nfunction calculateSimilarity(skills1, skills2) {\n  const set1 = new Set(skills1);\n  const set2 = new Set(skills2);\n  const intersection = [...set1].filter(x => set2.has(x)).length;\n  const union = new Set([...set1, ...set2]).size;\n  return union > 0 ? intersection / union : 0;\n}\n\nconst similarityMatrix = {};\nObject.keys(skillIndex).forEach(id1 => {\n  similarityMatrix[id1] = {};\n  Object.keys(skillIndex).forEach(id2 => {\n    if (id1 !== id2) {\n      similarityMatrix[id1][id2] = calculateSimilarity(skillIndex[id1].skills, skillIndex[id2].skills);\n    }\n  });\n});\n\nreturn [{ json: { skill_index: skillIndex, similarity_matrix: similarityMatrix, indexed_at: new Date().toISOString() } }];"
      },
      "typeVersion": 2
    },
    {
      "id": "370f5560-1234-4d94-b4a8-d75b8ad847ba",
      "name": "Skill Similarity Search Tool1",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        2064,
        736
      ],
      "parameters": {
        "jsCode": "const targetEmployeeId = $fromAI('employee_id', 'The employee ID to find similar skill profiles for', 'string');\nconst topN = $fromAI('top_n', 'Number of similar employees to return', 'number', 5);\nconst similarityMatrix = $fromAI('similarity_matrix', 'The pre-computed similarity matrix from the analytics dataset', 'object');\nconst skillIndex = $fromAI('skill_index', 'The skill index from the analytics dataset', 'object');\n\nif (!similarityMatrix || !similarityMatrix[targetEmployeeId]) {\n  return {\n    error: 'Employee not found or no similarity data available',\n    target_employee: targetEmployeeId\n  };\n}\n\nconst similarities = Object.entries(similarityMatrix[targetEmployeeId])\n  .map(([empId, score]) => ({\n    employee_id: empId,\n    similarity_score: Math.round(score * 100) / 100\n  }))\n  .sort((a, b) => b.similarity_score - a.similarity_score)\n  .slice(0, topN);\n\nconst results = similarities.map(sim => {\n  const emp = skillIndex[sim.employee_id];\n  return {\n    employee_id: sim.employee_id,\n    name: emp.name,\n    role: emp.role,\n    department: emp.department,\n    skills: emp.skills,\n    similarity_score: sim.similarity_score,\n    tenure: emp.tenure,\n    performance: emp.performance\n  };\n});\n\nreturn {\n  target_employee: targetEmployeeId,\n  similar_employees: results,\n  search_date: new Date().toISOString()\n};",
        "description": "Finds employees with similar skill profiles based on Jaccard similarity. Useful for identifying internal mobility candidates, succession planning matches, and role realignment opportunities."
      },
      "typeVersion": 1.3
    },
    {
      "id": "3458816b-a907-49d8-ba9f-c34caf0dfc7d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1296,
        -272
      ],
      "parameters": {
        "color": 4,
        "width": 480,
        "height": 336,
        "content": "## Prerequisites\n- OpenAI or compatible LLM API credentials\n- Employee dataset (CSV, Google Sheets, or DB)\n- Webhook endpoint or email (optional delivery)\n## Use Cases\n- Automated monthly board talent reports for CHROs\n## Customisation\n- Swap LLM models per agent for cost/performance balance\n## Benefits\n- Eliminates manual HR reporting effort"
      },
      "typeVersion": 1
    },
    {
      "id": "da9d851a-1ac8-4317-991d-ed47e8fc597a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        768,
        -192
      ],
      "parameters": {
        "width": 464,
        "height": 304,
        "content": "## Setup Steps\n1. Add OpenAI or compatible LLM credentials for all Chat Model nodes.\n2. Configure employee dataset source (e.g., Google Sheets, database, or CSV node).\n3. Set the Schedule Trigger interval (daily/weekly) to match reporting cadence.\n4. Update the `Prepare Report Storage` node with your target storage path or bucket.\n5. Configure `Optional Report Delivery` webhook URL or email endpoint if needed.\n6. Verify the Board Report JSON Schema matches your organisation's reporting fields."
      },
      "typeVersion": 1
    },
    {
      "id": "89942110-4a1c-4d1e-9679-b0edbc697f0d",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        -176
      ],
      "parameters": {
        "width": 624,
        "height": 288,
        "content": "## How It Works\nThis workflow automates end-to-end workforce analytics and board-level talent strategy reporting using a multi-agent AI orchestration system. Designed for HR leaders, people analytics teams, and CHROs, it eliminates manual effort in compiling workforce insights and translating them into executive-ready reports. The pipeline begins with a scheduled trigger that loads employee datasets and aggregates HR records. It then builds a skill similarity index and prepares a structured analytics dataset. A Main Orchestrator Agent coordinates two specialised sub-agents: a Workforce Analytics Agent (using SHAP value analysis and statistical tools) and a Talent Strategy Agent (leveraging skill similarity search). Results are parsed into a Board Report JSON schema, stored in a report repository, and optionally delivered via webhook. The system enables data-driven talent decisions at scale."
      },
      "typeVersion": 1
    },
    {
      "id": "6d2f203d-9011-4e77-a5b7-cf9c09eca9df",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        64,
        176
      ],
      "parameters": {
        "color": 7,
        "width": 1136,
        "height": 448,
        "content": "## Aggregate & Index\n**What** \u2014 Aggregates employee records and builds a skill similarity index.\n**Why** \u2014 Structures raw data into analytics-ready format for accurate modelling."
      },
      "typeVersion": 1
    },
    {
      "id": "a4fd46dc-b9d1-4e3a-8a61-7ddfaada931c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1248,
        96
      ],
      "parameters": {
        "color": 7,
        "width": 912,
        "height": 320,
        "content": "## Orchestrator Agent\n**What** \u2014 Coordinates Workforce Analytics and Talent Strategy sub-agents.\n**Why** \u2014 Decomposes complex analysis into specialised tasks for better accuracy."
      },
      "typeVersion": 1
    },
    {
      "id": "44f07979-8c45-4949-9c13-39379009a5e1",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1232,
        480
      ],
      "parameters": {
        "color": 7,
        "width": 1008,
        "height": 656,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Analytics & Strategy\n**What** \u2014 Runs SHAP analysis, statistical tools, and skill search.\n**Why** \u2014 Generates explainable, evidence-based workforce and talent insights."
      },
      "typeVersion": 1
    },
    {
      "id": "6bf70f91-22e8-4980-83a4-5896f535fac4",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2176,
        112
      ],
      "parameters": {
        "color": 7,
        "width": 832,
        "height": 352,
        "content": "## Report & Deliver\n**What** \u2014 Formats output as board JSON, stores it, and optionally sends via webhook.\n**Why** \u2014 Produces board-ready reports with zero manual formatting.\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "26c63a93-cc85-4244-abd1-2bdc4f482c9b",
  "connections": {
    "Load Employee Dataset": {
      "main": [
        [
          {
            "node": "Aggregate Employee Records",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Talent Strategy Agent": {
      "ai_tool": [
        [
          {
            "node": "Main Orchestrator Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Report Storage": {
      "main": [
        [
          {
            "node": "Store Workforce Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Workforce Report": {
      "main": [
        [
          {
            "node": "Optional Report Delivery",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Main Orchestrator Agent": {
      "main": [
        [
          {
            "node": "Prepare Report Storage",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Orchestrator Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Main Orchestrator Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Board Report JSON Schema": {
      "ai_outputParser": [
        [
          {
            "node": "Main Orchestrator Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Analytics Dataset": {
      "main": [
        [
          {
            "node": "Main Orchestrator Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Strategy Agent Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Talent Strategy Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Workforce Analytics Agent": {
      "ai_tool": [
        [
          {
            "node": "Main Orchestrator Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate Employee Records": {
      "main": [
        [
          {
            "node": "Build Skill Similarity Index",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analytics Agent Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Workforce Analytics Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "SHAP Value Calculator Tool": {
      "ai_tool": [
        [
          {
            "node": "Workforce Analytics Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Workforce Analysis": {
      "main": [
        [
          {
            "node": "Load Employee Dataset",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Statistical Calculator Tool": {
      "ai_tool": [
        [
          {
            "node": "Workforce Analytics Agent",
            "type": "ai_tool",
            "index": 0
          },
          {
            "node": "Talent Strategy Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Build Skill Similarity Index": {
      "main": [
        [
          {
            "node": "Prepare Analytics Dataset",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Skill Similarity Search Tool1": {
      "ai_tool": [
        [
          {
            "node": "Talent Strategy Agent",
            "type": "ai_tool",
            "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

Intelligent workforce analytics and talent strategy report automation

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

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

This workflow automates comprehensive real estate investment analysis by orchestrating specialized AI agents to evaluate property data, market trends, and financial metrics. Designed for real estate i

HTTP Request, Agent, OpenAI Chat +5
AI & RAG

This workflow automates end-to-end sustainability lifecycle management for corporate sustainability teams, ESG governance officers, and circular economy programme leads. It addresses the challenge of

Form Trigger, Agent, OpenAI Chat +11
AI & RAG

This workflow automates end-to-end carbon emissions monitoring, strategy optimisation, and ESG reporting using a multi-agent AI supervisor architecture in n8n. Designed for sustainability managers, ES

Agent, OpenAI Chat, Output Parser Structured +10
AI & RAG

This workflow automates end-to-end ESG (Environmental, Social, and Governance) sustainability reporting for enterprise sustainability teams, compliance officers, and green governance leads. It solves

Agent, OpenAI Chat, Output Parser Structured +12
AI & RAG

This workflow automates medical imaging analysis and diagnostic reporting for radiology departments, imaging centers, and hospital networks managing high patient volumes. Designed for radiologists, me

HTTP Request, Agent, OpenAI Chat +7