AutomationFlowsAI & RAG › Generate Short-form Social Videos with Claude, Elevenlabs, Creatomate and…

Generate Short-form Social Videos with Claude, Elevenlabs, Creatomate and…

Original n8n title: Generate Short-form Social Videos with Claude, Elevenlabs, Creatomate and Google Drive

ByAkshay Chug @akshaychug on n8n.io

Stop recording, editing, and posting manually. This workflow takes any topic or idea as input, uses Claude to write a punchy short-form script, ElevenLabs to generate a natural voiceover, and Creatomate to render the finished video with captions and your brand visuals and then…

Event trigger★★★★☆ complexityAI-powered19 nodesForm TriggerChain LlmAnthropic ChatHTTP RequestGoogle DriveSlackGoogle Sheets
AI & RAG Trigger: Event Nodes: 19 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Chainllm → Form 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": "FjjryeXn5FM2Z7gi",
  "name": "AI Social Media Video Pipeline: Script, Voiceover and Publish with Claude and ElevenLabs",
  "tags": [],
  "nodes": [
    {
      "id": "09dc2488-def8-4d34-8573-19a7dde6b271",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 0,
        "width": 500,
        "height": 1252,
        "content": "## AI Social Media Video Pipeline using Claude and ElevenLabs\n\nStop recording, editing, and posting manually. This workflow takes any topic, idea, or trend as input and produces a finished short-form video -- with script, AI voiceover, and captions -- ready to publish to TikTok, Instagram Reels, or YouTube Shorts. Triggered manually, on a schedule, or from a Google Sheet of content ideas.\n\n### How it works\n\n1. The workflow is triggered via webhook, form, or schedule -- submit a topic and your brand settings and the pipeline starts automatically.\n2. Claude Sonnet writes a tight 45-60 second video script structured for short-form: strong hook in the first 3 seconds, clear value in the middle, call to action at the end.\n3. The script is sent to the ElevenLabs API to generate a natural-sounding voiceover MP3 in your chosen voice.\n4. The voiceover and script are sent to the Creatomate API, which renders a complete video with animated captions, your brand colours, and optional B-roll or background visuals.\n5. Creatomate returns a download URL for the finished video file once rendering is complete.\n6. The final video is uploaded to Google Drive for storage and team access.\n7. A Slack alert is sent with the video title, topic, and Google Drive link so your team knows it is ready to post.\n8. Every video run is logged to Google Sheets with topic, script snippet, status, Drive link, and timestamp.\n\n### Setup steps\n\n- [ ] **Webhook or form trigger** -- Use the Form Trigger to submit topics manually, or replace it with a Schedule Trigger to pull topics automatically from a Google Sheet of content ideas.\n- [ ] **Settings node** -- Open Configure Brand Settings and fill in your brand name, niche, target audience, tone of voice, ElevenLabs voice ID, Creatomate template ID, and output folder name. This is the only node you need to personalise.\n- [ ] **Claude AI** -- Click the Claude Sonnet sub-node under Write Video Script, add a new Anthropic credential, and paste your API key from console.anthropic.com.\n- [ ] **ElevenLabs** -- Get your API key from elevenlabs.io and add it to the Generate Voiceover node. Find your Voice ID in ElevenLabs under Voices -- copy the ID of the voice you want to use.\n- [ ] **Creatomate** -- Sign up at creatomate.com and create a short-form video template. Add your API key and Template ID to the Render Video node. The template controls your visual style, fonts, and brand colours.\n- [ ] **Google Drive** -- Connect your Google account in the Upload to Drive node. The video file will be saved to the folder name you set in the Settings node.\n- [ ] **Slack** -- Connect your Slack account in Notify Team - Video Ready and set your channel. Right-click and Disable if unused.\n- [ ] **Google Sheets** -- Create a sheet called Video Log with columns: Timestamp, Topic, Script Preview, Status, Drive Link, Duration. Connect your Google account in Log Video Run.\n- [ ] Activate and submit your first topic via the form to test the full pipeline end to end.\n\n### Customization\n\nReplace the Form Trigger with a Schedule Trigger that pulls topics from a Google Sheet of ideas to run fully hands-free. Swap Creatomate for Shotstack or JSON2Video if you prefer a different renderer. Add a second branch after Upload to Drive to auto-post using the TikTok, Instagram, or YouTube API."
      },
      "typeVersion": 1
    },
    {
      "id": "f4e21f73-716e-42b7-9e2c-bf95649f620a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        592,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 480,
        "height": 552,
        "content": "## Submit topic and configure brand\n\nA form or webhook accepts your video topic and optional keywords. The Settings node holds all your brand config -- voice, tone, niche, template ID -- so you only edit one place."
      },
      "typeVersion": 1
    },
    {
      "id": "5b9b23f7-601e-4928-b7a5-8d7f9f137709",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 412,
        "height": 596,
        "content": "## Write script with Claude AI\n\nClaude Sonnet writes a 45-60 second short-form video script with a strong hook, clear value section, and call to action. Edit the prompt in this node to match your brand voice and content style."
      },
      "typeVersion": 1
    },
    {
      "id": "9f1c22f2-7ee7-4c3e-a43a-4823fda026e4",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1568,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 408,
        "height": 588,
        "content": "## Generate voiceover with ElevenLabs\n\nSends the script to ElevenLabs and returns an MP3 voiceover file. Set your Voice ID in the Settings node. The audio URL is passed directly to the Creatomate renderer."
      },
      "typeVersion": 1
    },
    {
      "id": "01f10bf5-c463-4f35-9ac1-a3112ebee0c8",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2000,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 480,
        "height": 436,
        "content": "## Render video with Creatomate\n\nSends the voiceover URL and script to Creatomate, which renders the finished video using your template -- with animated captions, brand visuals, and the correct aspect ratio for short-form.\n\nThe node polls until rendering is complete before moving on."
      },
      "typeVersion": 1
    },
    {
      "id": "236c5eec-f420-4fd6-a2e1-e2dd83c1f4f6",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2512,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 752,
        "height": 552,
        "content": "## Store, alert and log\n\nUploads the finished video to Google Drive, sends your team a Slack alert with the Drive link, and logs the full run to Google Sheets. Right-click the Slack node and Disable if unused."
      },
      "typeVersion": 1
    },
    {
      "id": "22798b86-b26e-432e-80c9-4c57b12aa7b2",
      "name": "Submit Video Topic",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        608,
        272
      ],
      "parameters": {
        "options": {},
        "formTitle": "AI Video Generator",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Video Topic or Idea",
              "placeholder": "e.g. 3 reasons most automation projects fail",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Target Platform",
              "fieldOptions": {
                "values": [
                  {
                    "option": "TikTok"
                  },
                  {
                    "option": "Instagram Reels"
                  },
                  {
                    "option": "YouTube Shorts"
                  },
                  {
                    "option": "All Platforms"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Additional Keywords or Notes",
              "placeholder": "e.g. mention our product, keep it casual, avoid jargon"
            }
          ]
        },
        "responseMode": "lastNode",
        "formDescription": "Submit a topic and the pipeline will generate a ready-to-post video automatically."
      },
      "typeVersion": 2.2
    },
    {
      "id": "fa5c8673-faef-42bf-b131-8ad99de56018",
      "name": "Configure Brand Settings",
      "type": "n8n-nodes-base.code",
      "position": [
        848,
        272
      ],
      "parameters": {
        "jsCode": "// ================================================\n//  EDIT THIS NODE -- all your settings live here\n// ================================================\n\nconst BRAND_NAME       = 'Your Brand Name';\nconst NICHE            = 'AI automation for business owners';\nconst TARGET_AUDIENCE  = 'Solo founders and agency owners interested in AI tools';\nconst TONE_OF_VOICE    = 'Direct, confident, no fluff -- like a smart friend who knows their stuff';\nconst ELEVENLABS_VOICE_ID   = 'YOUR_ELEVENLABS_VOICE_ID';\nconst CREATOMATE_TEMPLATE_ID = 'YOUR_CREATOMATE_TEMPLATE_ID';\nconst DRIVE_FOLDER_NAME      = 'AI Videos';\nconst VIDEO_DURATION_SECONDS = 50;\n\n// ================================================\n//  DO NOT EDIT BELOW THIS LINE\n// ================================================\n\nconst form = $input.first().json;\nconst topic    = form['Video Topic or Idea'] || '';\nconst platform = form['Target Platform'] || 'All Platforms';\nconst notes    = form['Additional Keywords or Notes'] || '';\nconst timestamp = new Date().toISOString();\nconst videoId   = 'VID-' + Date.now();\n\nreturn [{\n  json: {\n    brand_name:           BRAND_NAME,\n    niche:                NICHE,\n    target_audience:      TARGET_AUDIENCE,\n    tone:                 TONE_OF_VOICE,\n    elevenlabs_voice_id:  ELEVENLABS_VOICE_ID,\n    creatomate_template:  CREATOMATE_TEMPLATE_ID,\n    drive_folder:         DRIVE_FOLDER_NAME,\n    duration_seconds:     VIDEO_DURATION_SECONDS,\n    topic,\n    platform,\n    notes,\n    timestamp,\n    video_id: videoId\n  }\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "d3b7c52f-b9c8-4c4d-9fee-1ab2453e46c6",
      "name": "Write Video Script",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1120,
        272
      ],
      "parameters": {
        "text": "=You are an expert short-form video scriptwriter for {{ $json.platform }}.\n\nBRAND: {{ $json.brand_name }}\nNICHE: {{ $json.niche }}\nAUDIENCE: {{ $json.target_audience }}\nTONE: {{ $json.tone }}\nTOPIC: {{ $json.topic }}\nNOTES: {{ $json.notes }}\nTARGET DURATION: {{ $json.duration_seconds }} seconds when spoken at a natural pace\n\nWrite a video script following this exact structure:\n\nHOOK (first 3 seconds -- one punchy sentence that stops the scroll):\n[hook line]\n\nBODY (core value -- 3 to 4 short punchy points, each 1-2 sentences max):\n[point 1]\n[point 2]\n[point 3]\n\nCTA (last 3 seconds -- one clear action):\n[call to action]\n\nSTRICT RULES:\n- Write only the spoken words -- no stage directions, no camera notes, no emojis\n- Each sentence should be short enough to read aloud in one breath\n- Hook must create curiosity or state a bold claim\n- No filler phrases like \"in this video\" or \"make sure to like and subscribe\"\n- Total word count: 90 to 130 words for a 45-60 second video\n- Match the tone exactly: {{ $json.tone }}\n\nOutput only the script with the section labels HOOK, BODY, CTA. Nothing else.",
        "promptType": "define"
      },
      "typeVersion": 1.4
    },
    {
      "id": "30833118-4ec8-4d68-b74f-719a32935f11",
      "name": "Claude Sonnet",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        1120,
        464
      ],
      "parameters": {
        "model": "claude-sonnet-4-5",
        "options": {
          "temperature": 0.8
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "b80d5142-e4b9-4f0a-a93d-68b30af1237a",
      "name": "Extract Script",
      "type": "n8n-nodes-base.set",
      "position": [
        1392,
        272
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d4047623-ac0b-400c-960e-5be769a821cc",
              "name": "script",
              "type": "string",
              "value": "={{ $json.text.trim() }}"
            },
            {
              "id": "85083da4-397b-4722-88c0-3bbbc37c32e1",
              "name": "topic",
              "type": "string",
              "value": "={{ $('Configure Brand Settings').item.json.topic }}"
            },
            {
              "id": "3053c07c-8011-422c-80f5-e179e45a9b0f",
              "name": "platform",
              "type": "string",
              "value": "={{ $('Configure Brand Settings').item.json.platform }}"
            },
            {
              "id": "f8c80b01-8883-42fe-9405-409856e744b2",
              "name": "notes",
              "type": "string",
              "value": "={{ $('Configure Brand Settings').item.json.notes }}"
            },
            {
              "id": "61c3babb-82c5-43da-85ed-a3b118db1083",
              "name": "brand_name",
              "type": "string",
              "value": "={{ $('Configure Brand Settings').item.json.brand_name }}"
            },
            {
              "id": "b210be3c-220a-4a81-a3e4-21aecd4a9af9",
              "name": "elevenlabs_voice_id",
              "type": "string",
              "value": "={{ $('Configure Brand Settings').item.json.elevenlabs_voice_id }}"
            },
            {
              "id": "efdcbcfb-251b-45fa-85fe-30f3906d4e8b",
              "name": "creatomate_template",
              "type": "string",
              "value": "={{ $('Configure Brand Settings').item.json.creatomate_template }}"
            },
            {
              "id": "dcee1c97-6771-436f-8731-24c321244c50",
              "name": "drive_folder",
              "type": "string",
              "value": "={{ $('Configure Brand Settings').item.json.drive_folder }}"
            },
            {
              "id": "5ba71553-56f7-4f3c-9db5-a358c802eaf9",
              "name": "timestamp",
              "type": "string",
              "value": "={{ $('Configure Brand Settings').item.json.timestamp }}"
            },
            {
              "id": "db718d46-abea-4382-b00b-d6e231c227a2",
              "name": "video_id",
              "type": "string",
              "value": "={{ $('Configure Brand Settings').item.json.video_id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "94f0027f-54bd-44ec-841d-c2537997793a",
      "name": "Generate Voiceover",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1632,
        272
      ],
      "parameters": {
        "url": "={{ 'https://api.elevenlabs.io/v1/text-to-speech/' + $json.elevenlabs_voice_id }}",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        },
        "sendBody": true,
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {}
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "xi-api-key",
              "value": "YOUR_ELEVENLABS_API_KEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "1eae384a-b4ca-40a7-9d7d-eee4c5711fb3",
      "name": "Upload Audio to Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1872,
        272
      ],
      "parameters": {
        "name": "={{ $('Extract Script').item.json.video_id + '-voiceover.mp3' }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_AUDIO_FOLDER_ID"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "f1be8962-53ff-4b4a-b6cb-9a4d8d91c957",
      "name": "Render Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2112,
        272
      ],
      "parameters": {
        "url": "https://api.creatomate.com/v1/renders",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {}
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e7b3b052-2753-422a-905f-b3e2f6524be0",
      "name": "Wait for Render",
      "type": "n8n-nodes-base.wait",
      "position": [
        2320,
        272
      ],
      "parameters": {
        "amount": 60
      },
      "typeVersion": 1.1
    },
    {
      "id": "cec6819d-d07f-4f7f-a057-112ebc9cff69",
      "name": "Get Render Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2544,
        272
      ],
      "parameters": {
        "url": "={{ 'https://api.creatomate.com/v1/renders/' + $('Render Video').item.json[0].id }}",
        "options": {},
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "7a8057a9-a573-4b10-92b9-5cc3e3e16ccd",
      "name": "Upload Video to Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2784,
        272
      ],
      "parameters": {
        "name": "={{ $('Extract Script').item.json.video_id + '-' + $('Extract Script').item.json.topic.replace(/[^a-zA-Z0-9]/g, '-') + '.mp4' }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_VIDEO_FOLDER_ID"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "fac33d71-f3f9-4b77-bbb4-f413564893d9",
      "name": "Notify Team - Video Ready",
      "type": "n8n-nodes-base.slack",
      "position": [
        3024,
        160
      ],
      "parameters": {
        "text": "New video ready to post!\n\nTopic: {{ $('Extract Script').item.json.topic }}\nPlatform: {{ $('Extract Script').item.json.platform }}\nVideo ID: {{ $('Extract Script').item.json.video_id }}\nDrive link: {{ $json.webViewLink }}\n\nReview and schedule for posting.",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "#content-team"
        },
        "otherOptions": {}
      },
      "typeVersion": 2.2
    },
    {
      "id": "dbc70656-b537-46b8-a203-2daefa2416b3",
      "name": "Log Video Run",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3024,
        384
      ],
      "parameters": {
        "columns": {
          "value": {
            "Topic": "={{ $('Extract Script').item.json.topic }}",
            "Status": "Rendered",
            "Platform": "={{ $('Extract Script').item.json.platform }}",
            "Video ID": "={{ $('Extract Script').item.json.video_id }}",
            "Timestamp": "={{ $('Extract Script').item.json.timestamp }}",
            "Drive Link": "={{ $('Upload Video to Drive').item.json.webViewLink }}",
            "Script Preview": "={{ $('Extract Script').item.json.script.split('\\n')[0] }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Video Log"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_GOOGLE_SHEET_ID"
        }
      },
      "typeVersion": 4.5
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "2c1e7079-b56d-47b7-87ce-92cb447510e9",
  "connections": {
    "Render Video": {
      "main": [
        [
          {
            "node": "Wait for Render",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Claude Sonnet": {
      "ai_languageModel": [
        [
          {
            "node": "Write Video Script",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Extract Script": {
      "main": [
        [
          {
            "node": "Generate Voiceover",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Render": {
      "main": [
        [
          {
            "node": "Get Render Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Render Status": {
      "main": [
        [
          {
            "node": "Upload Video to Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Voiceover": {
      "main": [
        [
          {
            "node": "Upload Audio to Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Submit Video Topic": {
      "main": [
        [
          {
            "node": "Configure Brand Settings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Write Video Script": {
      "main": [
        [
          {
            "node": "Extract Script",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Audio to Drive": {
      "main": [
        [
          {
            "node": "Render Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Video to Drive": {
      "main": [
        [
          {
            "node": "Notify Team - Video Ready",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Configure Brand Settings": {
      "main": [
        [
          {
            "node": "Write Video Script",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

Stop recording, editing, and posting manually. This workflow takes any topic or idea as input, uses Claude to write a punchy short-form script, ElevenLabs to generate a natural voiceover, and Creatomate to render the finished video with captions and your brand visuals and then…

Source: https://n8n.io/workflows/15832/ — 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

Transform simple ideas into viral-ready Bigfoot vlogs! This automated workflow creates charming 8-scene video content featuring "Sam" the Bigfoot - a lovable, outdoorsy character inspired by popular Y

Form Trigger, Anthropic Chat, Chain Llm +4
AI & RAG

Episode 11: AI shorts factory app. Uses httpRequest, googleSheets, lmChatOpenAi, lmChatOllama. Event-driven trigger; 96 nodes.

HTTP Request, Google Sheets, OpenAI Chat +15
AI & RAG

Content - Newsletter Agent. Uses formTrigger, chainLlm, outputParserStructured, httpRequest. Event-driven trigger; 91 nodes.

Form Trigger, Chain Llm, Output Parser Structured +8
AI & RAG

Content - Newsletter Agent. Uses formTrigger, chainLlm, outputParserStructured, httpRequest. Event-driven trigger; 87 nodes.

Form Trigger, Chain Llm, Output Parser Structured +7
AI & RAG

This end-to-end AI-powered recruitment automation workflow helps HR and talent acquisition teams automate the complete hiring pipeline—from resume intake and parsing to GPT-4-based evaluation, TA appr

Form Trigger, Output Parser Structured, Google Drive +10