# Run sales myself

URL: /agents/run-a-seat-yourself · Id: `guide:run-a-seat-yourself`

> Seat yourself in the Sales Lead Role to sell to the first customers in person; the agent stands by and takes the seat back in one call.

[Staff](/business/nouns/role/staff) the [Sales Lead](/agents/sales/sales-lead) [Role](/business/nouns/role) with yourself, and its open [Deals](/business/nouns/deal) and [Leads](/business/nouns/lead) become your worklist. The contract stays the same, so handing the seat back is one more call.

**Before it runs**

- You leave the chat: Never: it all happens in the chat.

## What you get
- 1 Sales Lead seat filled by you, with the duties and limits the agent had (Role)
- 1 list of the seat’s open deals and leads, oldest first (Task)
- 1 sales agent on standby, remembering every deal (Agent)
- 1 record of everything you do in the seat, the same as the agent’s (Action)

## Your agent does
**For agents**

- Guide: `guide:run-a-seat-yourself`, status `live`. Page: [/agents/run-a-seat-yourself.md](/agents/run-a-seat-yourself.md).
- Approval: none. Run it when the founder asks.
- Leaves the chat: never.
- Run: call the steps in order, each through the API, SDK, CLI or MCP tab below; a later step passes the `$id` an earlier one returns. Each value marked example is the sample business’s: pass the founder’s own.

| Step | Verb | Inputs (type, required, this guide’s value) | Returns |
| --- | --- | --- | --- |
| 1 | [`Role.staff`](/business/nouns/role/staff) (`verb:Role.staff`) | `role` Role (an id), required: example `"sales-lead"`; `worker` Worker (an id), required: example `"human_dana"` | `role` Role |

Returns: the last call answers with `role` and its `action`, whose `status` is `done`, `pending` (waiting on an Approval or a Worker), `failed`, `canceled` or `refused`:

```json
{
  "api": "https://api.sb/leaseline.app",
  "role": {
    "$id": "https://api.sb/leaseline.app/roles/sales-lead",
    "$type": "Role",
    "status": "filled"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/action_1",
    "operation": "Role.staff",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/action_1"
  }
}
```

Next: offer “Let the agent draft my follow-ups, and I send them”, or “Give the sales seat back to the agent”.

Calls: `Role.staff`

Ask:

```text
Let me run sales myself.
I want to sell to the first ten customers myself.
Put me in the Sales Lead seat.
```

API:

```bash
# Role.staff
curl -X POST https://api.sb/leaseline.app/roles/sales-lead/staff \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"worker":"human_dana"}'
```

SDK:

```ts
import { $ } from 'startup-builder'

await $.Role.staff({ role: 'sales-lead', worker: 'human_dana' })
```

CLI:

```bash
npx startup-builder do Role.staff --json '{"role":"sales-lead","worker":"human_dana"}'
```

MCP:

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Role.staff({ role: 'sales-lead', worker: 'human_dana' })"
  }
}
```

## Change it
- Let the agent draft my follow-ups, and I send them.
- Give the sales seat back to the agent.
- Put Sam in the seat instead of me.

## Under the hood
- Systems: [Workforce](/systems/workforce), [CRM](/systems/crm), [Work queue](/agents/work-queue)
- Nouns: [Role](/business/nouns/role), [Worker](/business/nouns/worker), [Human](/business/nouns/human), [Task](/business/nouns/task)
- Events: [`Role.staffed`](/business/events/Role.staffed)

Sell to the first ten [Customers](/business/nouns/customer) yourself. You hear every objection first-hand, and the agent reads each call you made when it takes the seat back.