Content Lead
The Content Lead writes and publishes the Pages, answers, and data reports that search engines and answer engines cite.
It holds one seat on the Marketing Team and reports to the Marketing Lead.
Responsibilities
- Answers the questions buyers and Agents ask, with every claim read from the record.
- Publishes every Page with a Markdown twin and an entry in llms.txt.
- Turns the Startup’s own data into reports others cite.
- Measures citations and qualified Visits 28 days after each publish.
Verbs
| Verb | Object | Event |
|---|---|---|
| Content.create | Content | Content.created |
| Content.update | Content | Content.updated |
| Page.create | Page | Page.created |
| Keyword.create | Keyword | Keyword.created |
| Content.draft | Content | Content.drafted |
| Content.publish | Content | Content.published |
| Keyword.measure | Keyword | Keyword.measured |
| Page.update | Page | Page.updated |
Tools: cms, knowledge-base, newsletter.
Role contract
| Part | This seat |
|---|---|
| Purpose | So buyers and answer engines find the Startup by the questions they already ask. |
| Results | Organic visits |
| Standards | Cites a source for every number on a Page. Refreshes any Page whose qualified Visits fall four weeks running. |
| Limits | Page.create up to 5 calls per week |
| Mandates | Writes and revises Content in the Brand’s voice (Content.create, Content.update) |
| Approvals | Page.create |
| Autonomy | supervised; assist on High decisions |
| Schedule | weekly |
| Channels | email |
| Also called | SEO Specialist, SEO Lead, Content Marketer |
| Filled by | A role agent, from the start; a person answers its Approvals. |
Hands off to
Escalates to Marketing Lead.
Processes owned
Runs Content marketing: its Publish content 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 Content Lead agent does without asking.
Show me what the Content Lead agent did this week.
# 1. Role.update
curl -X PATCH https: //api.sb/ leaseline.app/ roles/ content-lead \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"name": "Content 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_content_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: 'content-lead', name: 'Content Lead', autonomy: { default: 'supervised', byClass: { high: 'assist' } } })
await $.Action.list({ limit: 50, where: 'by = "agent_content_lead" and createdAt >= "2026-10-16"', sort: '-createdAt' })
npx startup-builder do Role.update --json '{"id": "content-lead", "name": "Content Lead", "autonomy": {"default": "supervised", "byClass": {"high": "assist"}}}'
npx startup-builder do Action.list --json '{"limit": 50, "where": "by = \"agent_content_lead\" and createdAt >= \"2026-10-16\"", "sort": "-createdAt"}'
{
"name": "do",
"arguments": {
"code": "await $.Role.update({ id: 'content-lead', name: 'Content Lead', autonomy: { default: 'supervised', byClass: { high: 'assist' } } })\nreturn await $.Action.list({ limit: 50, where: 'by = \"agent_content_lead\" and createdAt >= \"2026-10-16\"', sort: '-createdAt' })"
}
}
Example
Cora is the Content Lead of an API that sells business-registration records. Each month she publishes a report on new company formations by state, every figure read from the Dataset, with a Markdown twin. After 28 days it holds 14 citations in AI answers and 310 qualified Visits.