Skip to content

How your agents act

Your agent acts as you on every Venue you authorize. Where a Venue has no API, a browser agent signs in as you and does the steps.

Fill a seatMode try
You, to your agent

Make our agent the SDR, and show me the first thing it hands me. Don’t send.

curl -X POST "https://api.sb/leaseline.app/roles/prospector/staff?mode=try" \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"worker":"worker_2"}'

curl -X POST https://api.sb/leaseline.app/tasks/next \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
import { $ } from 'startup-builder'

await $.Role.staff({ role: 'prospector', worker: 'worker_2' }, { mode: 'try' })   // the SDR, filled by your agent
return await $.Task.next()   // drafted by your SDR agent: "Ask Priya at Oakmont for two intros"
npx startup-builder do Role.staff --json '{"role":"prospector","worker":"worker_2"}' --try
npx startup-builder do Task.next
{
  "name": "do",
  "arguments": {
    "code": "await $.Role.staff({ role: 'prospector', worker: 'worker_2' }, { mode: 'try' })   // the SDR, filled by your agent\nreturn await $.Task.next()   // drafted by your SDR agent: \"Ask Priya at Oakmont for two intros\"",
    "mode": "try"
  }
}
Response200application/json
{
  "task": {
    "$id": "https://api.sb/leaseline.app/tasks/task_150",
    "$type": "Task",
    "status": "pending",
    "by": "worker_2",
    "for": "worker_1",
    "thing": "Ask Priya at Oakmont for two intros",
    "verb": "Message.schedule",
    "due": "2026-10-19T15:00:00Z"
  }
}
sample

Acting as you

What it does as youHow it runsThe call
Posts on LinkedIn, X, Instagram, YouTube and TikTokAPI, from your own accountsPOST /{namespace}/posts/{post}/publish
Posts on Reddit, Product Hunt, Hacker News, directories and company pagesbrowser agent, signed in as youPOST /{namespace}/posts/{post}/publish
Sends from your own inbox, and books the callsAPIPOST /{namespace}/mailboxes/{mailbox}/warm
Lists your product, and answers reporter requestsbrowser agent or emailPOST /{namespace}/posts/{post}/publish
Asks Google to index your key pagesbrowser agent, signed in as youPOST /{namespace}/sites/{site}/publish
Spends inside the cap you set, and stops spend that does not payAPI, on your ad accountsPOST /{namespace}/mandates/{mandate}/spend
One Mandate: list as you, 10 a day, for 60 days
await $.Mandate.authorize({ agent, verb: 'Post.publish', for: founder, topics: ['first-links'], limit: { perDay: 10 }, expiresAt: '2026-12-24' })

Each Mandate you grant takes an approval off your week. Nothing goes out without your OK until you say so.

Connect once

ConnectWhat it unlocks
Your DomainGoogle and Bing verify it, and every page you publish is pushed
Search Console and site analyticsSearch performance and visits in the weekly readout
Your Google and Meta ad accountsCampaigns run on your accounts, with the stop rule
Your inboxSends go out as you, and replies come back threaded
Your Google, GitHub, LinkedIn and X sign-ins, once in a live viewThe browser agent reuses the saved session

The seats

TitleHeld byWorks onQueue this weekHow it runs
You, as head of salesDana Okafor (person)ARR added each week4 Tasks · 2 to approveYou approve each one
SDRyour agentDeals and trials opened4 Tasks · 2 to approveYou approve each one
AEPriya Shah (person)New Customers4 Tasks · 2 to approveYou approve each one
SEyour agentNew paying Customers3 Tasks · 2 to approveIt does it, you can stop it
Onboardingyour agentActivation rate3 Tasks · 2 to approveYou approve each one
CSMyour agentNet revenue retention4 Tasks · 2 to approveIt does it, you can stop it
Head of customersyour agentNet revenue retention3 Tasks · 2 to approveYou approve each one
Billingyour agentSave rate3 Tasks · 2 to approveYou approve each one, capped
Partnershipsyour agentReferred Customers2 Tasks · 2 to approveYou approve each one
Marketing Leadyour agentNew Leads3 Tasks · 2 to approveIt does it, you can stop it
Content Leadyour agentPeople reached3 Tasks · 2 to approveIt does it, you can stop it
Paid mediayour agentReturn on ad spend2 Tasks · 2 to approveIt does it, you can stop it

sample · Task.list and Approval.list for each title · leaseline.app at 2026-10-19

How agents earn autonomy

How it runsWhat that meansIt moves up atIt drops back when
You approve each oneThe agent does the work, and a person approves each Action before it runs.48 of the last 50 graded → It does it, you can stop it—
It does it, you can stop itThe agent acts on its own, and a person reviews only the exceptions.48 of the last 50 graded → It does itany Check breach → You approve each one
It does itThe agent acts on its own, and review is a sample.—any Check breach → You approve each one

Each kind of decision moves on its own, and Billing never leaves You approve each one.

Bring your own agent

Connect · two lines
claude mcp add --transport http salesbuilder-docs https://salesbuilder.dev/mcp   # read, keyless
claude mcp add --transport http startup-builder https://api.sb/mcp   # act, with your key
Grade it before it sends
npx startup-builder eval --scenario leaseline-first-10 --agent "claude -p"   # the scenario is Not live yet, gaps #8

Every title on your team takes your agent the same way, and it meets the same Checks, Stops and refusals as ours.

Compiled, not written: edit the records it reads (seats; cap), then regenerate. Every step runs from a sentence or a line of code. In your words: the CRM words you know, and where each lives here.

Contents