Every 30 minutes
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.
- Runs
- Every 30 minutes
- Apps
- LinkedIn, WordPress
- AI
- Yes, uses the built-in AI allowance
- Access
- WordPress write; LinkedIn w_member_social
Send this to your assistant
Create a ClickRuntime automation: every 30 minutes, check these RSS feeds for new articles, rewrite each as a WordPress draft with my take, and share any draft I publish on LinkedIn.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A cybersecurity firm wants its blog to comment on industry news, because clients look to it for guidance when a new threat hits the headlines. The team follows several security feeds, but writing a response piece takes long enough that the news has moved on.
This automation drafts the responses. Every 30 minutes it checks the feeds, AI writes a short post for each new article that summarises it, credits the source and adds what it means for the firm's clients, and saves it as a WordPress draft. When the team publishes a draft, it is shared on LinkedIn automatically.
What you get out of it
Comment on news while it matters
A draft is waiting within half an hour of a story breaking. The team can publish a considered response the same day.
Your take, not a copy
Drafts summarise in your words, add what the news means for your audience and link the source. That is far more useful to readers than a repost.
Editors stay in control
Nothing is published without a person choosing to. Only posts you publish are shared on LinkedIn.
Publish once, share automatically
Publishing in WordPress is the only step. The LinkedIn post follows on its own.
How it works
What happens, step by step
Every 30 minutes, ClickRuntime checks each RSS feed on your list for new articles and skips ones it has already drafted.
AI writes a short post for each new article that summarises it, credits the source and adds your take.
Each post is saved as a draft in WordPress for your team to review.
When one of those drafts has been published, a LinkedIn post with its link is shared once.
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
import feedparser
from clickruntime import on_trigger, credentials, http, state, ai
FEEDS = ["https://securitynews.example.com/feed", "https://advisories.example.gov/rss"]
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):
seen, pending = set(state.get("seen") or []), state.get("pending") or []
new = [e for f in FEEDS for e in feedparser.parse(http.get(f).content).entries[:10] if e.link not in seen][:5]
for e in new:
body = ai.generate(f"Write a 400-word post (HTML) summarising this in our words, explaining what it means for small business clients, crediting and linking {e.link}:\n{e.title}\n{e.get('summary', '')[:2500]}", max_output_tokens=1000).text
pending.append(wp("POST", "posts", json={"title": e.title, "content": body, "status": "draft"})["id"])
seen.add(e.link)
shared = 0
for post_id in list(pending):
post = wp("GET", f"posts/{post_id}", params={"_fields": "status,link,title"})
if post["status"] == "publish":
post_to_linkedin(f"Our take on {post['title']['rendered']}:\n{post['link']}")
pending.remove(post_id)
shared += 1
state.set("seen", list(seen)[-1000:])
state.set("pending", pending[-100:])
return {"drafted": len(new), "shared": shared}FAQ
Common questions
Which feeds can I use?
How does it know a draft was published?
Is rewriting articles allowed?
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
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.
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 “Rewrite new industry articles for your blog and share them on LinkedIn” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.