Every 30 minutes
Share each new WordPress post on LinkedIn
Every time you publish a blog post, a LinkedIn post about it with the link goes out on your profile within half an hour.
- Runs
- Every 30 minutes
- Apps
- LinkedIn, WordPress
- AI
- Yes, uses the built-in AI allowance
- Access
- WordPress read; LinkedIn w_member_social
Send this to your assistant
Create a ClickRuntime automation: every 30 minutes, check for newly published WordPress posts, write a LinkedIn post about each one and share it with the link.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A fractional CFO writes a monthly blog post on cash flow and fundraising for startup founders. Their clients and prospects are on LinkedIn, but sharing each article with a proper write-up is a step they forget about half the time, so posts get a fraction of the readers they could.
This automation shares every post for them. Every 30 minutes it checks WordPress for newly published posts, AI writes a short LinkedIn post about each one in their voice, and it goes out with the link. Every article is promoted on the day it is published.
What you get out of it
Every article gets promoted
No post is published and forgotten. Each one reaches your LinkedIn network on the day it goes live.
A real post, not just a link
AI writes a few lines about why the article matters, which gets far more attention than a bare link.
Consistent visibility
Regular posts keep you in front of clients and prospects. Your blogging rhythm becomes your LinkedIn rhythm too.
No extra step after publishing
Publishing in WordPress is the last thing you need to do. Sharing happens on its own.
How it works
What happens, step by step
Every 30 minutes, ClickRuntime checks your WordPress site for posts published since its last check.
It remembers the newest post it has shared, so each post is only shared once.
AI writes a short LinkedIn post about each new article from its title and excerpt.
The post is published on your LinkedIn profile with a link to the article.
Before it runs live
- Connect LinkedIn
- Connect WordPress
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other LinkedIn and WordPress steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timezone
from clickruntime import on_trigger, credentials, http, state, ai, report_fetched
VOICE = "Clear, practical, first person, no hashtags."
WP = "https://blog.example.com/wp-json/wp/v2"
def wp(method, path, **kw):
r = http.request(method, f"{WP}/{path}", auth=(credentials.secret("WP_USER"), credentials.secret("WP_APP_PASSWORD")), **kw)
r.raise_for_status()
return r.json()
def post_to_linkedin(text):
token = credentials.connection("linkedin", "work")
me = http.get("https://api.linkedin.com/v2/userinfo", headers={"Authorization": f"Bearer {token}"}).json()["sub"]
http.post("https://api.linkedin.com/rest/posts", headers={"Authorization": f"Bearer {token}", "LinkedIn-Version": "202409", "X-Restli-Protocol-Version": "2.0.0"},
json={"author": f"urn:li:person:{me}", "commentary": text, "visibility": "PUBLIC", "lifecycleState": "PUBLISHED",
"distribution": {"feedDistribution": "MAIN_FEED", "targetEntities": [], "thirdPartyDistributionChannels": []}}).raise_for_status()
@on_trigger
def run(event):
after = state.get("after") or datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S")
posts = wp("GET", "posts", params={"after": after, "status": "publish", "orderby": "date", "order": "asc", "_fields": "date,link,title,excerpt"})
report_fetched(len(posts))
if not posts:
return {"shared": 0}
for p in posts:
text = ai.generate(f"Title: {p['title']['rendered']}\nExcerpt: {p['excerpt']['rendered'][:800]}\nWrite a LinkedIn post under 120 words about this article.",
system=VOICE, max_output_tokens=250).text.strip()
post_to_linkedin(f"{text}\n\n{p['link']}")
state.set("after", posts[-1]["date"])
return {"shared": len(posts)}FAQ
Common questions
Will it share old posts?
Can I review the LinkedIn post first?
Does it share posts from every category?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Rewrite new industry articles for your blog and share them on LinkedIn
New articles from the feeds you follow become WordPress drafts with your take, and once you publish one it is shared on LinkedIn.
See how it worksPublish a weekly blog post and announce it on LinkedIn
Each week the next topic on your list becomes a blog post on WordPress and a LinkedIn teaser linking to it goes out at the same time.
See how it worksLabel new emails automatically
New mail is sorted into labels like Inquiry, Invoice and Newsletter within minutes of arriving.
See how it worksKeep exploring
Set up “Share each new WordPress post on LinkedIn” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.