URL: /capabilities/how-your-agents-act · Id: `page:/capabilities/how-your-agents-act`

# How your agents act

> Your agents act as you on every account you authorize: by API where one exists, and by a browser agent signed in as you where none does.

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.

```text title="Ask"
Make our agent the SDR, and show me the first thing it hands me. Don’t send.
```

```ts title="SDK"
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"
```

```json title="Response · sample"
{
  "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"
  }
}
```

## Acting as you
| What it does as you | How it runs | The call |
| --- | --- | --- |
| Posts on LinkedIn, X, Instagram, YouTube and TikTok | API, from your own accounts | <Op verb="Post.publish" /> |
| Posts on Reddit, Product Hunt, Hacker News, directories and company pages | browser agent, signed in as you | <Op verb="Post.publish" /> |
| Sends from your own inbox, and books the calls | API | <Op verb="Mailbox.warm" /> |
| Lists your product, and answers reporter requests | browser agent or email | <Op verb="Post.publish" /> |
| Asks Google to index your key pages | browser agent, signed in as you | <Op verb="Site.publish" /> |
| Spends inside the cap you set, and stops spend that does not pay | API, on your ad accounts | <Op verb="Mandate.spend" /> |

```ts title="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
| Connect | What it unlocks |
| --- | --- |
| Your Domain | Google and Bing verify it, and every page you publish is pushed |
| Search Console and site analytics | Search performance and visits in the weekly readout |
| Your Google and Meta ad accounts | Campaigns run on your accounts, with the stop rule |
| Your inbox | Sends go out as you, and replies come back threaded |
| Your Google, GitHub, LinkedIn and X sign-ins, once in a live view | The browser agent reuses the saved session |

## The seats
| Title | Held by | Works on | Queue this week | How it runs |
| --- | --- | --- | --- | --- |
| <a id="founder"></a>You, as head of sales | Dana Okafor (person) | [ARR added each week](/revenue/net-new-arr) | 4 Tasks · 2 to approve | You approve each one |
| <a id="sdr"></a>SDR | your agent | [Deals and trials opened](/revenue/opened-deals-and-trials) | 4 Tasks · 2 to approve | You approve each one |
| <a id="ae"></a>AE | Priya Shah (person) | [New Customers](/revenue/new-arr) | 4 Tasks · 2 to approve | You approve each one |
| <a id="se"></a>SE | your agent | [New paying Customers](/revenue/new-paying-customers) | 3 Tasks · 2 to approve | It does it, you can stop it |
| <a id="onboarding"></a>Onboarding | your agent | [Activation rate](/revenue/activation-rate) | 3 Tasks · 2 to approve | You approve each one |
| <a id="csm"></a>CSM | your agent | [Net revenue retention](/revenue/net-revenue-retention) | 4 Tasks · 2 to approve | It does it, you can stop it |
| <a id="head-of-customers"></a>Head of customers | your agent | [Net revenue retention](/revenue/net-revenue-retention) | 3 Tasks · 2 to approve | You approve each one |
| <a id="billing"></a>Billing | your agent | [Save rate](https://startupbuilder.dev/agents/customer#save-rate) | 3 Tasks · 2 to approve | You approve each one, capped |
| <a id="partnerships"></a>Partnerships | your agent | [Referred Customers](/revenue/referral-share) | 2 Tasks · 2 to approve | You approve each one |
| <a id="marketing-lead"></a>Marketing Lead | your agent | [New Leads](/revenue/new-leads) | 3 Tasks · 2 to approve | It does it, you can stop it |
| <a id="content-lead"></a>Content Lead | your agent | [People reached](/revenue/icp-reached) | 3 Tasks · 2 to approve | It does it, you can stop it |
| <a id="paid-media"></a>Paid media | your agent | [Return on ad spend](https://startupbuilder.dev/agents/marketing#return-on-ad-spend) | 2 Tasks · 2 to approve | It 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 runs | What that means | It moves up at | It drops back when |
| --- | --- | --- | --- |
| You approve each one | The 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 it | The agent acts on its own, and a person reviews only the exceptions. | 48 of the last 50 graded → It does it | any Check breach → You approve each one |
| It does it | The 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
```bash title="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
```

```bash title="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.