MCP (streamable HTTP) · LinkedIn

Turn a release into a LinkedIn post with Claude Code

Engineers rarely write the LinkedIn post about the thing they built, and the version the marketing team writes later is often vague. Claude Code sits in the repository, so it can explain a feature in terms of the problem it solves, with the real details. Connected to SocialHandoff, it drafts the LinkedIn post and stops there. Someone on the team reads it in the inbox, adjusts the tone for a business audience, and approves.

Prompt

Look at the merged PRs labeled feature since last Monday using gh pr list. Write one LinkedIn post for engineering managers about the audit export we shipped: the problem, what it does, and one sentence on how we built it. Under 1,200 characters, no emoji. Draft it for LinkedIn.

How to do it

  1. Scope a key Create a key for Claude Code limited to LinkedIn with the draft permission, and export it in your shell.
  2. Add the server Run claude mcp add --transport http social https://app.socialhandoff.com/mcp with an Authorization: Bearer header, or register the stdio command npx -y socialhandoff-mcp.
  3. Gather the facts Let Claude run gh and git to read the PRs. The post then names the real feature and details.
  4. Draft Claude calls draft_post with networks set to linkedin and a single body.
  5. Hand off for review A teammate approves or edits in the inbox. The audit log records which key wrote the draft.

Example draft

Every audit ends the same way: someone spends a day pulling logs into a spreadsheet.

As of this week, admins can export a full audit trail for any date range as CSV or JSON. It covers sign-ins, permission changes, and data exports, and it includes who did what and from where.

One detail we cared about: the export is hash-chained, so an auditor can check that no row was removed after the fact.

If your team has an audit coming up, this should save you that day. It is available on every plan now.

Gotchas

  • Claude Code likes markdown. LinkedIn shows asterisks and pound signs as literal characters, so ask for plain text with short paragraphs.
  • Any thread array is joined into one LinkedIn post. That is intended, but it can produce a post that reads like a list of tweets; prefer one body.
  • Reserved characters like underscores in code identifiers are escaped automatically, but the post will still show them literally. Rename variables to plain words for a non-technical audience.
LinkedIn
  • Character limit: 3,000 characters for a post. The feed shows the first few lines and hides the rest behind a see more link.
  • Media per post: LinkedIn allows multi-image posts, documents, and video. SocialHandoff publishes 1 image per post.
  • Alt text: Supported on images through the API's alt text field. Not available for video or documents.
  • Threads: LinkedIn has no threads. If a draft has several parts, SocialHandoff joins them into one post.
A LinkedIn post scheduler that waits for your approval

Frequently asked questions

Can Claude Code post to X and LinkedIn at once?
If the key is scoped to both, it can pass both networks in one draft. Each network is checked against its own limits, and you approve them in the inbox.
Does the draft remember where it came from?
The audit log records the key that created the post. Drafts from GitHub release triggers also cite the release.

Let your agents post. Keep the final say.

Connect your first agent in minutes. Every draft waits in your inbox until you approve it.

14 days free. No card required.

The hosted version is opening soon

Leave your email and we will send one message when hosted accounts open, with your 14-day trial ready. Want it today? Self-host it free from the repo.

Start free trial