Marketing Lead
The Marketing Lead owns demand and the story: positioning in the buyer’s words, launches, and the demand Plays each Startup runs.
It holds one seat on the Marketing Team and reports to the Founder.
Responsibilities
- Writes the positioning: alternatives, attributes with proof, value, the ICP, and the category.
- Tells the Brand story to each ICP.
- Picks and tunes the demand Plays the strategy allows.
- Runs each launch and the listings that follow it.
- Keeps acquisition spend inside its envelope and payback Limit.
Verbs
| Verb | Object | Event |
|---|---|---|
| Offer.publish | Offer | Offer.published |
| Brand.create | Brand | Brand.created |
| Brand.update | Brand | Brand.updated |
| Campaign.create | Campaign | Campaign.created |
| Ad.create | Ad | Ad.created |
| Audience.create | Audience | Audience.created |
| Funnel.create | Funnel | Funnel.created |
| Offer.create | Offer | Offer.created |
| Play.apply | Play | Play.applied |
| PlayMix.compile | Play Mix | PlayMix.compiled |
| Source.create | Source | Source.created |
| Story.update | Story | Story.updated |
Tools: marketing-automation, ads, social-publishing, cms.
Role contract
| Part | This seat |
|---|---|
| Purpose | So the right buyers hear of the Startup, in their own words, at a cost it can carry. |
| Results | Play-sourced Customers, Fully loaded acquisition cost, Organic share, Referral share, Spam rate, Play payback |
| Processes owned | Launches, Experimentation, Content marketing |
| Works in | Graduate |
| Autonomy | supervised; assist on High decisions |
| Schedule | weekly |
| Channels | email, social |
| Also called | CMO, Head of Marketing, Growth Lead |
| Filled by | A role agent, from the start; a person answers its Approvals. |
Hands off to
Escalates to Founder.
Processes owned
Accountable for Launches, Experimentation and Content marketing. Does the work in Graduate.
Metrics
| Metric | Definition |
|---|---|
| Play-sourced Customers | Play-sourced Customers counts distinct outside paying Customers who arrived through a Play, not through the founder’s own network. |
| Fully loaded acquisition cost | Fully loaded acquisition cost is every Cost a Play posts, agent and shared Cost included, divided by the outside Customers it acquires. |
| Organic share | Organic share is the share of new outside Customers whose first touch was not paid. |
| Referral share | Referral share is the share of new outside Customers who arrived through a Referral. |
| Spam rate | Spam rate is the share of delivered Messages from a Domain that recipients report as spam, as mailbox providers report it. |
| Play payback | Play payback is the days a Play takes for its Customers’ collected outside revenue to cover its spend and Worker cost. |
| Weekly verdicts | Weekly verdicts counts the Experiments and loops that reached a Decision in the week, shown beside the OMTM and never in its place. |
| Outside revenue | Outside revenue is revenue from Customers who share no owner, Studio account, Agreement or sibling chain with the Startup. |
Approvals
- Asks first. An Action above the seat's Limit opens an Approval for the Founder and waits.
- Takes escalations from the Analyst, Content Lead, Communications Lead, Paid Media Manager and Video Producer.
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 Marketing Lead agent does without asking.
Show me what the Marketing Lead agent did this week.
# 1. Role.update
curl -X PATCH https: //api.sb/ leaseline.app/ roles/ marketing-lead \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"name": "Marketing Lead", "autonomy": {"default": "supervised", "byClass": {"high": "assist"}}}'
# 2. Action.list
curl "https: //api.sb/ leaseline.app/ actions? limit= 50& where= by%20%3D%20%22agent_marketing_lead%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: 'marketing-lead', name: 'Marketing Lead', autonomy: { default: 'supervised', byClass: { high: 'assist' } } })
await $.Action.list({ limit: 50, where: 'by = "agent_marketing_lead" and createdAt >= "2026-10-16"', sort: '-createdAt' })
npx startup-builder do Role.update --json '{"id": "marketing-lead", "name": "Marketing Lead", "autonomy": {"default": "supervised", "byClass": {"high": "assist"}}}'
npx startup-builder do Action.list --json '{"limit": 50, "where": "by = \"agent_marketing_lead\" and createdAt >= \"2026-10-16\"", "sort": "-createdAt"}'
{
"name": "do",
"arguments": {
"code": "await $.Role.update({ id: 'marketing-lead', name: 'Marketing Lead', autonomy: { default: 'supervised', byClass: { high: 'assist' } } })\nreturn await $.Action.list({ limit: 50, where: 'by = \"agent_marketing_lead\" and createdAt >= \"2026-10-16\"', sort: '-createdAt' })"
}
}
Example
Mark is the Marketing Lead of a currency-conversion API that agents buy, with a $0 Demand Budget. He runs only free Plays: listings in three MCP registries, docs Pages that answer conversion questions, and one launch-site post. Paid search waits until a free Play shows which buyers pay.