1. One long video → a queue of shorts candidates you actually approve
A forty-minute video gets scrubbed through manually, twice, hunting for the moments that would work as a short. Whichever clip the creator happens to remember gets cut; the rest never happen. Captions and hooks for each one are written from scratch, at night, in a note app.
Trigger: Webhook (transcript ready from the creator's render/transcription tooling)
How the workflow runs
- Trigger
Transcript lands. A Webhook from the creator's own render or transcription tooling delivers the timed transcript. Editing and upload tools have no first-party connector — Webhook plus Tool (MCP) is the honest path and is labelled as such.
- Loop
Loop over transcript windows. A Loop node walks the transcript in overlapping windows so a cheap agent scores every part of the video, not just the part someone remembered.
- Agent
Score each window as a clip candidate. An economy-tier agent returns strict JSON per window: start/end timecodes, a self-contained score, the hook line already present in the creator's own words, and why it stands alone. It quotes the transcript — it does not write new dialogue.
- Agent
Rank and write the pack. A ranking agent picks the strongest non-overlapping candidates and drafts, per clip, a caption and 2 hook variants in the creator's voice from the tone guide and past top-performing captions in Knowledge.
- Approval
You pick the clips. An Approval node presents the ranked candidates with timecodes and drafted captions. The creator approves, reorders or rejects — nothing is cut, scheduled or posted automatically.
- Output
Approved queue goes to your editor. The approved list — timecodes, captions, hooks — goes to Telegram, Slack or Email as an editing worklist, and optionally to the creator's own scheduling tool via a Tool (MCP) node as unpublished drafts.
Channels & connectors
- Webhook
- Telegram
- Slack
- Knowledge base
- Approval / HITL
- Tool (MCP → editing/scheduling tool)
Outcome
The whole video is scanned for clip candidates, ranked, and handed over as an approved editing worklist with captions and hooks drafted in the creator's voice.
Why it helps
The mechanism: coverage. A human scrub finds the moments they remember; a Loop over the full transcript scores every window at economy-tier cost, so good moments in the middle of a long video stop being invisible. The creator still chooses what gets cut and what gets posted.
Build spec
2 agents — 1 window-scoring agent (runs once per transcript window via the Loop node) + 1 ranking/caption agent (runs once). Loop and Approval are workflow nodes. · Pattern: Map-reduce over transcript windows: Loop (score) → rank + draft (reduce) → creator picks
System prompt (paste-ready)
(Scorer) Assess ONE transcript window from {{channel}} as a standalone short. Return strict JSON {start, end, standalone_score (0-100), hook_line (VERBATIM from the transcript), topic, needs_context (bool), reason}. hook_line MUST be words the creator actually said — quote, never write new dialogue. Score low if the window only makes sense with the preceding twenty minutes. Do not cut, schedule or publish anything; you are proposing candidates for the creator to choose from.Agent roles & model tiers
Window scorer (per window) — Economy tier — it runs across the entire transcript of every video, so it is the dominant cost line and belongs nowhere near a premium model
Score ONE window into schema-valid JSON with verbatim hook lines and honest standalone scoring. No new dialogue, no cutting, no posting.
Ranker + caption drafter (once) — Standard tier — it writes the captions, so it needs the better model, but it only runs once per video
Pick the strongest non-overlapping candidates from the scored windows. For each, draft a caption and 2 hook variants using ONLY the tone guide and past top-performing captions in Knowledge. Match the creator's voice; never invent a claim, a statistic or a product mention. Everything is a draft for approval.
MCP connectors
- Editing / scheduling tool — via a Tool (MCP) node; no first-party connector
- Render / transcription tooling — inbound via Webhook
- Telegram / Slack / Email — real first-party delivery channels
Built-in tools
- knowledge_search (tone guide, past captions that performed, banned-phrase list)
- http_request (write approved clips as unpublished drafts into the creator's own scheduler)
- user-defined tool clip_gate (SpEL): input.standaloneScore >= input.minScore ? (input.needsContext ? 'NEEDS_INTRO' : 'READY') : 'SKIP' — a tenant-authored SpEL expression over the tool's JSON input; sandboxed by construction (no method calls, no constructors, no bean or type references, no loop in the grammar). A data-transform formula, not a scripting engine. The creator sets their own bar for what is worth cutting once, and every video from then on is filtered against it identically
Guardrails
- The agent proposes clips, the creator picks: nothing is cut, scheduled or published without the Approval node, and anything written into the scheduler goes in as an UNPUBLISHED draft
- Hook lines are verbatim transcript quotes — the agent never writes dialogue the creator did not say, so a clip cannot misrepresent them
- Captions are grounded in the creator's own tone guide and past captions, with a banned-phrase list applied; no invented statistics, claims or product mentions
- If the source video is sponsored, every derived short inherits the required disclosure in its caption — a cut-down never quietly drops the disclosure the original carried
- Idempotent per video id and window, so re-running a transcript cannot duplicate candidates in the queue
Cost strategy
Cost is W × (economy-tier scorer) + ONE standard-tier rank-and-caption pass, where W is the number of transcript windows — long videos cost proportionally more, which is exactly right. The scorer must stay economy tier; that is the whole cost story. Run the windows in Parallel batches for speed, and use the clip_gate SpEL filter to drop weak candidates BEFORE the standard-tier captioning pass ever sees them.
Output & delivery
Loop scores every transcript window cheaply → clip_gate filters against the creator's own bar → the ranking agent picks non-overlapping winners and drafts captions and hooks in the creator's voice → the creator approves, reorders or rejects at the Approval node → the approved worklist goes to Telegram/Slack/Email and, optionally, into the creator's scheduler as unpublished drafts.