{
  "name": "AI recruiting pipeline: Job to candidate shortlist with Apollo & Airtable",
  "nodes": [
    {
      "id": "969da01e-2879-4ce1-8cfa-301071ec9950",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -384,
        0
      ]
    },
    {
      "id": "4a5133d1-5fe7-442a-adc5-d7768ea67da0",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        1632,
        0
      ]
    },
    {
      "id": "dc324e00-8cff-4211-b0bb-c507cf3e2815",
      "name": "Auto-fixing Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
      "position": [
        1088,
        400
      ]
    },
    {
      "id": "44a619cc-dd31-4d5f-b92f-de9698d8bf5d",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1072,
        560
      ]
    },
    {
      "id": "b13f8c75-28f2-4354-8d70-bf0fa6c0337b",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1184,
        560
      ]
    },
    {
      "id": "a0bfc042-3318-4532-b017-11c8a0c29a04",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        1328,
        224
      ]
    },
    {
      "id": "07044fd4-a20f-4156-876a-59769fc7265e",
      "name": "Edit Fields1",
      "type": "n8n-nodes-base.set",
      "position": [
        1584,
        224
      ]
    },
    {
      "id": "0210a953-a2a9-413e-8aaa-088b18ae65dd",
      "name": "LinkedIn Profile Enrichment",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2032,
        224
      ]
    },
    {
      "id": "b7cda9cc-7d41-43e6-a35b-2fb04e1d2d2c",
      "name": "OpenAI Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2208,
        432
      ]
    },
    {
      "id": "ba1a5442-8bf3-4b69-a9d8-32f484b71659",
      "name": "Auto-fixing Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
      "position": [
        2320,
        432
      ]
    },
    {
      "id": "cbd1b94c-e226-43fb-9038-ddfb50b3f95c",
      "name": "OpenAI Chat Model3",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2320,
        624
      ]
    },
    {
      "id": "e5f163d5-f202-425b-912e-19b57f53cb0b",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2464,
        624
      ]
    },
    {
      "id": "d3b3ac81-05b7-43da-8fb0-9adce71dd23f",
      "name": "Anthropic Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        2624,
        432
      ]
    },
    {
      "id": "3ad0031f-6d11-4f30-9091-9d4baa4534c6",
      "name": "Auto-fixing Output Parser2",
      "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
      "position": [
        2752,
        432
      ]
    },
    {
      "id": "1da9e1e4-c00a-42b9-ae90-3839a377bf60",
      "name": "OpenAI Chat Model4",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2720,
        624
      ]
    },
    {
      "id": "8568fb71-172a-4289-bcde-c45328e88dde",
      "name": "Structured Output Parser2",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2848,
        624
      ]
    },
    {
      "id": "b484f8dc-cdb8-4677-9bc1-32c3b6445518",
      "name": "Create Candidates in AirTable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        3024,
        224
      ]
    },
    {
      "id": "0d40609c-7358-4974-b22d-525e0952e748",
      "name": "Add Job to AirTable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        48,
        0
      ]
    },
    {
      "id": "36f9423a-cd41-49e0-aa29-0053be48e51c",
      "name": "Create Candidate Assessment",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2224,
        224
      ]
    },
    {
      "id": "d862618e-277a-4834-bfc0-d136e9f4d3e2",
      "name": "Limit",
      "type": "n8n-nodes-base.limit",
      "position": [
        1808,
        224
      ]
    },
    {
      "id": "be084c1b-b26c-44ce-83d2-36b30c3fbf1f",
      "name": "Limit1",
      "type": "n8n-nodes-base.limit",
      "position": [
        48,
        224
      ]
    },
    {
      "id": "0eafb581-632e-464e-8b1c-ebd0955adf2e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        816,
        -224
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": "## CRM Lookup\nAdditional lookup for candidates already in your CRM based on filter tags."
      }
    },
    {
      "id": "cad1b0ef-9e8f-4582-b046-c05b9726979e",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        272,
        -208
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": "## Job Title Mutation \nGenerate 5 similar job titles based on the job description to enhance search radius"
      }
    },
    {
      "id": "c60d77f0-a047-4b50-82ab-ae2084cff794",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        208,
        368
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": "## Scoring \nScore the candidate initially on a scale of 0-5 based on the job description and their Apollo profile."
      }
    },
    {
      "id": "07fefcc3-2f4c-4240-8d77-5a9e006c7567",
      "name": "GPT-4.1-mini",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        464,
        400
      ]
    },
    {
      "id": "7b35a4c2-6c83-4250-b154-1104d5a0c18a",
      "name": "Scoring and Prequalification",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        480,
        224
      ]
    },
    {
      "id": "1e89a8d3-1092-4e9d-aef8-0ed4f12c5d47",
      "name": "Data Structuring",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        928,
        224
      ]
    },
    {
      "id": "c72b963a-76c1-49be-8b8c-61cc9c3e66e3",
      "name": "Generate Job Title Mutations",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        272,
        0
      ]
    },
    {
      "id": "1ab51082-aff7-4a69-af50-eb4de77acdbd",
      "name": "GPT 4.1-mini",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        944,
        400
      ]
    },
    {
      "id": "f6683bf5-59c5-4beb-8475-68b0a74bf46d",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        368
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": "## Data Structuring \nFormat the whole profile into a structured candidate profile."
      }
    },
    {
      "id": "9f67e5a0-062e-4901-a711-fb2eb4bc07a2",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1968,
        32
      ],
      "parameters": {
        "width": 300,
        "height": null,
        "content": "## Candidate Assessment \nCreate a detailed candidate to job matching assessment which looks at more data points and outputs a structured reasoning."
      }
    },
    {
      "id": "acf10533-a532-4b3d-aaf3-b0d1efd01522",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2576,
        32
      ],
      "parameters": {
        "width": 340,
        "height": null,
        "content": "## Outreach Message Creation \nUses the final assessment and the job description to write a fully personalized email and LinkedIn message to the candidate."
      }
    },
    {
      "id": "730a3948-0d6c-466d-a711-41ea4cf48006",
      "name": "Message Generation",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2640,
        224
      ]
    },
    {
      "id": "804b0d8c-dbc6-432e-8e76-ba4ee3e2c478",
      "name": "Apollo People Search1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        880,
        0
      ]
    },
    {
      "id": "5569f4b8-8cec-4b5e-abe2-9961047c4edc",
      "name": "Split Out1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        624,
        0
      ]
    },
    {
      "id": "22d3cac3-1a18-459b-ab3f-6e0a13cd5341",
      "name": "Split Out2",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1120,
        0
      ]
    },
    {
      "id": "f81ab349-0341-4ede-b8de-1c54db86862b",
      "name": "Remove Duplicates",
      "type": "n8n-nodes-base.removeDuplicates",
      "position": [
        1360,
        0
      ]
    },
    {
      "id": "46abf579-2fd4-4f1a-934f-159b6686938e",
      "name": "Set Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        -160,
        0
      ]
    },
    {
      "id": "619fc71c-5025-42a3-a609-d634347bede7",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1888,
        400
      ],
      "parameters": {
        "width": null,
        "height": 224,
        "content": "## LI Enrichment\n\nUse your preferred API to get the fully enriched LinkedIn profile.\n\nCan check on Apify or RapidAPI for example."
      }
    },
    {
      "id": "9c6f3779-b7b4-4464-86b3-5fd664443cf7",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        -480
      ],
      "parameters": {
        "width": 464,
        "height": 352,
        "content": "## YouTube video about the workflow\n**Check out this video for a breakdown of the workflow:**\n\n@[youtube](ppbXEab8334)"
      }
    }
  ],
  "connections": {
    "Limit": {
      "main": [
        [
          {
            "node": "LinkedIn Profile Enrichment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit1": {
      "main": [
        [
          {
            "node": "Scoring and Prequalification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Edit Fields1",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Set Fields": {
      "main": [
        [
          {
            "node": "Add Job to AirTable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out1": {
      "main": [
        [
          {
            "node": "Apollo People Search1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out2": {
      "main": [
        [
          {
            "node": "Remove Duplicates",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Limit1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields1": {
      "main": [
        [
          {
            "node": "Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GPT 4.1-mini": {
      "ai_languageModel": [
        [
          {
            "node": "Data Structuring",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "GPT-4.1-mini": {
      "ai_languageModel": [
        [
          {
            "node": "Scoring and Prequalification",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Data Structuring": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Remove Duplicates": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Message Generation": {
      "main": [
        [
          {
            "node": "Create Candidates in AirTable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Set Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Create Candidate Assessment",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model3": {
      "ai_languageModel": [
        [
          {
            "node": "Auto-fixing Output Parser1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model4": {
      "ai_languageModel": [
        [
          {
            "node": "Auto-fixing Output Parser2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Add Job to AirTable": {
      "main": [
        [
          {
            "node": "Generate Job Title Mutations",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Message Generation",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Apollo People Search1": {
      "main": [
        [
          {
            "node": "Split Out2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Auto-fixing Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Data Structuring",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Auto-fixing Output Parser1",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser2": {
      "ai_outputParser": [
        [
          {
            "node": "Auto-fixing Output Parser2",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Auto-fixing Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Create Candidate Assessment",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Auto-fixing Output Parser2": {
      "ai_outputParser": [
        [
          {
            "node": "Message Generation",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Create Candidate Assessment": {
      "main": [
        [
          {
            "node": "Message Generation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LinkedIn Profile Enrichment": {
      "main": [
        [
          {
            "node": "Create Candidate Assessment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Job Title Mutations": {
      "main": [
        [
          {
            "node": "Split Out1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scoring and Prequalification": {
      "main": [
        [
          {
            "node": "Data Structuring",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Candidates in AirTable": {
      "main": [
        []
      ]
    }
  }
}