{ "name": "Candidate Ranking with Verifiable Decision Receipts", "nodes": [ { "parameters": { "httpMethod": "POST", "path": "candidate-ranking", "options": {}, "responseMode": "responseNode" }, "id": "c77e284f-9e9e-44eb-be6d-94c7d273cdbd", "name": "Candidate Ranking", "type": "n8n-nodes-base.webhook", "typeVersion": 2.1, "position": [ 0, 300 ], "webhookId": "521880e4-98d2-4a23-9488-93c44ed3f525" }, { "parameters": { "modelId": { "__rl": true, "mode": "list", "value": "gpt-4o", "cachedResultName": "GPT-4O" }, "messages": { "values": [ { "role": "system", "content": "=You are an HR ranking AI. Rank candidates and return JSON: {\"ranked\":[{\"name\":\"...\",\"score\":0}],\"reason\":\"...\"}." }, { "content": "=Return JSON only.\n\nInput:\n{{ JSON.stringify($json.body) }}" } ] }, "jsonOutput": true, "options": {} }, "id": "455b3916-d79a-417d-99c6-44def86f2ed0", "name": "AI Decision", "type": "@n8n/n8n-nodes-langchain.openAi", "typeVersion": 2.1, "position": [ 220, 300 ], "credentials": { "openAiApi": { "id": "REPLACE_OPENAI_CRED_ID", "name": "OpenAi account" } } }, { "parameters": { "operation": "generateReceipt", "agentName": "RankingAgent", "workflowName": "={{ $workflow.name }}", "action": "={{ 'AI decision: ' + ($json.message.content.decision || $json.message.content.recommendation || 'completed') }}", "decision": "={{ JSON.stringify($json.message.content) }}", "additionalFields": { "modelProvider": "openai", "modelUsed": "gpt-4o", "decisionType": "candidate_ranking", "riskLevel": "high", "humanReview": true, "policies": "eu-ai-act-high-risk, eeoc-fairness", "permissions": "candidate.rank", "tags": "hr, hiring, ai-act" } }, "id": "895b9479-6169-4b1b-99a0-ef8af6c225d2", "name": "Signatrust: Receipt", "type": "n8n-nodes-signatrust.signatrust", "typeVersion": 1, "position": [ 440, 300 ], "credentials": { "signatrustApi": { "id": "REPLACE_SIGNATRUST_CRED_ID", "name": "Signatrust API account" } } }, { "parameters": { "operation": "append", "documentId": { "__rl": true, "mode": "id", "value": "REPLACE_SHEET_ID" }, "sheetName": { "__rl": true, "mode": "list", "value": "Sheet1", "cachedResultName": "Sheet1" }, "columns": { "mappingMode": "autoMapInputData", "value": {}, "matchingColumns": [] }, "options": {} }, "id": "4582183d-7d5a-4ec1-b7a4-027afb9b0e96", "name": "Log to Sheet", "type": "n8n-nodes-base.googleSheets", "typeVersion": 4.5, "position": [ 660, 300 ], "credentials": { "googleSheetsOAuth2Api": { "id": "REPLACE_SHEETS_CRED_ID", "name": "Google Sheets account" } } }, { "parameters": { "content": "## Candidate Ranking with Verifiable Decision Receipts\n**Why Signatrust?** Every AI decision here becomes a tamper-evident, Ed25519-signed receipt — verifiable for audits and disputes.", "height": 170, "width": 420, "color": 5 }, "id": "9d061a9d-6e9a-4835-a4aa-1f25dd295c33", "name": "Sticky Note 9d33c9", "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -40, 40 ] } ], "connections": { "Candidate Ranking": { "main": [ [ { "node": "AI Decision", "type": "main", "index": 0 } ] ] }, "AI Decision": { "main": [ [ { "node": "Signatrust: Receipt", "type": "main", "index": 0 } ] ] }, "Signatrust: Receipt": { "main": [ [ { "node": "Log to Sheet", "type": "main", "index": 0 } ] ] } }, "active": false, "pinData": {}, "settings": { "executionOrder": "v1" }, "tags": [ { "name": "Candidate Ranking — hr" }, { "name": "Candidate Ranking — hiring" }, { "name": "Candidate Ranking — ai-act" }, { "name": "Signatrust (14)" } ], "meta": { "templateCredsSetupCompleted": false }, "versionId": "4e18d484-162b-4c08-9ab1-2dfa7abfd4c8" }