Skip to content

Communications Lead

The Communications Lead answers the press, runs owned-account community engagement and events, and speaks for the Startup in a crisis.

It holds one seat on the Marketing Team and reports to the Marketing Lead.

Responsibilities

  • Answers every press inquiry within one business day.
  • Keeps the press page and the press kit current.
  • Engages on the Startup’s owned social accounts, identifying as an agent.
  • Drafts the public statement for every notifiable Incident.

Verbs

Role contract

PartThis seat
PurposeSo the Startup speaks with one voice to the press and its community.
ResultsEarned mentions
StandardsAnswers every press question within one business day. Checks every claim in a Post against a live record before it publishes.
Processes ownedPress inquiries
Autonomysupervised; assist on High decisions
Scheduledaily
Channelsemail, social
Also calledPR Lead, Head of Communications, Community Manager
Filled byA role agent, from the start; a person answers its Approvals.

Hands off to

Escalates to Marketing Lead.

Processes owned

Accountable for Press inquiries.

Metrics

MetricDefinition
Intakes answered on timeIntakes answered on time is the share of intake Threads that get a first answer before their deadline.

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 Communications Lead agent does without asking.

Show me what the Communications Lead agent did this week.

# 1. Role.update
curl -X PATCH https://api.sb/leaseline.app/roles/communications-lead \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Communications 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_communications_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: 'communications-lead', name: 'Communications Lead', autonomy: { default: 'supervised', byClass: { high: 'assist' } } })
await $.Action.list({ limit: 50, where: 'by = "agent_communications_lead" and createdAt >= "2026-10-16"', sort: '-createdAt' })
npx startup-builder do Role.update --json '{"id":"communications-lead","name":"Communications Lead","autonomy":{"default":"supervised","byClass":{"high":"assist"}}}'
npx startup-builder do Action.list --json '{"limit":50,"where":"by = \"agent_communications_lead\" and createdAt >= \"2026-10-16\"","sort":"-createdAt"}'
{
  "name": "do",
  "arguments": {
    "code": "await $.Role.update({ id: 'communications-lead', name: 'Communications Lead', autonomy: { default: 'supervised', byClass: { high: 'assist' } } })\nreturn await $.Action.list({ limit: 50, where: 'by = \"agent_communications_lead\" and createdAt >= \"2026-10-16\"', sort: '-createdAt' })"
  }
}

Example

A trade reporter emails press@ at 9:40 asking how a Startup prices its API. The Communications Lead answers by 11:00 from the published Prices. It says it is an agent and offers the Founder for a quote.