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": "Resume Optimizer",
"nodes": [
{
"parameters": {},
"id": "webhook-trigger",
"name": "Webhook Trigger",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {
"functionCode": "// Resume Optimizer - Tailors resume to job description\nconst jobData = items[0].json;\nconst { job_description, current_resume } = jobData;\n\n// Extract key requirements from job description\nconst extractKeywords = (text) => {\n const techKeywords = ['python', 'javascript', 'react', 'node.js', 'sql', 'aws', 'docker'];\n const found = [];\n \n for (const keyword of techKeywords) {\n if (text.toLowerCase().includes(keyword)) {\n found.push(keyword);\n }\n }\n \n return found;\n};\n\nconst requiredSkills = extractKeywords(job_description);\n\n// Generate optimized resume sections\nconst optimizedResume = {\n summary: `Experienced professional with expertise in ${requiredSkills.join(', ')}`,\n skills: requiredSkills,\n experience_highlights: [\n `Developed applications using ${requiredSkills[0] || 'modern technologies'}`,\n `Led projects involving ${requiredSkills[1] || 'software development'}`,\n `Collaborated on ${requiredSkills[2] || 'technical'} initiatives`\n ],\n match_percentage: Math.min(95, requiredSkills.length * 15 + 25)\n};\n\nreturn [{ json: optimizedResume }];"
},
"id": "optimize-resume",
"name": "Optimize Resume",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
450,
300
]
},
{
"parameters": {
"url": "http://localhost:8000/generate-resume",
"sendBody": true,
"bodyContentType": "json",
"jsonBody": "={{ JSON.stringify($json) }}"
},
"id": "call-crewai",
"name": "Call CrewAI Service",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
650,
300
]
}
],
"connections": {
"Webhook Trigger": {
"main": [
[
{
"node": "Optimize Resume",
"type": "main",
"index": 0
}
]
]
},
"Optimize Resume": {
"main": [
[
{
"node": "Call CrewAI Service",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {},
"versionId": "1"
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Resume Optimizer. Uses httpRequest. Webhook trigger; 3 nodes.
Source: https://github.com/MoYousif4387/job-search-ai-system/blob/c1d4ac0641f4571797ddc8a9c441e862aeffed36/n8n-workflows/resume-optimizer.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.
This n8n template provides enterprise-level version control for your workflows using GitHub integration. Stop losing hours to broken workflows and manual exports – get proper commit history, visual di
This flow creates dummy files for every item added in your *Arrs (Radarr/Sonarr) with the tag .
eek-Go v2 (Batch-Then-Review). Uses httpRequest. Webhook trigger; 75 nodes.
This workflow receives webhook requests from a content calendar and uses the X API v2 to publish text posts, threads, image/video posts, and polls, as well as delete existing posts and run a credentia
This workflow acts as a central API gateway for all technical indicator agents in the Binance Spot Market Quant AI system. It listens for incoming webhook requests and dynamically routes them to the c