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 →
{
"name": "Skill Evaluation Workflow",
"nodes": [
{
"parameters": {},
"id": "manual-trigger-node",
"name": "Start",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {
"jsCode": "// Configuration Data\n// Edit these values to test different scenarios\n\nreturn {\n json: {\n role_content: \"You are a Senior Python Developer. Always write clean, typed code.\",\n task_description: \"Write a function to calculate Fibonacci numbers using memoization.\",\n skills_list: [\"skill-tdd-stub-first\", \"skill-documentation-standards\"]\n }\n};\n"
},
"id": "config-node",
"name": "Config Input",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
450,
300
]
},
{
"parameters": {
"jsCode": "// 1. Extract Inputs\nconst role = $input.first().json.role_content;\nconst skills = $input.first().json.skills_list;\nconst task = $input.first().json.task_description;\n\n// 2. Assemble Prompt (Simulating Orchestrator)\nlet prompt = role + '\\n\\n### ACTIVE SKILLS\\n';\nskills.forEach(s => prompt += `- ${s}\\n`);\n\n// In a real scenario, you would load skill content here.\n// For this example, we placehold it.\nprompt += `\\n[...Content of ${skills.join(', ')}...]\\n`;\n\nprompt += `\\n### TASK\\n${task}`;\nprompt += `\\n\\nIMPORTANT: Analyze the task using your skills.`;\n\nreturn { json: { prompt } };"
},
"id": "prompt-assembly-node",
"name": "Build Prompt",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
650,
300
]
},
{
"parameters": {
"resource": "chat",
"operation": "chat",
"model": "gpt-4-turbo",
"messages": {
"values": [
{
"content": "={{ $json.prompt }}",
"role": "user"
}
]
}
},
"id": "openai-node",
"name": "AI Evaluation",
"type": "n8n-nodes-base.openAi",
"typeVersion": 1,
"position": [
850,
300
],
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "\ud83d\udca1 **HINT**:\nEdit the **Config Input** node (JavaScript) to change the Role, Task, or Skills for testing.",
"height": 130,
"width": 240,
"color": 4
},
"id": "sticky-note-1",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
430,
140
]
},
{
"parameters": {
"content": "\ud83d\udcdd **LOGIC**:\nThis JavaScript code simulates the Orchestrator's prompt assembly logic. It combines Role + Skills + Task.",
"height": 130,
"width": 240,
"color": 2
},
"id": "sticky-note-2",
"name": "Sticky Note 1",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
630,
140
]
}
],
"connections": {
"Start": {
"main": [
[
{
"node": "Config Input",
"type": "main",
"index": 0
}
]
]
},
"Config Input": {
"main": [
[
{
"node": "Build Prompt",
"type": "main",
"index": 0
}
]
]
},
"Build Prompt": {
"main": [
[
{
"node": "AI Evaluation",
"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.
openAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Skill Evaluation Workflow. Uses openAi. Event-driven trigger; 6 nodes.
Source: https://github.com/MatrixFounder/Agentic-development/blob/c846b5e2aaef4d67798d6d192d5eea214b7b74d6/examples/skill-testing/n8n_skill_eval_workflow.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.
BoomerBobBot.TP. Uses agent, telegramTrigger, telegram, memoryBufferWindow. Event-driven trigger; 95 nodes.
Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato 2. Uses @blotato/n8n-nodes-blotato, googleSheets, lmChatOpenAi, toolThink. Event-driven trigger; 94 nodes.
How it Works
AI Agent Workflow. Uses telegramTrigger, chatTrigger, telegram, openAi. Event-driven trigger; 82 nodes.