Auto-share new Ghost posts to LinkedIn and Buffer

Turn every new Ghost post into a LinkedIn caption and a queued Buffer post, then drop a recap in your Slack marketing channel.

Agentic Task
GhostLinkedInBufferSlack BotMarketingContent GenerationNotifications & Alerts

Build an agent workflow that turns every newly published Ghost post into platform-tailored social distribution so I stop hand-writing captions.

Trigger: cron, every 15 minutes.

On each tick, use Ghost's Browse Posts (Admin API) operation and filter by published_at within the last 15 minutes to pick up freshly published posts. Include the primary_tag and feature_image fields so the agent has the context it needs to write good captions.

For each post returned, skip it if it carries the tag 'internal' or the tag 'draft-only'. Private content must never get distributed.

For each remaining post, have the agent draft two captions using the post title, excerpt, primary tag, and feature image as source material:

1. A short, conversational LinkedIn caption written for the feed. Two to four sentences, opens with a hook in the first line, ends with a soft call to action, no hashtag spam.

2. A queue-friendly caption sized for other social channels (around 250 characters), punchy and link-forward, suitable for X, Threads, Mastodon, Bluesky, or Facebook.

Then, in order:

a. Call LinkedIn's Create Post action with the LinkedIn caption as the commentary and the Ghost post URL attached so the link unfurls.

b. Call Buffer's Create Post action in queue mode (scheduling mode = queue) to add the second caption to the connected channel the user designates at setup, including the same Ghost post URL in the body.

c. Call Slack Bot's Send a Message action to post a recap to the marketing channel the user designates at setup. The recap should include: the Ghost post title as a link, the LinkedIn caption that was published, the Buffer caption that was queued and which Buffer channel it landed in, and a one-line note like 'Shipped to LinkedIn and Buffer'. Keep it compact so the team can react with emoji.

If any step fails for a given post (caption draft, LinkedIn post, Buffer queue), surface the failure in the same Slack recap with what worked and what did not, and do not retry the successful steps on the next run so we never double-post.

Keep an internal record of which Ghost post IDs have already been processed so a post that briefly appears in two consecutive 15-minute windows is only distributed once.

Additional information

What does this prompt do?
  • Watches your Ghost site every 15 minutes for newly published posts.
  • Drafts a short, conversational LinkedIn caption tuned for the feed and publishes it with the post link.
  • Drafts a second caption shaped for other social channels and queues it in Buffer with the same link.
  • Posts a recap in your Slack marketing channel showing the post title, both captions, and the live URL.
  • Quietly skips posts you tag internal or draft-only so private writing never goes out.
What do I need to use this?
  • A Ghost site with admin access so the workflow can see newly published posts.
  • A LinkedIn account where the post should be shared.
  • A Buffer account with at least one connected social channel for the queue.
  • A Slack workspace and the channel you want recap messages sent to.
How can I customize it?
  • Change how often the workflow checks Ghost for new posts.
  • Adjust which tags keep a post off social (the default is internal and draft-only).
  • Pick a different Slack channel, or send the recap to a thread instead.
  • Tweak the caption style: punchier, more formal, more emoji, or longer.

Frequently asked questions

Will it post the same caption to LinkedIn and Buffer?
No. The workflow drafts two separate captions per post. LinkedIn gets a short, conversational version with a hook and soft call to action. Buffer gets a punchier, link-forward version sized for other social channels.
How do I keep certain posts off social entirely?
Add the tag internal or draft-only to the post in Ghost before you publish. The workflow checks tags on every run and skips any post that carries one of those, so private writing never goes out.
Can I queue the second caption to more than one Buffer channel?
Yes. Tell the workflow which Buffer channels to queue to when you connect Buffer, and it will fan the caption out to each of them with the same Ghost post link.
Does it include the feature image?
The agent reads the title, excerpt, primary tag, and feature image when drafting captions so they reflect the post. LinkedIn posts include the link, which renders a preview card from the Ghost feature image. Buffer queues the link the same way.
What happens if I publish a post and then unpublish it a few minutes later?
Once the workflow has shared a post in a given run, it does not re-share it. If you unpublish quickly enough that the workflow has not run yet, the post simply will not be picked up.

Stop hand-writing the same caption five times.

Connect Ghost, LinkedIn, Buffer, and Slack once. Every new post gets a tailored caption on each channel automatically.