AutomationFlowsWeb Scraping › Employer - Generate Veracity Report

Employer - Generate Veracity Report

Employer - Generate Veracity Report. Uses htmlToPdf, emailSend. Webhook trigger; 8 nodes.

Webhook trigger★★★★☆ complexity8 nodesHtml To PdfEmail Send
Web Scraping Trigger: Webhook Nodes: 8 Complexity: ★★★★☆ Added:

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
{
  "name": "Employer - Generate Veracity Report",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "generate-employer-report",
        "options": {}
      },
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        0,
        0
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.headers[\"x-acl-auth-key\"]}}",
              "operation": "equal",
              "value2": "={{$env.ACL_AUTH_KEY}}"
            }
          ]
        }
      },
      "name": "Security Guard",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        200,
        0
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "{\"error\": \"Unauthorized\", \"message\": \"Invalid security token\"}",
        "options": {
          "responseCode": 401
        }
      },
      "name": "Reject Request",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [
        200,
        200
      ]
    },
    {
      "parameters": {
        "jsCode": "// Prepare Report Data\nconst results = $input.item.json.body.results || [];\nconst total = $input.item.json.body.totalFiles || 0;\nconst valid = $input.item.json.body.validCount || 0;\n\n// Sort by match score\nconst topCandidates = results\n  .filter(r => r.status === 'valid')\n  .sort((a, b) => b.matchScore - a.matchScore)\n  .slice(0, 10);\n\nreturn {\n  reportDate: new Date().toISOString().split('T')[0],\n  total,\n  valid,\n  topCandidates\n};"
      },
      "name": "Process Data",
      "type": "n8n-nodes-base.code",
      "typeVersion": 1,
      "position": [
        400,
        0
      ]
    },
    {
      "parameters": {
        "values": {
          "string": [
            {
              "name": "htmlContent",
              "value": "<html><body><h1>Reporte de Veracidad Consolidado</h1><p>Fecha: {{$json.reportDate}}</p><p>De los {{$json.total}} CVs analizados, <strong>{{$json.valid}}</strong> tienen Verdad Criptogr\u00e1fica confirmada.</p><h2>Top 10 Candidatos (Smart Matching)</h2><ul>{{$json.topCandidates.map(c => `<li><strong>${c.candidateName}</strong> - Score: ${c.matchScore}% (Skills: ${c.verifiedSkills.join(', ')})</li>`).join('')}}</ul><p>Verificado por AcademicChain Ledger.</p></body></html>"
            }
          ]
        },
        "options": {}
      },
      "name": "Generate HTML",
      "type": "n8n-nodes-base.set",
      "typeVersion": 1,
      "position": [
        600,
        0
      ]
    },
    {
      "parameters": {
        "operation": "pdf",
        "binaryPropertyName": "data",
        "html": "={{$json.htmlContent}}"
      },
      "name": "HTML to PDF",
      "type": "n8n-nodes-base.htmlToPdf",
      "typeVersion": 1,
      "position": [
        800,
        0
      ],
      "notes": "Requires separate installation or external service in some n8n versions"
    },
    {
      "parameters": {
        "toEmail": "={{$json.email}}",
        "subject": "Tu Reporte de Veracidad Consolidado",
        "text": "Hola,\n\nAdjunto encontrar\u00e1s el reporte detallado de los CVs procesados por AcademicChain Ledger.\n\nSaludos,\nEl equipo de AcademicChain.",
        "attachments": "data",
        "options": {}
      },
      "name": "Email Report",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 1,
      "position": [
        1000,
        0
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "{\n  \"success\": true,\n  \"message\": \"Report generated and emailed\",\n  \"reportUrl\": \"https://academicchain.com/reports/temp-link-123.pdf\"\n}",
        "options": {}
      },
      "name": "Respond to App",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [
        1200,
        0
      ]
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Security Guard",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Security Guard": {
      "main": [
        [
          {
            "node": "Process Data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Reject Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Data": {
      "main": [
        [
          {
            "node": "Generate HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate HTML": {
      "main": [
        [
          {
            "node": "HTML to PDF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTML to PDF": {
      "main": [
        [
          {
            "node": "Email Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Email Report": {
      "main": [
        [
          {
            "node": "Respond to App",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Employer - Generate Veracity Report. Uses htmlToPdf, emailSend. Webhook trigger; 8 nodes.

Source: https://github.com/Aether-Connect-Labs/AcademicChain-Ledger/blob/main/n8n/workflows/employer-report.json — 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

세미나 데모 용 워크플로우. Uses httpRequest, emailSend. Webhook trigger; 17 nodes.

HTTP Request, Email Send
Web Scraping

VenueDesk - Cancel Booking (Series Support). Uses emailSend, httpRequest. Webhook trigger; 17 nodes.

Email Send, HTTP Request
Web Scraping

worklow_doc. Uses httpRequest, readBinaryFile, n8n-nodes-docxtemplater, emailSend. Webhook trigger; 15 nodes.

HTTP Request, Read Binary File, N8N Nodes Docxtemplater +1
Web Scraping

WF2 - Upload Manual | JurisAI. Uses httpRequest, emailSend. Webhook trigger; 15 nodes.

HTTP Request, Email Send
Web Scraping

Deliver personalized files instantly after PayPal transactions using n8n – without writing a single backend line.

HTTP Request, Email Send