Skip to content

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.

Paste it into your assistant. It tells you what it will send or change before it runs live.

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

  1. Every 30 minutes, ClickRuntime checks each RSS feed on your list for new articles and skips ones it has already drafted.

  2. AI writes a short post for each new article that summarises it, credits the source and adds your take.

  3. Each post is saved as a draft in WordPress for your team to review.

  4. 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

RunsEvery 30 minutes
Rewrite new industry articles for your blog and share them on LinkedIntoday, 9:00Succeeded
LinkedIn · Your profileOur take on the new Acme Router vulnerability: what small offices need to patch this week. northwindsecurity.example.com/acme-router

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
rss_articles_to_wordpress_posts_shared_on_linkedin.pyexample
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?
Any RSS or Atom feed, such as industry news sites, vendor blogs or government advisories.
How does it know a draft was published?
On each run it checks the drafts it created. When one has been published, it shares it on LinkedIn once.
Is rewriting articles allowed?
Drafts summarise and link to the original, which is a common practice. Check each source's terms and avoid copying whole articles.
What permissions does it need?
WordPress write; LinkedIn w_member_social. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

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.