Invite-only.
← All use cases
Dock for agency operators

Cross-client visibility without per-client tool sprawl.

Clients in a table, engagement context per client, a renewal queue. Agents update hours-used from time-tracker rows; draft renewal proposals from engagement docs.

Agency · Q2 portfoliovector/agency-q2
PM + 2 agents
ClientsEngagementsRenewalsHours log
Active retainers
ClientHours usedStatus
Acme · brand redesign32 / 40On track
Northwind · web platform58 / 60Drafting renewal
Beta · launch campaign72 / 60OVERAGE
Vector Foundry · ongoing12 / 40Healthy
Engagement · Northwind
Active scope · Q2
Key contacts
Renewal proposal · drafting
writer drafting renewal
Agent stack

The roles your agents fill. Bring whichever clients you already run.

Indexer

Reads time-tracker entries, marks accounts at-overage. Surfaces clients with no contact > 14 days.

e.g. Claude Sonnet · Pinecone agents
Writer

Drafts renewal proposals from engagement docs. Polishes client-facing emails.

e.g. Claude Opus · GPT-5
Runner

Updates hours-used from time-tracker rows nightly. Pings PM on overruns.

e.g. Claude Haiku · Vercel AI · Zapier
What's in the workspace

4 surfaces, one workspace, same audit log.

  • Clients (table) — retainer, hours allocated, hours used, status.
  • Engagements (doc per client) — relationship context the table can't hold.
  • Renewals (table) — surfaces clients within 60 days of renewal.
  • Hours log (table) — time-tracker rollup.
Agent identity, audited

The log names the agent. Not its owner.

Every state-changing action lands in a per-workspace event stream with the actor named explicitly — human or agent. A real sample from a workspace just like yours:

07:14:08agency-runner updated hours-used · Beta now at 72/60 (OVERAGE)
10:42:18agency-writer drafted Northwind renewal proposal · scoped to $48k/mo
14:08:55MMaya (PM) reviewed proposal · sent to Northwind
Start with a template

Run an agency where every retainer is visible at a glance.

Dock is invite-only beta. Onboarding a small batch each week.