This workflow corresponds to n8n.io template #3724 — we link there as the canonical source.
This workflow follows the Agent → Airtable 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 →
{
"id": "JI81TaHdazYM3Wld",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Automate Job Search with AI Resume Scoring & Tailoring using OpenAI, Apify, and Airtable",
"tags": [],
"nodes": [
{
"id": "ab831a91-5f98-4cf3-9ab9-1ba0df29f1ec",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1400,
320
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "90d367a2-292f-48ac-9f5a-49edb04b1c2d",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-200,
320
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "95c3b832-eb9e-4611-9083-1d8fd46e508d",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1740,
560
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "b42322e6-1439-40fa-ac74-857ffeafb9dc",
"name": "Split Job Preferences",
"type": "n8n-nodes-base.splitInBatches",
"position": [
260,
380
],
"parameters": {},
"typeVersion": 1
},
{
"id": "e6c9f084-4cb5-4765-8571-877c8cfdf0a4",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
320
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "179ba6f1-6732-4c00-a1a7-e06c6f42f124",
"name": "Job Extract with revamped scoring",
"type": "n8n-nodes-base.code",
"position": [
2300,
60
],
"parameters": {},
"typeVersion": 2
},
{
"id": "f9a4f1b7-e64f-4588-b3e0-31fd30686a6c",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1700,
-160
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "f24fd530-3e6a-4266-92f1-797d48e0f623",
"name": "\ud83d\udd52 Trigger: Daily Job Fetch",
"type": "n8n-nodes-base.cron",
"position": [
-160,
380
],
"parameters": {},
"typeVersion": 1
},
{
"id": "c7678b9b-75a8-4968-9122-48f8b090f88d",
"name": "\ud83d\udcc4 Fetch Job Preferences (Google Sheets)",
"type": "n8n-nodes-base.googleSheets",
"position": [
40,
380
],
"parameters": {},
"typeVersion": 2
},
{
"id": "507700bb-852b-414e-b963-78820a13e3e3",
"name": "\ud83d\udd04 Loop: Search Jobs per Preference",
"type": "n8n-nodes-base.splitInBatches",
"position": [
500,
380
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 3,
"alwaysOutputData": false
},
{
"id": "8fb836b2-2934-4fed-b697-14bf77ce3525",
"name": "\ud83d\udd0d Apify: Scrape Jobs",
"type": "n8n-nodes-base.httpRequest",
"position": [
720,
500
],
"parameters": {},
"typeVersion": 1,
"alwaysOutputData": false
},
{
"id": "96a3fe38-1e2d-408b-8f36-2db1a3f3c8fa",
"name": "\ud83e\uddf9 Clean & Extract Job Data",
"type": "n8n-nodes-base.code",
"position": [
720,
360
],
"parameters": {},
"typeVersion": 2
},
{
"id": "534613f3-ff95-4700-8a78-bdca59056625",
"name": "Filter: Recent Jobs (<48h)",
"type": "n8n-nodes-base.if",
"position": [
1000,
400
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "ab1a0536-acb4-4814-98f5-595c35ca10c6",
"name": "\ud83d\uddc2\ufe0f Archive: Old Jobs (Airtable)",
"type": "n8n-nodes-base.airtable",
"position": [
1180,
440
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "21168e06-6b77-4565-a7d6-35baf87bec4f",
"name": "\ud83d\udd04 Loop: Score New Jobs",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1460,
380
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 3,
"alwaysOutputData": false
},
{
"id": "e5733cb2-dee3-4059-8608-e9fb662bac9a",
"name": "\ud83e\udd16 AI: Score CV vs Job",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1720,
360
],
"parameters": {},
"typeVersion": 1.7
},
{
"id": "8f680cad-1d78-4967-8904-e49de08f8f9e",
"name": "\ud83d\udcc4 Parse AI Score Output",
"type": "n8n-nodes-base.code",
"position": [
2040,
500
],
"parameters": {},
"typeVersion": 2
},
{
"id": "2a6607ec-7d95-4154-9e24-b70d2fb1c0f8",
"name": "\ud83d\udd04 Loop: Generate CV Suggestions",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1780,
60
],
"parameters": {},
"typeVersion": 3
},
{
"id": "27122680-563d-4499-8c03-6c6985c9aacc",
"name": "\u270d\ufe0f AI: Revamp CV Based on Job",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1960,
80
],
"parameters": {},
"typeVersion": 1.8
},
{
"id": "024a3a75-9a6c-42b2-845b-67da9eefd599",
"name": "\ud83d\uddc2\ufe0f Save: Final Job Data (Airtable)",
"type": "n8n-nodes-base.airtable",
"position": [
2160,
-100
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "6491c5a3-d2dc-4dce-afcd-8a19c85f8f1c",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-200,
720
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "af4e7a10-d23e-4dfe-ab8a-01f8fbcaffc7",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
640
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "d19b6513-015e-40ec-b28f-75cde88c9c54",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
840,
-160
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "557651ed-ad92-44ae-814c-3295925e6759",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1400,
720
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "70f492a9-54ee-4f46-8e5b-b0bec641b9c8",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-200,
-160
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "c67e1b0b-b5e8-4b84-941e-8c46150bf730",
"connections": {
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "\ud83e\udd16 AI: Score CV vs Job",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Split Job Preferences": {
"main": [
[
{
"node": "\ud83d\udd04 Loop: Search Jobs per Preference",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udd0d Apify: Scrape Jobs": {
"main": [
[
{
"node": "\ud83d\udd04 Loop: Search Jobs per Preference",
"type": "main",
"index": 0
}
]
]
},
"\ud83e\udd16 AI: Score CV vs Job": {
"main": [
[
{
"node": "\ud83d\udcc4 Parse AI Score Output",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udd04 Loop: Score New Jobs": {
"main": [
[
{
"node": "\ud83d\udd04 Loop: Generate CV Suggestions",
"type": "main",
"index": 0
}
],
[
{
"node": "\ud83e\udd16 AI: Score CV vs Job",
"type": "main",
"index": 0
}
]
]
},
"Filter: Recent Jobs (<48h)": {
"main": [
[
{
"node": "\ud83d\udd04 Loop: Score New Jobs",
"type": "main",
"index": 0
}
],
[
{
"node": "\ud83d\uddc2\ufe0f Archive: Old Jobs (Airtable)",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udcc4 Parse AI Score Output": {
"main": [
[
{
"node": "\ud83d\udd04 Loop: Score New Jobs",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udd52 Trigger: Daily Job Fetch": {
"main": [
[
{
"node": "\ud83d\udcc4 Fetch Job Preferences (Google Sheets)",
"type": "main",
"index": 0
}
]
]
},
"\ud83e\uddf9 Clean & Extract Job Data": {
"main": [
[
{
"node": "Filter: Recent Jobs (<48h)",
"type": "main",
"index": 0
}
]
]
},
"Job Extract with revamped scoring": {
"main": [
[
{
"node": "\ud83d\udd04 Loop: Generate CV Suggestions",
"type": "main",
"index": 0
}
]
]
},
"\u270d\ufe0f AI: Revamp CV Based on Job": {
"main": [
[
{
"node": "Job Extract with revamped scoring",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udd04 Loop: Generate CV Suggestions": {
"main": [
[
{
"node": "\ud83d\uddc2\ufe0f Save: Final Job Data (Airtable)",
"type": "main",
"index": 0
}
],
[
{
"node": "\u270d\ufe0f AI: Revamp CV Based on Job",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udd04 Loop: Search Jobs per Preference": {
"main": [
[
{
"node": "\ud83e\uddf9 Clean & Extract Job Data",
"type": "main",
"index": 0
}
],
[
{
"node": "\ud83d\udd0d Apify: Scrape Jobs",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udcc4 Fetch Job Preferences (Google Sheets)": {
"main": [
[
{
"node": "Split Job Preferences",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow is designed for job seekers who want to automate their job application research and resume optimization. It's ideal for professionals who want to match their CVs to new job postings daily, improving the chance of landing interviews without manual work. Problem:…
Source: https://n8n.io/workflows/3724/ — 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 automation workflow automates the creation, scripting, production, and posting of YouTube videos. It leverages AI (OpenAI), image generation (PIAPI), video rendering (Shotstack), and platform
This workflow is designed for: Content creators and marketers E-commerce and product-based businesses Agencies producing social media visuals and videos Automation builders looking for AI-powered crea
This workflow automates the creation, rendering, approval, and posting of TikTok-style POV (Point of View) videos to Instagram, with cross-posting to Facebook and YouTube. It eliminates manual video p
Content marketers and SEO specialists who need to generate multiple SEO-optimized articles targeting keyword variations. Ideal for affiliate sites, niche blogs, or service-based businesses creating lo
Most blogs publish words. This system publishes experiences.