{
  "name": "Schedule interviews and send GPT-4 reminders with Google Calendar, Gmail, Slack and Recrutei",
  "nodes": [
    {
      "id": "e1e600af-68bb-40ee-9ea9-4892d3e0082e",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        0,
        48
      ]
    },
    {
      "id": "beaa4d9f-6ed1-4a4c-9e05-a3d2dcbb3be0",
      "name": "Formatting the start date/time",
      "type": "n8n-nodes-base.set",
      "position": [
        208,
        48
      ]
    },
    {
      "id": "89edb4de-bddd-44a2-bdaf-4f80688d6d41",
      "name": "Create the interview and invites the candidate",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        432,
        48
      ]
    },
    {
      "id": "2bd551be-0803-4913-9a12-434102de247c",
      "name": "Creates the e-mail content",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        640,
        48
      ]
    },
    {
      "id": "4f8691e4-ba78-4f6c-bdbc-5546ad0e813e",
      "name": "Separates the text",
      "type": "n8n-nodes-base.set",
      "position": [
        992,
        48
      ]
    },
    {
      "id": "eb9768b8-dac9-4edc-b7d6-c057aa34dcde",
      "name": "Wait until 1 day before the interview",
      "type": "n8n-nodes-base.wait",
      "position": [
        1200,
        48
      ]
    },
    {
      "id": "882540c2-3fb0-4f16-b970-af72331e8b77",
      "name": "Send the message to the candidate",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1408,
        48
      ]
    },
    {
      "id": "fe72fa9e-ef23-4361-88fc-af7b55611e66",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -256,
        -512
      ],
      "parameters": {
        "width": 1008,
        "height": 400,
        "content": "## Overview: AI-Powered Interview Scheduling & Reminders\n\nThis workflow automates the end-to-end process of scheduling technical or behavioral interviews. It captures interview data via Webhook, creat"
      }
    },
    {
      "id": "c45da63d-2c4a-48b7-b534-c4236af87ae6",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        -96
      ],
      "parameters": {
        "width": 624,
        "height": 352,
        "content": "## Ingestion & Scheduling\nThe workflow triggers when candidate and vacancy details are received. A specialized Code node formats the date/time into ISO strings, ensuring Google Calendar creates the ev"
      }
    },
    {
      "id": "f03f7424-6d46-4b58-97f9-d249cda66b72",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        592,
        -96
      ],
      "parameters": {
        "width": 544,
        "height": 352,
        "content": "## AI-Driven Copywriting\nInstead of using rigid templates, the OpenAI node receives specific meeting details (candidate name, vacancy, and Meet link). It drafts a professional, humanized reminder emai"
      }
    },
    {
      "id": "c0186b6e-d592-4cc8-8121-f9ad1a418816",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1152,
        -96
      ],
      "parameters": {
        "width": 624,
        "height": 352,
        "content": "## Smart Delivery\nTo maximize attendance, the workflow enters a \"Wait\" state. It calculates the optimal time to send the reminder (24 hours before the session) and then automatically triggers the Gmai"
      }
    },
    {
      "id": "16e3fd8f-b31f-4ee9-a574-1d63e06974bb",
      "name": "Adding observation in candidate",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1616,
        48
      ]
    },
    {
      "id": "87949356-4ec5-4ba1-8789-a538aedf8030",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1824,
        48
      ]
    },
    {
      "id": "56924ef0-840f-4525-a925-f7a2316ffa5c",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        2240,
        48
      ]
    },
    {
      "id": "abbc00db-760d-4b51-97df-14d786c66f0b",
      "name": "Adding observation in candidate1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2544,
        -176
      ]
    },
    {
      "id": "542400b1-7e99-48b8-9535-8c0158d4288b",
      "name": "Getting the vacancy",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2752,
        -176
      ]
    },
    {
      "id": "847b3961-920d-4778-b3c5-4009352f6365",
      "name": "Selecting pipe stage id",
      "type": "n8n-nodes-base.set",
      "position": [
        2960,
        -176
      ]
    },
    {
      "id": "aa50dec9-d9f9-442b-9944-799b56d1f7ab",
      "name": "Moving candidate to last stage",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3168,
        -176
      ]
    },
    {
      "id": "d7034174-e608-4e51-bdc9-d0242c648cda",
      "name": "Reproval e-mail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2544,
        192
      ]
    },
    {
      "id": "714fa0c8-3a49-4134-bde9-ca337a4f914c",
      "name": "Request for candidate aproval",
      "type": "n8n-nodes-base.slack",
      "position": [
        2032,
        48
      ]
    },
    {
      "id": "9a8f9ee3-3a93-4e49-af05-f119fff24c1c",
      "name": "Reproving candidate",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2752,
        192
      ]
    },
    {
      "id": "f2aa7f0f-02d8-49e6-be41-d35f06708347",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1792,
        -96
      ],
      "parameters": {
        "width": 608,
        "height": 352,
        "content": "## Approving/Declining candidate\nAfter the interview, it sends a message of approval/decline in a chosen channel in Slack"
      }
    },
    {
      "id": "6651d5e5-3334-4a2b-89e0-598cf7c8b531",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2416,
        -288
      ],
      "parameters": {
        "width": 944,
        "height": 320,
        "content": "## Moving the candidate to the last pipe stage\nUsing the Recrutei's API, it adds an observation in the candidate informing the decision, it gets the vacancy to separate the pipe_stage_id of the last p"
      }
    },
    {
      "id": "3cfddf26-7d84-4533-80b2-569d71f16d7f",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2416,
        48
      ],
      "parameters": {
        "width": 944,
        "height": 368,
        "content": "## Reproving candidate\nIt sends a reproval e-mail to the candidate and then creates an observation in the candidate at the ATS informing the decision"
      }
    }
  ],
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Adding observation in candidate1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Reproval e-mail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Request for candidate aproval",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Formatting the start date/time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Reproval e-mail": {
      "main": [
        [
          {
            "node": "Reproving candidate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Separates the text": {
      "main": [
        [
          {
            "node": "Wait until 1 day before the interview",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send the message to the candidate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Getting the vacancy": {
      "main": [
        [
          {
            "node": "Selecting pipe stage id",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Selecting pipe stage id": {
      "main": [
        [
          {
            "node": "Moving candidate to last stage",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Creates the e-mail content": {
      "main": [
        [
          {
            "node": "Separates the text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Request for candidate aproval": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Formatting the start date/time": {
      "main": [
        [
          {
            "node": "Create the interview and invites the candidate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Adding observation in candidate": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Adding observation in candidate1": {
      "main": [
        [
          {
            "node": "Getting the vacancy",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send the message to the candidate": {
      "main": [
        [
          {
            "node": "Adding observation in candidate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait until 1 day before the interview": {
      "main": [
        [
          {
            "node": "Send the message to the candidate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create the interview and invites the candidate": {
      "main": [
        [
          {
            "node": "Creates the e-mail content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}