AutomationFlowsAI & RAG › Generate Tailored Resumes, Cover Letters & Interview Prep From Linkedin Jobs…

Generate Tailored Resumes, Cover Letters & Interview Prep From Linkedin Jobs…

Original n8n title: Generate Tailored Resumes, Cover Letters & Interview Prep From Linkedin Jobs with AI

Byjun shou @pureleow on n8n.io

**This n8n workflow leverages an agentic AI solution, where multiple AI agents collaborate to process and generate tailored job application assets.

Chat trigger trigger★★★★☆ complexityAI-powered22 nodesChat Trigger@Brightdata/N8N Nodes BrightdataGoogle SheetsAgentOpenAI ChatTool WorkflowGoogle DocsOpenAI
AI & RAG Trigger: Chat trigger Nodes: 22 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #6748 — we link there as the canonical source.

This workflow follows the Agent → Chat Trigger 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
{
  "id": "cX3UTa8r8OVhPzRK",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Interview Orchestrator",
  "tags": [],
  "nodes": [
    {
      "id": "4b581eaa-a3bc-436b-9316-bbdabec1b29e",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        40,
        0
      ],
      "parameters": {
        "public": true,
        "options": {},
        "authentication": "basicAuth"
      },
      "credentials": {
        "httpBasicAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "7c12040d-dd5e-4380-a10a-89452775dc76",
      "name": "Extract structured data from a single URL",
      "type": "@brightdata/n8n-nodes-brightdata.brightData",
      "position": [
        260,
        0
      ],
      "parameters": {
        "urls": "=[{\"url\":\"{{ $json.chatInput }}\"}] ",
        "resource": "webScrapper",
        "dataset_id": {
          "__rl": true,
          "mode": "list",
          "value": "gd_lpfll7v5hcqtkxl6l",
          "cachedResultName": "Linkedin job listings information"
        },
        "requestOptions": {}
      },
      "credentials": {
        "brightdataApi": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "f9f3a67a-0a3d-4a4b-967f-ed9b2c4a1564",
      "name": "Extract structured data from a single URL1",
      "type": "@brightdata/n8n-nodes-brightdata.brightData",
      "position": [
        480,
        0
      ],
      "parameters": {
        "urls": "=[{\"url\":\"https://www.linkedin.com/company/{{ $json.company_id }}/\"}] ",
        "resource": "webScrapper",
        "dataset_id": {
          "__rl": true,
          "mode": "list",
          "value": "gd_l1vikfnt1wgvvqz95w",
          "cachedResultName": "LinkedIn company information"
        },
        "requestOptions": {}
      },
      "credentials": {
        "brightdataApi": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "id": "f7ef2de2-535f-489d-85c4-f20979f1c866",
      "name": "append job details",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        700,
        0
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_posting_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_posting_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_title",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_location",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_summary",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_seniority_level",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_seniority_level",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_function",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_function",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_employment_type",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_employment_type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_industries",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_industries",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_posted_time",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_posted_time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_num_applicants",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_num_applicants",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "discovery_input",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "discovery_input",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "apply_link",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "apply_link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "country_code",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "country_code",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "title_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "title_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_logo",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_logo",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_posted_date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_posted_date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_poster",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_poster",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "application_availability",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "application_availability",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_description_formatted",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "job_description_formatted",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "base_salary",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "base_salary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "salary_standards",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "salary_standards",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "timestamp",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "input",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "input",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1gJ6gB6RQi6LR9qqtdpjcbcyPsmn-SbKyrM5Wt4bDXpA/edit#gid=0",
          "cachedResultName": "Interested_list"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1gJ6gB6RQi6LR9qqtdpjcbcyPsmn-SbKyrM5Wt4bDXpA/edit?gid=0#gid=0"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.6
    },
    {
      "id": "814f5a0c-1778-4478-bfda-ea49873f0b68",
      "name": "append company detail",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        920,
        0
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "locations",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "locations",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "followers",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "followers",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "employees_in_linkedin",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "employees_in_linkedin",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "about",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "about",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "specialties",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "specialties",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_size",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "organization_type",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "organization_type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "industries",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "industries",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "website",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "crunchbase_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "crunchbase_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "employees",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "employees",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "headquarters",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "headquarters",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "image",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "image",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "logo",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "logo",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "similar",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "similar",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "updates",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "updates",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "affiliated",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "affiliated",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "funding",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "funding",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "investors",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "investors",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "formatted_locations",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "formatted_locations",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "get_directions_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "get_directions_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "description",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "additional_information",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "additional_information",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "country_codes_array",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "country_codes_array",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "alumni",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "alumni",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "alumni_information",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "alumni_information",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "website_simplified",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "website_simplified",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "unformatted_about",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "unformatted_about",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "timestamp",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "input",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "input",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "country_code",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "country_code",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1171287591,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1gJ6gB6RQi6LR9qqtdpjcbcyPsmn-SbKyrM5Wt4bDXpA/edit#gid=1171287591",
          "cachedResultName": "company_detail"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1gJ6gB6RQi6LR9qqtdpjcbcyPsmn-SbKyrM5Wt4bDXpA/edit?gid=0#gid=0"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.6
    },
    {
      "id": "bf948fc5-4c51-4c4e-a022-285eabf45edf",
      "name": "Master Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1180,
        -40
      ],
      "parameters": {
        "text": "=Here is the job and company details extracted froom linkedin\n\nCompany Name:  {{ $json.name }}\nabout this company: {{ $json.about }}\nfocus on: {{ $json.specialties }}\nindustry: {{ $json.industries }}\ncompany focus: {{ $json.unformatted_about }}\n\nJob title: {{ $('Extract structured data from a single URL').item.json.job_title }}\njob summary: {{ $('Extract structured data from a single URL').item.json.job_summary }}\nJob seniority level: {{ $('Extract structured data from a single URL').item.json.job_seniority_level }}\njob function: {{ $('Extract structured data from a single URL').item.json.job_function }}\n\nFirst,call resume editor agent/tool for resume fineturning according the company details and job description.\nThen, send company details, job description details and edited resume to HR Reviwer agent/tool for comment and score.",
        "options": {
          "systemMessage": "SYSTEM\nYou are \u201cMaster Orchestrator\u201d, the first-pass analyst in a multi-agent r\u00e9sum\u00e9-tailoring chain.\n\nGOAL  \nConvert the raw job-posting & company data into a structured, fact-rich JSON object that every other agent can consume without re-scraping.\n\nProcess\n1. Call Resume editor tool agent to process and get the edited resume.\n2. send the edited resume, along with company details and job description to HR reviewer tool agent for review. It will return comment and score.\n3. if the score is low, pass the comment back to resume editor agent to modify. \n4. Repeat the process until the score is above 75%.\n5. When the end condition is reached, please make the output of the LLM paste the edited resume along with the comment mentioning edited changes and the latest HR comment.\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "97772cf1-8f85-4a6f-ab41-0b116758fd6d",
      "name": "GPT-4o",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1020,
        240
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-2024-05-13",
          "cachedResultName": "gpt-4o-2024-05-13"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "322c1b3a-6042-428f-b351-c277dfedf187",
      "name": "Resume Editor",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        1160,
        280
      ],
      "parameters": {
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "ceZPRAJoHZIPOgPT",
          "cachedResultName": "Resume Editor"
        },
        "description": "Call this tool when u got the company and job description information.HR comment & Suggestion is not exist on the first run. If the resume is reviewed by the HR agent, pass the comment, edited resume, company details and job description to this agent.\nThis agent is to edit resume based on comment/suggestion and company details, and job description.",
        "workflowInputs": {
          "value": {
            "query": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('query', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "query",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "query",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "query"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "57c780cd-9c0d-4bb8-bf5b-c9233db90be3",
      "name": "HR Reviwer",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        1320,
        320
      ],
      "parameters": {
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "TpHF40TKvreoEqXQ",
          "cachedResultName": "HR & Technical Reviewer"
        },
        "description": "Call this tool after the resume is modified by RESUME Editor Agent.\nSend the edited resume, Company details, and job description to this agent so it will review and return comment and mark.",
        "workflowInputs": {
          "value": {},
          "schema": [],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "92563ce5-769c-4d6d-94e6-66cc60a0ace4",
      "name": "Generate Cover Letter",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        1560,
        -20
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "1dM1IUUOU7ML8HzZ",
          "cachedResultName": "Cover Letter Agent"
        },
        "workflowInputs": {
          "value": {
            "query": "={{ $json.output }}"
          },
          "schema": [
            {
              "id": "query",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "query",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "query"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "bf09e5fa-4008-473e-99b7-abca06ae9afd",
      "name": "Create a document",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1780,
        -20
      ],
      "parameters": {
        "title": "={{ $('Extract structured data from a single URL').item.json.company_name }}-{{ $('Extract structured data from a single URL').item.json.job_title }} Proposed Resume",
        "folderId": "=1QRP0jGECu1jtlfo0FvvKlt73SKap0BC3"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 2
    },
    {
      "id": "7f35ca35-c175-45ad-982a-798488ce505b",
      "name": "Create a document1",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1720,
        200
      ],
      "parameters": {
        "title": "={{ $('Extract structured data from a single URL').item.json.company_name }}-{{ $('Extract structured data from a single URL').item.json.job_title }} Proposed Cover Letter",
        "folderId": "=1UpVOEKTvhBzHqAxuDQ87nJZntie3OCQm"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 2
    },
    {
      "id": "acb142fa-b003-469e-b49d-2da590fa0c65",
      "name": "Update a document",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        2000,
        -20
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "text": "={{ $('Master Agent').item.json.output }}",
              "action": "insert"
            }
          ]
        },
        "operation": "update",
        "documentURL": "={{ $json.id }}"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "a2971c16-0c03-4055-8921-4bd31887cfe8",
      "name": "Update a document1",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        2020,
        200
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "text": "={{ $('Generate Cover Letter').item.json.output }}",
              "action": "insert"
            }
          ]
        },
        "operation": "update",
        "documentURL": "={{ $json.id }}"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "5529c9b7-2ace-49a4-8844-b8d021be3c04",
      "name": "Interview Coach",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        2300,
        160
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "DhpQ0Pr79VbUrl0g",
          "cachedResultName": "Interview Coach"
        },
        "workflowInputs": {
          "value": {
            "query": "=Here is the feedback from HR reviwer, company details, job description and edited resume.\n{{ $('Master Agent').item.json.output }}"
          },
          "schema": [
            {
              "id": "query",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "query",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "query"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a3f5e8f6-3a12-4f02-8a9f-aa5112ddb021",
      "name": "Create a document2",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        2540,
        120
      ],
      "parameters": {
        "title": "={{ $('Extract structured data from a single URL').item.json.company_name }}-{{ $('Extract structured data from a single URL').item.json.job_title }} Interview Coach",
        "folderId": "=1iYTnDuv8ALwjk92SZc1lkHroc3l0uarn"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "0bcdb48c-c6fe-4cf4-a6df-27102532821c",
      "name": "Update a document2",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        2740,
        160
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "text": "={{ $('Interview Coach').item.json.output }}",
              "action": "insert"
            }
          ]
        },
        "operation": "update",
        "documentURL": "={{ $json.id }}"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "5a6e7da0-8888-4a97-ac31-e35fac3c0dfe",
      "name": "Message a model",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        2960,
        160
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "GPT-4O-MINI"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "Is my workflow done?"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "a8c660a2-093c-478f-920a-3d8a75ad1661",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -300
      ],
      "parameters": {
        "width": 1000,
        "height": 240,
        "content": "Trigger: When Chat Message Received\n\nStarts the workflow when a message is received (e.g., from Telegram, Slack, or custom UI).\n\nExtract Structured Data from LinkedIn\n\nUses BrightData to scrape and extract job description from the given LinkedIn job URL.\n\nAppend Job & Company Details\n\nSaves structured job data to internal sheets or memory for downstream agents to use.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "0f392b96-e2a3-46d0-bf79-4deed1482125",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1220,
        -220
      ],
      "parameters": {
        "width": 200,
        "content": "Master Agent\n\nActs as the central coordinator, passing the job data to sub-agents for task-YOUR_OPENAI_KEY_HERE output."
      },
      "typeVersion": 1
    },
    {
      "id": "5cf4e18a-edf5-4c49-9021-0cf836be560e",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        940,
        460
      ],
      "parameters": {
        "width": 560,
        "content": "\ud83e\udd16 Sub-Workflows (Agent Nodes)\nSub-workflows like Resume Editor, Cover Letter Writer, and Interview Coach are:\n\nModular AI agents with a specialized system message and prompt.\n\nBuilt using a simple Agentic (LLM) structure inside the sub-workflow.\n\nThey automatically return their result to the Master Agent when complete.\n\n\u2705 Tip: Setting up a sub-workflow is simple\u2014just define the agent's role and prompt inside it. No need to manage output paths; results are passed back to the main workflow automatically."
      },
      "typeVersion": 1
    },
    {
      "id": "e34a71a0-8a6b-4c5d-b903-7ca0eb874b79",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2140,
        -160
      ],
      "parameters": {
        "width": 740,
        "content": "\ud83d\uddc2 Output to Google Drive\nEach agent's response is saved as a new Google Doc:\n\nCreate document \u2192 generates a new Google Doc in your Drive.\n\nUpdate document \u2192 appends the generated content.\n\nFinal documents:\n\nCover Letter\n\nTailored Resume\n\nInterview Questions & Answers"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "53189899-4786-45c7-a2ce-db66af7e97e7",
  "connections": {
    "GPT-4o": {
      "ai_languageModel": [
        [
          {
            "node": "Master Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "HR Reviwer": {
      "ai_tool": [
        [
          {
            "node": "Master Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Master Agent": {
      "main": [
        [
          {
            "node": "Generate Cover Letter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Resume Editor": {
      "ai_tool": [
        [
          {
            "node": "Master Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Interview Coach": {
      "main": [
        [
          {
            "node": "Create a document2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a document": {
      "main": [
        [
          {
            "node": "Update a document",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update a document": {
      "main": [
        [
          {
            "node": "Create a document1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a document1": {
      "main": [
        [
          {
            "node": "Update a document1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a document2": {
      "main": [
        [
          {
            "node": "Update a document2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update a document1": {
      "main": [
        [
          {
            "node": "Interview Coach",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update a document2": {
      "main": [
        [
          {
            "node": "Message a model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "append job details": {
      "main": [
        [
          {
            "node": "append company detail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Cover Letter": {
      "main": [
        [
          {
            "node": "Create a document",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "append company detail": {
      "main": [
        [
          {
            "node": "Master Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "Extract structured data from a single URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract structured data from a single URL": {
      "main": [
        [
          {
            "node": "Extract structured data from a single URL1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract structured data from a single URL1": {
      "main": [
        [
          {
            "node": "append job details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

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

About this workflow

**This n8n workflow leverages an agentic AI solution, where multiple AI agents collaborate to process and generate tailored job application assets.

Source: https://n8n.io/workflows/6748/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

A practical AI-powered workflow that helps you find relevant LinkedIn profiles using natural language queries and saves the results automatically to Google Sheets. Accepts natural language requests (e

Chat Trigger, Agent, OpenAI Chat +6
AI & RAG

HDW Lead Geländewagen. Uses chatTrigger, lmChatOpenAi, memoryBufferWindow, outputParserStructured. Chat trigger; 92 nodes.

Chat Trigger, OpenAI Chat, Memory Buffer Window +5
AI & RAG

Who’s it for Creators who want to create faceless videos automatically, while keeping human oversight and quality control.

Read Write File, Agent, OpenAI Chat +7
AI & RAG

The Best Linkedin Posting System. Uses httpRequest, lmChatOpenAi, agent, chatTrigger. Chat trigger; 49 nodes.

HTTP Request, OpenAI Chat, Agent +8
AI & RAG

Who is this workflow for? This workflow is designed for SEO analysts, content creators, marketing agencies, and developers who need to index a website and then interact with its content as if it were

Agent, OpenAI Chat, Memory Buffer Window +10