Skip to content

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

Tools: marketing-automation, ads, social-publishing, cms.

Role contract

PartThis seat
PurposeSo the right buyers hear of the Startup, in their own words, at a cost it can carry.
ResultsPlay-sourced Customers, Fully loaded acquisition cost, Organic share, Referral share, Spam rate, Play payback
Processes ownedLaunches, Experimentation, Content marketing
Works inGraduate
Autonomysupervised; assist on High decisions
Scheduleweekly
Channelsemail, social
Also calledCMO, Head of Marketing, Growth Lead
Filled byA 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

MetricDefinition
Play-sourced CustomersPlay-sourced Customers counts distinct outside paying Customers who arrived through a Play, not through the founder’s own network.
Fully loaded acquisition costFully loaded acquisition cost is every Cost a Play posts, agent and shared Cost included, divided by the outside Customers it acquires.
Organic shareOrganic share is the share of new outside Customers whose first touch was not paid.
Referral shareReferral share is the share of new outside Customers who arrived through a Referral.
Spam rateSpam rate is the share of delivered Messages from a Domain that recipients report as spam, as mailbox providers report it.
Play paybackPlay payback is the days a Play takes for its Customers’ collected outside revenue to cover its spend and Worker cost.
Weekly verdictsWeekly verdicts counts the Experiments and loops that reached a Decision in the week, shown beside the OMTM and never in its place.
Outside revenueOutside revenue is revenue from Customers who share no owner, Studio account, Agreement or sibling chain with the Startup.

Approvals

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.

The agent in this seat
You, to your agent

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.