# Turn every new blog post into platform-native social posts

> Every weekday we find your newly published articles, write separate LinkedIn, X, Instagram, and Threads posts, and schedule them across the day.

- Workflow type: agent
- Services: bundle.social, WordPress, Slack
- Categories: Marketing
- Published: 2026-08-07

## What it does

- Checks your blog each weekday morning for articles published since the last check, so nothing gets promoted twice
- Writes genuinely different copy for each network: a professional takeaway and a discussion question for LinkedIn, a punchy hook and short thread for X, and a caption with relevant hashtags for Instagram and Threads
- Pulls in the article's featured image and attaches it to every variant, respecting each network's length limits and tone
- Schedules the variants at staggered times through the day and sends your marketing channel a preview of every one, so the team can edit or cancel before anything goes live

## What you'll need

- A WordPress blog with published articles you want promoted
- A bundle.social account with the social accounts you want to post to already connected, such as LinkedIn, X, Instagram, and Threads
- A Slack workspace and the channel your marketing team watches

## Prompt

Every weekday at 8am, check my WordPress blog for newly published articles and turn each one into platform-native social posts scheduled through bundle.social. Use a cron trigger, because my WordPress site does not send outgoing notifications on its own.

Start with WordPress List Posts, filtered to published status and sorted newest first. Only take articles published after the previous run of this workflow. Keep track of the newest publish timestamp you processed and use it as the watermark for the next run. On the very first run, look back only 24 hours so the workflow does not backfill my entire blog archive. If there are no new articles, stop quietly without sending anything to Slack. For each article, keep the title, the permalink, the excerpt or opening section, and the featured image URL.

In bundle.social, call Get list of teams first to resolve the teamId. Most bundle.social endpoints need it, including uploads and posts. Handle each new article independently, so one bad article does not block the others.

For each article, take the featured image URL and pass it to bundle.social Create upload from URL, which fetches the image into the media library and returns an uploadId. Posts reference uploadId values rather than raw image URLs, so this step has to happen before the post is created. Keep the uploadId and attach it to every platform variant. If the article has no featured image, continue and schedule the variants as text only, skipping any network that requires media.

Now write the copy, and this is the part that matters most. Do not write one blob and cross-post it. Read the article and write a genuinely different variant per platform, each respecting that platform's length limit and tone. For LINKEDIN, write a professional takeaway of two or three short paragraphs that states the substantive insight rather than teasing it, then close with a genuine discussion question, staying well under 3000 characters and avoiding hashtag stuffing. For TWITTER, write a punchy hook under 280 characters that works as a standalone post, followed by a short thread of two to four additional tweets each under 280 characters, ending with the article link. For INSTAGRAM, write a warmer, more visual caption under 2200 characters with 5 to 10 relevant hashtags, and because links are not clickable in captions, point people to the link in bio rather than pasting a raw URL. For THREADS, write a shorter conversational caption under 500 characters with two or three hashtags, in a lighter register than the LinkedIn version.

Schedule everything with a single bundle.social Create post call per article. Send the shared payload plus a data object keyed by platform, using the enum values LINKEDIN, TWITTER, INSTAGRAM, and THREADS, with each platform's own text as a per-platform override in that data object. Attach the uploadId, and set the post status to scheduled rather than publishing immediately. Stagger the scheduled times across the day instead of firing everything at once: LinkedIn around 9am, X around midday, Instagram mid afternoon, and Threads late afternoon. Set a referenceKey derived from the WordPress post id so that a re-run of the workflow cannot double-schedule the same article.

Finally, send a Slack message to my marketing channel for each article, using Slack Send a Message. Include the article title and link, then the full text of every scheduled variant labelled with its platform and its scheduled time, so the team can read exactly what will go out. Close the message by noting that these are scheduled and can be edited or cancelled in bundle.social before their slot arrives. Publishing through bundle.social is asynchronous, so treat a successful Create post call as scheduled rather than published, and if the call fails for an article, say so plainly in Slack instead of reporting it as scheduled.

## How to customize

- Change when it runs and how the posts are spread through the day, from all at once to spaced several hours apart
- Pick which networks to include and drop any you do not use
- Adjust the tone, hashtag count, or have everything land as a draft for manual approval instead of a scheduled post

## Example output

New article scheduled: "Why your onboarding emails get ignored"
https://example.com/blog/onboarding-emails-ignored

LINKEDIN, today 9:00am
Most onboarding sequences fail for a boring reason: they explain the product before the customer has a problem worth solving. We looked at 40 sequences and the pattern held in almost all of them.
The fix is sequencing, not copywriting. Lead with the job the user hired you for, then show the feature.
What is the first email in your onboarding sequence actually asking the reader to do?

TWITTER, today 12:00pm
Your onboarding emails are not being ignored because they are badly written. They are being ignored because they arrive before the reader has a problem. (1/4)

INSTAGRAM, today 3:00pm
Onboarding emails do not get ignored because of the writing. They get ignored because of the timing. Full breakdown of 40 sequences, link in bio.
#onboarding #emailmarketing #saas #customersuccess #growth

THREADS, today 5:00pm
40 onboarding sequences, one repeated mistake: explaining the product before the reader has a problem worth solving.
#emailmarketing #onboarding

Edit or cancel any of these in bundle.social before their scheduled time.

## FAQ

### Will it post the same text to every network?

No, and that is the point. Each network gets copy written for it: a considered takeaway and a discussion question on LinkedIn, a hook plus a short thread on X, and a visual caption with hashtags on Instagram and Threads. Nothing is copied and pasted between them.

### Can we review the posts before they go public?

Yes. Everything is scheduled rather than published immediately, and your marketing channel gets a preview of every variant with its scheduled time and the article link. Anyone on the team can edit or cancel a post before its slot arrives.

### Does this work with a self-hosted WordPress site?

Yes. It checks your blog on a schedule rather than waiting for your site to notify it, so it works on self-hosted sites without installing any extra plugins.

### Will it go back and post all my old articles?

No. It only picks up articles published since the previous check, and the very first run looks back a single day, so you will not wake up to a backlog of old posts flooding your accounts.

### What happens if an article has no featured image?

The post variants are still written and scheduled as text only. Networks that require an image are skipped for that article rather than failing the whole run.

Use this prompt in General Input: https://www.generalinput.com/prompts/turn-every-new-blog-post-into-platform-native-social-posts