AutomationFlowsWeb Scraping › Hiremind - Apply Decision Handler

Hiremind - Apply Decision Handler

HireMind - Apply Decision Handler. Uses httpRequest, emailSend. Webhook trigger; 9 nodes.

Webhook trigger★★★★☆ complexity9 nodesHTTP RequestEmail Send
Web Scraping Trigger: Webhook Nodes: 9 Complexity: ★★★★☆ Added:

This workflow follows the Emailsend → HTTP Request 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
{
  "name": "HireMind - Apply Decision Handler",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "apply-decision",
        "responseMode": "responseNode",
        "options": {}
      },
      "id": "apply-webhook",
      "name": "Apply Decision Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        250,
        300
      ]
    },
    {
      "parameters": {
        "values": {
          "string": [
            {
              "name": "jobId",
              "value": "={{ $json.body.jobId }}"
            },
            {
              "name": "userId",
              "value": "={{ $json.body.userId }}"
            },
            {
              "name": "userEmail",
              "value": "={{ $json.body.userEmail }}"
            },
            {
              "name": "userName",
              "value": "={{ $json.body.userName }}"
            },
            {
              "name": "jobTitle",
              "value": "={{ $json.body.jobTitle }}"
            },
            {
              "name": "company",
              "value": "={{ $json.body.company }}"
            },
            {
              "name": "applyUrl",
              "value": "={{ $json.body.applyUrl }}"
            },
            {
              "name": "applyEmail",
              "value": "={{ $json.body.applyEmail }}"
            },
            {
              "name": "mode",
              "value": "={{ $json.body.mode }}"
            }
          ]
        }
      },
      "id": "extract-apply-data",
      "name": "Extract Application Data",
      "type": "n8n-nodes-base.set",
      "typeVersion": 1,
      "position": [
        470,
        300
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=http://localhost:5000/api/cover-letter/generate",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "jobTitle",
              "value": "={{ $json.jobTitle }}"
            },
            {
              "name": "company",
              "value": "={{ $json.company }}"
            },
            {
              "name": "userId",
              "value": "={{ $json.userId }}"
            }
          ]
        }
      },
      "id": "generate-cover-letter",
      "name": "Generate Cover Letter",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 3,
      "position": [
        690,
        300
      ]
    },
    {
      "parameters": {
        "jsCode": "// Prepare application submission data\nconst applicationData = {\n  ...items[0].json,\n  coverLetter: $node['Generate Cover Letter'].json.coverLetter,\n  status: 'Draft',\n  timestamp: new Date().toISOString()\n};\n\nreturn { json: applicationData };"
      },
      "id": "prepare-application",
      "name": "Prepare Application Data",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        910,
        300
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=http://localhost:5000/api/applications/submit",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "jobId",
              "value": "={{ $json.jobId }}"
            },
            {
              "name": "userEmail",
              "value": "={{ $json.userEmail }}"
            },
            {
              "name": "userName",
              "value": "={{ $json.userName }}"
            },
            {
              "name": "jobTitle",
              "value": "={{ $json.jobTitle }}"
            },
            {
              "name": "company",
              "value": "={{ $json.company }}"
            },
            {
              "name": "applyUrl",
              "value": "={{ $json.applyUrl }}"
            },
            {
              "name": "applyEmail",
              "value": "={{ $json.applyEmail }}"
            },
            {
              "name": "mode",
              "value": "={{ $json.mode }}"
            },
            {
              "name": "coverLetter",
              "value": "={{ $json.coverLetter }}"
            }
          ]
        }
      },
      "id": "submit-application",
      "name": "Submit Application",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 3,
      "position": [
        1130,
        300
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=http://localhost:5000/api/applications/update-status",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "applicationId",
              "value": "={{ $json.applicationId }}"
            },
            {
              "name": "status",
              "value": "Submitted"
            }
          ]
        }
      },
      "id": "update-status",
      "name": "Update Status to Submitted",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 3,
      "position": [
        1350,
        300
      ]
    },
    {
      "parameters": {
        "fromEmail": "hiremindagent@gmail.com",
        "toEmail": "={{ $node['Extract Application Data'].json.userEmail }}",
        "subject": "\u2705 Application Submitted: {{ $node['Extract Application Data'].json.jobTitle }}",
        "text": "=Hi {{ $node['Extract Application Data'].json.userName }},\n\nGreat news! Your application has been successfully submitted.\n\n\ud83d\udccb Job Details:\n- Position: {{ $node['Extract Application Data'].json.jobTitle }}\n- Company: {{ $node['Extract Application Data'].json.company }}\n- Submitted: {{ new Date().toLocaleString() }}\n- Application ID: {{ $json.applicationId }}\n\n\u2728 Next Steps:\n1. We'll monitor your application status\n2. You'll receive updates via email\n3. If selected for interview, we'll send preparation materials\n\nTrack your application: http://localhost:3000/dashboard/job-tracker\n\nBest of luck!\nHireMind Agent",
        "authentication": "gmail",
        "emailPassword": "dltz rdmm hibq zbbk"
      },
      "id": "send-confirmation-email",
      "name": "Send Confirmation Email",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        1570,
        300
      ]
    },
    {
      "parameters": {
        "url": "=http://localhost:3000/n8n/webhook/skill-gap-analysis",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "applicationId",
              "value": "={{ $node['Update Status to Submitted'].json.applicationId }}"
            },
            {
              "name": "jobId",
              "value": "={{ $node['Extract Application Data'].json.jobId }}"
            },
            {
              "name": "userId",
              "value": "={{ $node['Extract Application Data'].json.userId }}"
            }
          ]
        }
      },
      "id": "trigger-skill-gap",
      "name": "Trigger Skill Gap Analysis",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 3,
      "position": [
        1570,
        450
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ { \"success\": true, \"applicationId\": $node['Update Status to Submitted'].json.applicationId, \"message\": \"Application submitted successfully\" } }}"
      },
      "id": "apply-response",
      "name": "Application Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [
        1790,
        300
      ]
    }
  ],
  "connections": {
    "Apply Decision Webhook": {
      "main": [
        [
          {
            "node": "Extract Application Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Application Data": {
      "main": [
        [
          {
            "node": "Generate Cover Letter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Cover Letter": {
      "main": [
        [
          {
            "node": "Prepare Application Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Application Data": {
      "main": [
        [
          {
            "node": "Submit Application",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Submit Application": {
      "main": [
        [
          {
            "node": "Update Status to Submitted",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Status to Submitted": {
      "main": [
        [
          {
            "node": "Send Confirmation Email",
            "type": "main",
            "index": 0
          },
          {
            "node": "Trigger Skill Gap Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Confirmation Email": {
      "main": [
        [
          {
            "node": "Application Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger Skill Gap Analysis": {
      "main": [
        [
          {
            "node": "Application Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [],
  "triggerCount": 1,
  "updatedAt": "2026-01-13T00:00:00.000Z",
  "versionId": "1"
}
Pro

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

About this workflow

HireMind - Apply Decision Handler. Uses httpRequest, emailSend. Webhook trigger; 9 nodes.

Source: https://github.com/Rohith-D-S/Hiremind/blob/2510bebedd0e6b08900fea8fdf7b3c4c2d2410dc/n8n-workflows/3-apply-decision-handler.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