# Content marketing

URL: /workflows/processes/content-marketing · Id: `process:content-marketing`

> Content marketing publishes the Pages, answers, and data reports that bring buyers and Agents to a Startup.

Content marketing publishes the [Pages](/business/nouns/page), answers, and data reports that bring buyers and [Agents](/business/nouns/agent) to a [Startup](/business/nouns/startup).

## Outcome
| Part | This Process |
| --- | --- |
| Outcome | Each week ships Pages built from the record, each measured for citations and qualified Visits after 28 days. |
| Reads | [Keyword](/business/nouns/keyword) |
| Leaves | [Content](/business/nouns/content), [Page](/business/nouns/page), [Keyword](/business/nouns/keyword) |
| Runs in | Each Startup |

## Accountable
[Marketing Lead](/agents/marketing/marketing-lead), [Marketing Team](/agents/marketing).

## Workflows
| Workflow | Runs | Team |
| --- | --- | --- |
| [Publish content](/workflows/processes/content-marketing/publish-content) | every week | [Marketing Team](/agents/marketing) |

## Who does each step

| Workflow | Step | Role | Calls | Approval |
| --- | --- | --- | --- | --- |
| [Publish content](/workflows/processes/content-marketing/publish-content) | 1. Pick the Keywords buyers and Agents ask about that the records answer. | [Content Lead](/agents/marketing/content-lead) | [Keyword.create](/business/nouns/keyword/create) | None |
| [Publish content](/workflows/processes/content-marketing/publish-content) | 2. Draft each Page with every claim read from the record. | [Content Lead](/agents/marketing/content-lead) | [Content.draft](/business/nouns/content/draft) | None |
| [Publish content](/workflows/processes/content-marketing/publish-content) | 3. Publish each Page with its Markdown twin and llms.txt entry. | [Content Lead](/agents/marketing/content-lead) | [Content.publish](/business/nouns/content/publish) | Asks first; waits 1 business hour |
| [Publish content](/workflows/processes/content-marketing/publish-content) | 4. Measure citations and qualified Visits after 28 days. | [Content Lead](/agents/marketing/content-lead) | [Keyword.measure](/business/nouns/keyword/measure) | None |

## Events
| Direction | When | What happens |
| --- | --- | --- |
| In | Every week | Starts [Publish content](/workflows/processes/content-marketing/publish-content) |
| Out | `Keyword.created` | Raised by step 1 of [Publish content](/workflows/processes/content-marketing/publish-content) |
| Out | [`Content.drafted`](/business/events/Content.drafted) | Raised by step 2 of [Publish content](/workflows/processes/content-marketing/publish-content) |
| Out | [`Content.published`](/business/events/Content.published) | Raised by step 3 of [Publish content](/workflows/processes/content-marketing/publish-content) |
| Out | [`Keyword.measured`](/business/events/Keyword.measured) | Raised by step 4 of [Publish content](/workflows/processes/content-marketing/publish-content) |

## Plays
- [Answer engine optimization](/workflows/plays/aeo)
- [Programmatic SEO](/workflows/plays/programmatic-seo)
- [Editorial SEO](/workflows/plays/editorial-seo)
- [Organic social](/workflows/plays/organic-social)
- [Community answers](/workflows/plays/community-answers)
- [Category hubs](/workflows/plays/category-hubs)
- [Data stories](/workflows/plays/data-stories)
- [Events and webinars](/workflows/plays/events-and-webinars)
- [Owned newsletter](/workflows/plays/owned-newsletter)
- [Open source](/workflows/plays/open-source)
- [Developer relations](/workflows/plays/developer-relations)
- [Owned following](/workflows/plays/owned-following)
- [Free tools](/workflows/plays/free-tools)
- [Switch kit](/workflows/plays/switch-kit)
- [Category kit](/workflows/plays/category-kit)
- [Founder voice](/workflows/plays/founder-voice)

## Controls
No Control names this Process or a Workflow of it.

## Settings
| Setting | Type | Default | Say | Set with |
| --- | --- | --- | --- | --- |
| `content.perWeek` | `integer` | `2` | Publish two pages a week | [Setting.update](/business/nouns/setting/update) |

## Failure
A failed step retries; when retries run out, the Action goes to the [Marketing Lead](/agents/marketing/marketing-lead).

## Loop
| Step | Value |
| --- | --- |
| Hypothesis | Pages that carry a unique dated fact earn more organic first touches than Pages without one. |
| Measure | [Organic share](/agents/marketing#organic-share) over 90d, at least 100 observations |
| Learn | The learn step reads the Readout, records Evidence and a Decision, and drafts the next Variant. |

## Code

**Ask**

```text
Turn on content marketing
```

**API**

```bash
curl -X POST https://api.sb/leaseline.app/processes/process_1/enable \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

**SDK**

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

await $.Process.enable({ process: 'process_1' })
```

**CLI**

```bash
npx startup-builder do Process.enable --json '{"process":"process_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Process.enable({ process: 'process_1' })"
  }
}
```

## Enable
On by default for every Product Template. [Process.pause](/business/nouns/process/pause) stops new Actions; Actions in progress finish.

**Ask**

```text
Publish two pages a week
```

**API**

```bash
curl -X PATCH https://api.sb/leaseline.app/settings/setting_1 \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":2,"key":"content.perWeek"}'
```

**SDK**

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

await $.Setting.update({ id: 'setting_1', value: 2, key: 'content.perWeek' })
```

**CLI**

```bash
npx startup-builder do Setting.update --json '{"id":"setting_1","value":2,"key":"content.perWeek"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Setting.update({ id: 'setting_1', value: 2, key: 'content.perWeek' })"
  }
}
```

## Example
A business-registration API publishes one data report a week, such as new formations by state, with every figure read from its [Dataset](/business/nouns/dataset). Each report also ships as an answer Page, so buyers and Agents that ask the same question land on it.