Weekly
Publish 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.
- Runs
- Weekly
- Apps
- LinkedIn, WordPress
- AI
- Yes, uses the built-in AI allowance
- Access
- WordPress write (Author+); LinkedIn w_member_social
Send this to your assistant
Create a ClickRuntime automation: every Tuesday, write a blog post on my next topic, publish it to WordPress and share a short teaser with the link on LinkedIn.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A small HR consultancy wants to publish a useful article every week and share it with the business owners in its LinkedIn network. In practice, client work always wins, and weeks go by with nothing on either the blog or LinkedIn.
This automation makes the weekly post happen. Every Tuesday it takes the next topic, AI writes the article and a short LinkedIn teaser, the article is published on WordPress, and the teaser goes out on LinkedIn with the link. The consultancy appears active and helpful even in its busiest weeks.
What you get out of it
A steady weekly rhythm
A new article and a LinkedIn post every week, without fail. Consistency is what builds an audience over time.
Blog and LinkedIn stay in step
Each article is announced as soon as it is live. Readers on LinkedIn are pointed to your site, where your services are.
Topics you chose
Everything comes from your topic list, in your order. You decide what you want to be known for.
Drafts if you prefer
Set it to save drafts and email you instead, and announce on LinkedIn only after you publish.
How it works
What happens, step by step
Every Tuesday, ClickRuntime takes the next topic from your list.
AI writes a blog post on it and a short LinkedIn teaser.
The post is published on your WordPress site.
The teaser is posted on your LinkedIn profile with a link to the new article, and the topic is marked as used.
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
- Run it at a different time, more or less often, or only on weekdays
- 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 clickruntime import on_trigger, credentials, http, state, ai, notify
TOPICS = ["Writing a fair remote work policy", "What to include in a first-week onboarding plan", "Handling a grievance step by step"]
SCHEMA = {"type": "object", "properties": {k: {"type": "string"} for k in ["title", "excerpt", "body_html", "teaser"]}, "required": ["title", "excerpt", "body_html", "teaser"]}
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):
used = state.get("used") or 0
if used >= len(TOPICS):
notify.email_me("Blog topic list is empty", "Add more topics to keep the weekly post going.")
return {"posted": False}
art = ai.generate(f"Write a 1000-word blog post (HTML body, H2 headings) for small business owners on '{TOPICS[used]}', plus a 60-word LinkedIn teaser.",
json_schema=SCHEMA, max_output_tokens=2048).json
post = wp("POST", "posts", json={"title": art["title"], "excerpt": art["excerpt"], "content": art["body_html"], "status": "publish"})
post_to_linkedin(f"{art['teaser']}\n\n{post['link']}")
state.set("used", used + 1)
return {"posted": post["link"]}FAQ
Common questions
Can I review the article before it goes out?
Where do the topics come from?
What happens when the list runs out?
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 worksRewrite 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 worksGet a daily news digest in Slack
Each morning your team gets a short summary of what's new on the sites and blogs you follow.
See how it worksKeep exploring
Set up “Publish a weekly blog post and announce it on LinkedIn” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.