Quick overview
This workflow runs daily (or manually) to read job openings from Google Sheets, generate a branded vertical “we’re hiring” video project for each opening, render it with Zvid, and write the resulting VideoUrl back to the matching spreadsheet row.
How it works
- Runs every day at 9am (or starts manually) and loads your company branding and rendering settings.
- Checks the optional soundtrack once per run. An unreachable or oversized track is omitted so the hiring video can render without music.
- Reads job openings from Google Sheets and selects rows where Role and ApplyUrl are filled and VideoUrl is empty, capped by maxPerRun.
- For each selected row, builds a Zvid project JSON (role, perks, salary, branding, and media) and validates it with Zvid to get warnings and a credit estimate.
- The default dryRun=false branch renders. Optional dryRun=true saves an editor draft only with a Zvid node exposing Project → Create; published npm v0.1.8 does not expose this operation. Keep false with that version.
- If dryRun is disabled, submits a Zvid render job, polls until it completes (or fails/timeouts), and gets the final video URL.
- Updates the source Google Sheets row with the rendered VideoUrl and outputs a run summary (and optionally downloads the finished video file for review).
Setup
- Use self-hosted n8n. Install @zvid/n8n-nodes-zvid from Settings → Community nodes before configuring credentials; a workspace owner/admin may need to install it. Create a Zvid API credential with a key from https://app.zvid.io/api-keys and Base URL https://api.zvid.io, then select it on every Zvid node.
- Add a Google Sheets OAuth credential and set the spreadsheet document ID and sheet/tab name in both the read and update steps.
- Create a sheet with headers Role, Team, Location, SalaryRange, Perk1, Perk2, Perk3, ApplyUrl, VideoUrl, and leave VideoUrl empty for rows that should be rendered.
- Update companyName, companyLogoUrl, heroVideoUrl, optional musicUrl, colors, maxPerRun and polling settings in Company Config. dryRun defaults to false and spends Zvid credits after successful validation. The optional editor-draft branch requires Project → Create support, unavailable in published v0.1.8.
- If using the schedule trigger, confirm the workflow timezone and the 9am schedule settings match your preferred run time.