- Read last week
- Find open slots
- Suggest ideas
- Draft every idea
- Voice check
- Queue for approval
Agents do the homework. You make the call.
Five built-in agents plan the week, repurpose winners, check drafts, write the digest and refresh the voice. Every step is logged, and nothing they make goes out until a person approves it.
- Read the winner
- Turn it into an idea
- Draft for other platforms
- Voice check
- Find open slots
- Queue for approval
- Check the draft
- Write the digest
- Refresh verdicts
- Compare winners and losers
- Check the current rules
- Draft the changes
- Send for approval
Every run, step by step.
Each run is a timeline: what every step did, how long it took and what it made, linked to the ideas, drafts and approvals it created. It also shows who started it (you, an automation, the canvas or an MCP client), the model and its tokens.
- Model calls inside a run are listed as child runs
- Simulated output is always labeled
- A failed step says why, and the run keeps its record
- Read the winner2msX post at 2.4× the brand median at 24h.post · 3 weeks, 2 rewrites
- Turn it into an idea1.1sIdea: “Ship small, then measure it.”idea · Ship smallrun · Ideas run
- Draft for other platforms2.8s2 drafts, one per platform, in the brand’s voice.draft · LinkedIndraft · Threads
- Voice check6ms2 of 2 pass: banned words, length, hashtags, media, hook.
- Find open slots9msLinkedIn Wed 8:00 AM · Threads Thu 1:00 PM.
- Queue for approval3ms2 posts waiting for you. Nothing published.approval · LinkedInapproval · Threads
On a schedule, or when a post does something.
An automation runs an agent once a week at the hour you pick, or when a post outperforms its median for the first time. That event is what Repurpose a winner listens for.
- A daily run cap, 3 by default
- Pauses itself after 3 failures in a row
- The same post never triggers the same automation twice
- Last run
- Done · Mon 8:00 AM
- Next
- Mon, Oct 26, 8 AM
- Today
- 0 / 3
- Last run
- Done · Thu 2:14 PM
- Next
- On the event
- Today
- 1 / 3
- Last run
- Failed · Sun 9:00 PM
- Next
- –
- Today
- 0 / 3
Agents propose. People publish.
No agent publishes or schedules on its own: not the built-in ones, not automations, not an MCP client. Whatever an agent wants posted becomes an approval with the draft, the channel, a proposed slot, the reason for it and the voice-check results.
Approving schedules it. Editing first saves a new draft version. Rejecting keeps the record, with an optional note.
- Approve or reject a whole week in bulk
- Instagram can’t be approved without an image or video
- A slot that has passed asks you for a new time
- Banned words
- Length · 157 / 3,000
- Hashtags
- Hook
- Media · Text only is fine on LinkedIn
- Media · Instagram needs an image or video. Attach one first.
Let Claude work in Harbor.
Harbor ships an MCP server over Streamable HTTP, plus a stdio bridge for clients that only speak stdio. Create an API key with read or write scope, and Claude can read Brand Memory, check best times, draft and propose posts. There’s no publish tool: proposals land in Approvals like everything else.
- Keys start with hbr_ and only their hash is stored
- Every tool result states the mode, like sandbox or simulated
- MCP runs show in the run log, with the key that made them
- get_brand_memoryreadTidewater Coffee · voice, 2 audiences, 3 products
- best_timesreadThreads: Sun 7pm, Thu 1pm
- get_conversationread5 people asked about decaf
- create_ideawriteIdea: How we roast decaf
- draft_ideawrite1 draft · Threads
- propose_postwriteApproval created · next free best-time slot
Plan next week in an afternoon.
Self-host Harbor free, or get early access to Harbor Cloud. Either way, nothing posts until you say so.