---
name: playbooks
description: >-
  Index of Linbox operating playbooks — tool-agnostic, end-to-end methods for
  running LinkedIn outreach and relationship workflows through Linbox. Use when a
  request is about how to run a repeatable process (e.g. outbound sequencing,
  first-touch outreach, follow-ups, re-engagement, list processing) rather than a
  single tool call, or when the user asks for a recipe/procedure/SOP that combines
  reading, messaging, connections, tags, and enrichment. Explains what a playbook is,
  how playbooks relate to the Linbox topic skills, and routes to the available
  playbooks. Not an API reference — for tool arguments and contracts, defer to the
  root Linbox skill and its topic skills.
contract_version: "3.0"
---

# Linbox Playbooks

Index of Linbox **playbooks**: tool-agnostic operating methods that describe *how* to
run a LinkedIn workflow end-to-end. A playbook orders steps, decisions, and stop
conditions; it does **not** re-document tool arguments or MCP contracts.

## When to use

Use this index when the request is about a repeatable *process*, not a single action:

- planning or running an outreach sequence (first touch, follow-up, re-engagement)
- turning a list of people into a staged, limit-aware workflow
- deciding the order of read → enrich → connect → message steps
- picking which playbook fits, or confirming one exists

If the request is a single operation (send one message, add a tag, poll a task), skip
the playbooks and go straight to the [root Linbox skill](../linbox/SKILL.md) and its
topic skills.

## Prerequisites

- The [root Linbox skill](../linbox/SKILL.md) applies: an MCP token scoped to one
  LinkedIn `account_id`, and a connected `<api-host>/mcp` client.
- Playbooks assume the global contract (auth, identifiers, DB-first reads vs no-cache
  writes, `meta`/`task`/`guidance`, cursor pagination, task polling) is already
  understood. Read the root skill first if not.

## Tools

Playbooks own **no tools of their own**. They compose the `linbox_*` MCP tools through
the topic skills. Resolve the actual tool, its arguments, and edge cases from the topic
skill, not from a playbook:

| Capability the playbook needs | Topic skill to use |
|---|---|
| Read inbox/threads, search, send/reply | [Messaging](../linbox/messaging/SKILL.md) |
| Send / accept / withdraw invites | [Connections](../linbox/connections/SKILL.md) |
| List/create tags, attach/remove, tag search | [Tags](../linbox/tags/SKILL.md) |
| Enrich a profile or company page | [Enrichment](../linbox/enrichment/SKILL.md) |
| Search/scrape posts, like, comment, post tags | [Posts](../linbox/posts/SKILL.md) |
| Run a multi-step sequence server-side (enroll, steps, replies) | [Campaigns](../linbox/campaigns/SKILL.md) |

A playbook says *which* capability to use and *when*; the topic skill says *how* to call
the tool.

## Workflow

1. **Match the request to a playbook** in the [catalog](#catalog) below. If none fits,
   compose the topic skills directly rather than forcing a playbook.
2. **Open that playbook's `SKILL.md`** and follow its steps in order.
3. **Delegate each step to the right topic skill** (see [Tools](#tools)) for exact tool
   names and arguments — never duplicate that detail inside the playbook.
4. **Respect the global contract**: read before write, capture `task_id`/`batch_id`,
   poll to a terminal state, and honor limits (queued/deferred is normal, not an error).
5. **Stop at the playbook's stop conditions** (e.g. `already_connected`,
   `account_session_not_active`, a failed task) and act on `guidance`.

### Catalog

| Playbook | What it is | When to use |
|---|---|---|
| [linkedin-outbound-first-touch](linkedin-outbound-first-touch/SKILL.md) | End-to-end first-touch outreach: enrich → connect (if needed) → first message, one target or a batch | Starting outreach to people you are not yet connected with |

Keep this catalog minimal; add a row only when a new playbook directory ships.

## Rules

- A playbook is an operating method, **not** an API reference. Never restate tool
  signatures, `meta` shapes, or pagination rules inside a playbook — link to the topic
  skill instead.
- Compose, don't duplicate: reuse [Messaging](../linbox/messaging/SKILL.md),
  [Connections](../linbox/connections/SKILL.md), [Tags](../linbox/tags/SKILL.md), and
  [Enrichment](../linbox/enrichment/SKILL.md) for the actual tool calls.
- Every playbook stays within the global Linbox contract; when they diverge, the
  [root skill](../linbox/SKILL.md) wins.
- One playbook per directory, each with its own `SKILL.md`; keep this index thin.
- English only; use the exact `linbox_*` tool names as defined in the topic skills.

## Examples

**Pick a playbook for a process request**

```
Request: "Reach out to these 20 people we're not connected with."
→ Match: linkedin-outbound-first-touch
→ Open playbooks/linkedin-outbound-first-touch/SKILL.md and follow its steps,
  delegating enrich/connect/message to the topic skills.
```

**Reject a playbook for a single action**

```
Request: "Send a reply in this thread."
→ No playbook needed. Go to ../linbox/messaging/SKILL.md and call linbox_send_message.
```

## Related skills

- [Linbox (root)](../linbox/SKILL.md) — global contract; read this first.
- [Messaging](../linbox/messaging/SKILL.md) — inbox, threads, search, send/reply.
- [Connections](../linbox/connections/SKILL.md) — send/accept/withdraw invites.
- [Tags](../linbox/tags/SKILL.md) — list/upsert and attach/remove tags, tag search.
- [Enrichment](../linbox/enrichment/SKILL.md) — profile and company scraping.
- [Posts](../linbox/posts/SKILL.md) — post search, feed/post scrapes, like & comment.
- [Campaigns](../linbox/campaigns/SKILL.md) — server-executed outreach sequences when a
  process should run on a schedule instead of step-by-step tool calls.
- [linkedin-outbound-first-touch](linkedin-outbound-first-touch/SKILL.md) — the first
  available playbook.
