# Interview

URL: /business/nouns/interview · Id: `noun:interview`

> An Interview is one person’s pass through a question script, led by an Agent, whose answers become Evidence.

An Interview is one person’s pass through a question script, led by an [Agent](/business/nouns/agent), whose answers become [Evidence](/business/nouns/evidence). Its answers feed the [Story](/business/nouns/story) word for word.

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `script` | [Template](/business/nouns/template) | Yes | The questions asked. |
| `transcript` | `text` | No | What was said. |

<details>
<summary>Inherited from [Thread](/business/nouns/thread): 1 property</summary>

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `subject` | `string` | No | What the Thread is about. |

</details>

## Object
```json
{
  "$id": "https://api.sb/routewise.dev/interviews/interview_1",
  "$type": "Interview",
  "subject": "Example subject",
  "script": "template_1",
  "transcript": "Example transcript"
}
```

## Relationships
- <a id="rel-quoted-in"></a>An Interview **is quoted in** many [Stories](/business/nouns/story): the Interviews whose words the [Story](/business/nouns/story) reuses. `quotedIn`, inverse [`quotes`](/business/nouns/story#rel-quotes).
- <a id="rel-yields"></a>An Interview **yields** many pieces of [Evidence](/business/nouns/evidence): an Interview captures quotes and commitments, each graded as [Evidence](/business/nouns/evidence). `yields`, inverse [`yieldedBy`](/business/nouns/evidence#rel-yielded-by).

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| <a id="create"></a>[Interview.create](/business/nouns/interview/create) | Creates an Interview. Inherited from [Noun](/business/nouns/noun). | None. | `Interview.created` | Two-way: `try`, `send`, `do` |
| <a id="get"></a>[Interview.get](/business/nouns/interview/get) | Returns one Interview by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[Interview.list](/business/nouns/interview/list) | Returns Interviews, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |

An Interview is kept forever and never edited: it has no `update` or `delete`.

## Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.

| Operation | `owner` | `admin` | `member` | `viewer` |
| --- | --- | --- | --- | --- |
| `Interview.create` | Yes | Yes | Yes | No |
| `Interview.get` | Yes | Yes | Yes | Yes |
| `Interview.list` | Yes | Yes | Yes | Yes |

## Call it

**Ask**

```text
Add an interview to LedgerLark with a template.
```

**API**

```bash
curl -X POST https://api.sb/ledgerlark.com/interviews \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"script":"template_1"}'
```

```json
{
  "api": "https://api.sb/ledgerlark.com",
  "interview": {
    "$id": "https://api.sb/ledgerlark.com/interviews/interview_1",
    "$type": "Interview",
    "script": "template_1"
  },
  "action": {
    "$id": "https://api.sb/ledgerlark.com/actions/action_1",
    "operation": "Interview.create",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/ledgerlark.com/actions/action_1"
  }
}
```

**SDK**

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

const interview = await $.Interview.create({ script: 'template_1' })
```

**CLI**

```bash
npx startup-builder do Interview.create --json '{"script":"template_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Interview.create({ script: 'template_1' })"
  }
}
```

## Example
An Agent runs a five-question Interview with a music teacher about how she books lessons. Her answer, two lessons lost each week to text-message mixups, enters the `transcript` and becomes Evidence on the [Problem](/business/nouns/problem).