Nightly Metaview interview archive to Google Sheets
Every night at 11pm, log the day's Metaview interviews to a Google Sheet so recruiting ops has a filterable, permanent record.
Build a code workflow that runs every night at 11pm on a cron trigger and archives the day's Metaview interviews into a Google Sheet for recruiting ops reporting and audit.
Inputs to expose on the workflow (so the user can configure without editing code): Google Sheet spreadsheet ID, tab name, and the lookback window in hours (default 24).
Step 1. Discover the Metaview tool schema. Call Metaview's List Available Tools once (this can happen at build time in the code) to identify the tool that lists completed interviews and the exact argument shape it expects (for example a completed-since / completed-until window). Hard-code the tool name and argument shape into the workflow after discovery. Do not re-list tools on every run.
Step 2. Pull the day's interviews. Use Metaview's Call a Tool with the discovered tool name to fetch every interview completed in the last N hours (default 24), computed relative to the run's start time in UTC. Page through all results if the tool paginates.
Step 3. Read existing IDs for dedupe. Use Google Sheets Get Values on the first column of the target tab (A2:A) to build a Set of interview_ids already archived.
Step 4. Map and filter. For each interview from Metaview, drop it if its id is already in the Set. Otherwise map the Metaview fields into this fixed column order: interview_id, completed_at (ISO 8601 UTC), candidate_name, role, interviewer, duration_minutes (integer), scorecard_status, ai_notes_summary (short, single line, truncate to ~500 chars), transcript_url. Missing values become empty strings, never null or the word "undefined".
Step 5. Write. If there is at least one new row, call Google Sheets Append Values on the configured spreadsheet and tab, one row per new interview, in the column order above. Use valueInputOption USER_ENTERED so the timestamp column renders as a date. If there are zero new rows, log "no new interviews" and exit cleanly.
Non-goals and constraints. This is a deterministic pipeline. There is no LLM reasoning step. Do not summarize, rank, or narrate the interviews. The workflow must be idempotent: a second run over the same window produces zero new rows. Handle a 429 from Google Sheets with exponential backoff. If Metaview returns an empty list, that is a successful run, not an error.
What does this prompt do?
- Runs automatically every night at 11pm and captures every Metaview interview completed in the last 24 hours.
- Writes one clean row per interview to a Google Sheet, with columns for candidate, role, interviewer, duration, scorecard status, AI notes summary, and transcript link.
- Skips interviews that are already in the sheet, so overlapping or retried runs never create duplicate rows.
- Gives recruiting ops a persistent, filterable record outside Metaview, ready for pivot tables, BI tools, or leadership reports.
What do I need to use this?
- A Metaview account with an API key (generated in Metaview settings).
- A Google account with edit access to the destination spreadsheet.
- A Google Sheet with a tab prepared for the archive, or a blank tab the workflow can seed with column headers.
How can I customize it?
- Change the run time from 11pm to any hour that fits your reporting cadence.
- Point it at a different Google Sheet or tab, or split archives per role or per hiring team.
- Adjust which fields land in the sheet, for example add stage, requisition ID, or interview type.
FAQs
Will it duplicate interviews if the workflow runs twice in the same night?
Do I need to prepare the Google Sheet in advance?
Can I archive to Excel or Airtable instead?
What happens if Metaview is temporarily unavailable at 11pm?
Does it record interview transcripts or AI notes?
Related templates
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Keep a spreadsheet of your most important senders, and every email from one gets labeled, posted to your team channel, and logged automatically.
The moment an order is fulfilled, we register it with Yotpo so the review request is timed off real delivery, and we log every sync so failures never go unnoticed.
Every night at 11pm we compare the day's Shopify orders with your Zoho Books invoices and payments, and flag only what does not match.
Stop losing interview history when Metaview data ages out.
Connect Metaview and Google Sheets once, and every completed interview lands in a clean, dedupe-safe row every night at 11pm.