Resurface evergreen blog posts for another social push
Browse your published archive, see what has not been shared in months, and queue fresh captions per channel without repeating yourself.
I want an app for working through our back catalog of blog posts and deciding which evergreen articles deserve another push on social. It is a review desk, not a scheduler. Nothing runs on its own. I open it, look at what has gone quiet, and decide by hand what to requeue.
The main view is a table of published WordPress articles, loaded with WordPress List Posts filtered to published status. Columns: title (linking to the live article), publish date, category, last promoted, and a state chip reading Never shared, In cooldown, or Ready. Paginate through the archive and let me sort by publish date and by time since last promotion.
Filters across the top: category, tag, and date range, plus the three I reach for most as one-click presets: never shared, not shared in the last 90 days, and by category. WordPress List Posts supports filtering by status, category, tag and date, so push those down into the call wherever you can. Note there is no separate operation for listing categories or tags, so build the filter options from the category and tag values present on the posts you have already loaded.
The last promoted column is the load-bearing piece of this app. Whenever this app queues a reshare it tags the Buffer post with the article slug, so the lookup is Buffer List Posts filtered by that tag, taking the most recent match. For anything shared before this app existed, fall back to scanning Buffer post text for the article URL. Treat the URL match as a backfill path only. The slug tag is the real index. Compute the whole slug-to-last-promoted map once per refresh and reuse it across rows rather than making a call per article.
Cooldown rule: any article promoted within the last 30 days is greyed out and cannot be selected, with the date it was last promoted shown on hover so I understand why. Make that window configurable, and give me a toggle to show or hide cooled-down rows.
Selecting an article opens a compose panel. Pull the available channels from Buffer List Channels. Draft a fresh caption per channel rather than reusing the original headline or any caption used before, because identical repeat copy is exactly what makes recycling read as spam. Show the captions previously used for this article, taken from the tagged Buffer posts, right there in the panel so both I and the drafting step can deliberately steer away from repeats. Every caption stays editable before it goes out. Include an optional angle selector (straight resurface, seasonal, or a throwback framing) that changes how the caption is written.
Before anything is queued, call Buffer Get Daily Posting Limits for the selected channels on the target date. Any channel already at its cap for that day is skipped, shown clearly as skipped with the reason, and not attempted.
Queue the approved captions with Buffer Create Post, one per channel. Always include the article slug in the post tags. That tagging is what makes the last promoted column work at all, so it is mandatory on every post this app creates, with no exceptions.
Save for later files the drafted caption as a Buffer idea using Create Idea, with the slug included as a tag, and then confirms it saved. Important constraint: there is no operation to read ideas back, so do not build any view that lists or manages saved ideas. Push it to Buffer, confirm, and stop there.
On pulling back a queued reshare, work within a real limitation: Buffer exposes no delete operation and no update operation here, so the app cannot cancel or edit a queued post itself. Instead, keep a record of everything the app queues (article slug, channel, scheduled time, and the post id Buffer returns) and show a Queued state on the article row with a direct link through to that post in Buffer, where I can edit or remove it. Do not put a Delete or Edit button in the app that cannot actually do the thing it promises.
Buffer exposes no analytics or engagement data, so do not attempt to rank articles by social performance and keep any engagement claims out of the interface. Rank and sort only by publish date, category, and time since last promotion.
Remember my filter and sort selection between visits. The record of what has been queued is shared across the workspace, so a teammate opening the app can see what was already sent back out and does not double promote the same article.
What does this prompt do?
- Lists every published article on your WordPress site with its publish date, category, and the last time you promoted it.
- Filters down to the pieces that have never been shared or have gone quiet for 90 days, so you can spot the archive gems worth another run.
- Drafts a fresh caption for each social channel instead of recycling the original headline, which is what makes repeat sharing read as spam.
- Checks each channel's daily posting allowance before queueing, and greys out anything you promoted in the last 30 days.
What do I need to use this?
- A WordPress site with published posts, and a login that can read them.
- A Buffer account with the social channels you want to post to already connected.
- An owner login on your Buffer account, which is what Buffer requires before it will connect outside tools.
How can I customize it?
- Change the cooldown window (30 days by default) and the 'gone quiet' threshold (90 days) to match how often you are comfortable repeating an article.
- Choose which channels the compose panel drafts for, and give each one its own tone or angle.
- Add a seasonal or throwback framing to the caption when an article suits it.
FAQs
How does the app know when an article was last promoted?
Will it post the same caption over and over?
Can I cancel a reshare after I have queued it?
Does it rank articles by how well they performed on social?
What happens if a channel has already hit its posting limit for the day?
Is this the same as auto-sharing new posts when they publish?
Related templates
One place to manage every AI character your brand uses, run themed photo shoots on demand, and keep the same face showing up across every campaign.
Replace the monthly decay spreadsheet with a live board of pages losing search traffic, moving each one from spotted to refreshed and monitored.
One screen showing every published post, the languages it exists in, and which translations fell behind after the English was edited.
Pull every page on your site into one ranked table, see what is thin or broken, and hand your team a ready-to-edit draft without anything going live.
A studio your content team opens after publishing to clean up the script, pick a voice, and ship a listenable version of every post.
Pick the pages you just updated, push the new version live in seconds, and keep a full record of who refreshed what.
Your archive is full of posts worth sharing again.
Set up a review desk that shows you what has gone quiet and drafts new captions for it in minutes.