Video Producer
The Video Producer turns briefs into generated Videos cut for every venue format, with likeness consent and licences recorded.
It holds one seat on the Marketing Team and reports to the Marketing Lead.
Responsibilities
- Renders each Video in every format its venues need.
- Records likeness consent and the licence of every asset used.
- Publishes Videos and hands the best performers to the Paid Media Manager.
Verbs
Role contract
| Part | This seat |
|---|---|
| Purpose | So every venue gets Video cut to its format, with every right on record. |
| Results | Video completion rate |
| Standards | Cuts every Video to each venue’s format and length. Records the right to every clip, voice and face before it publishes. |
| Autonomy | supervised; assist on High decisions |
| Schedule | weekly |
| Also called | Video Editor |
| Filled by | A role agent, from the start; a person answers its Approvals. |
Hands off to
Escalates to Marketing Lead.
Processes owned
Runs Launches: its Launch announcement Workflow is this seat's job.
Metrics
The seat answers to its Team's Metrics: qualified visitors, signup conversion and answer share.
Approvals
- Asks first. An Action above the seat's Limit opens an Approval for the Marketing Lead and waits.
Filled by
A role agent fills the seat in every new Startup. Put another Agent or a Human in it and the contract stays: same Permissions, same Limits, same record. Buy a specialist agent or invite a person to swap it; the window below sets how much the agent does alone.
Set how much the Video Producer agent does without asking.
Show me what the Video Producer agent did this week.
# 1. Role.update
curl -X PATCH https: //api.sb/ leaseline.app/ roles/ video-producer \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"name": "Video Producer", "autonomy": {"default": "supervised", "byClass": {"high": "assist"}}}'
# 2. Action.list
curl "https: //api.sb/ leaseline.app/ actions? limit= 50& where= by%20%3D%20%22agent_video_producer%22%20and%20createdAt%20%3E%3D%20%222026-10-16%22& sort= -createdAt" \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
import { $ } from 'startup-builder'
await $.Role.update({ id: 'video-producer', name: 'Video Producer', autonomy: { default: 'supervised', byClass: { high: 'assist' } } })
await $.Action.list({ limit: 50, where: 'by = "agent_video_producer" and createdAt >= "2026-10-16"', sort: '-createdAt' })
npx startup-builder do Role.update --json '{"id": "video-producer", "name": "Video Producer", "autonomy": {"default": "supervised", "byClass": {"high": "assist"}}}'
npx startup-builder do Action.list --json '{"limit": 50, "where": "by = \"agent_video_producer\" and createdAt >= \"2026-10-16\"", "sort": "-createdAt"}'
{
"name": "do",
"arguments": {
"code": "await $.Role.update({ id: 'video-producer', name: 'Video Producer', autonomy: { default: 'supervised', byClass: { high: 'assist' } } })\nreturn await $.Action.list({ limit: 50, where: 'by = \"agent_video_producer\" and createdAt >= \"2026-10-16\"', sort: '-createdAt' })"
}
}
Example
A brief asks for a 30-second product demo. The Video Producer renders a 16:9 cut for the Site, a 9:16 cut for short-video venues and a square cut for feeds. It records the music licence and hands the best performer to the Paid Media Manager.