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 →
{
"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"
}
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
세미나 데모 용 워크플로우. Uses httpRequest, emailSend. Webhook trigger; 17 nodes.
VenueDesk - Cancel Booking (Series Support). Uses emailSend, httpRequest. Webhook trigger; 17 nodes.
worklow_doc. Uses httpRequest, readBinaryFile, n8n-nodes-docxtemplater, emailSend. Webhook trigger; 15 nodes.
WF2 - Upload Manual | JurisAI. Uses httpRequest, emailSend. Webhook trigger; 15 nodes.
Deliver personalized files instantly after PayPal transactions using n8n – without writing a single backend line.