On a schedule
Post about the day's news in your niche on LinkedIn
Each day the best new article on your topic becomes a LinkedIn post with your take and the link, and the same article is never posted twice.
- Runs
- On a schedule
- Apps
- LinkedIn, SerpApi
- AI
- Yes, uses the built-in AI allowance
- Access
- SerpApi key; LinkedIn w_member_social
Send this to your assistant
Create a ClickRuntime automation: every weekday at 9am, find new articles on my topic with SerpApi Google News, write a LinkedIn post about the best one with my take, and publish it.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
An accountant who works with small restaurants wants to be the person owners think of when tax rules or food costs change. Sharing relevant news with a useful comment is a good way to do that, but finding the right article each day and writing a thoughtful post takes time they do not have during busy season.
This automation keeps the habit going. Each weekday it searches Google News for their topic through SerpApi, skips articles it has already used, and AI picks the most relevant one and writes a short post explaining why it matters to their audience. It goes out on LinkedIn with the article link.
What you get out of it
Become the go-to source in your niche
Sharing relevant news with a clear take, day after day, builds a reputation. People start to rely on your posts to stay informed.
A post every day without daily effort
The news search, the choice and the writing all happen on their own. You keep showing up even during your busiest weeks.
No repeats
Articles already posted about are remembered and skipped. Your followers see a new story each time.
Commentary, not just links
Each post explains why the story matters to your audience. That is far more useful, and more engaging, than a bare shared link.
How it works
What happens, step by step
Every weekday morning, ClickRuntime searches Google News for your topic through SerpApi.
It skips any article it has posted about before.
AI picks the article most useful to your audience and writes a short LinkedIn post with your take and the link.
The post is published on your LinkedIn profile, and the article is remembered so it is not used again.
Before it runs live
- Connect LinkedIn
- Connect SerpApi
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 SerpApi steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, state, ai
TOPIC, AUDIENCE = "restaurant tax rules", "independent restaurant owners"
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"]
r = 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": []}})
r.raise_for_status()
return r.headers.get("x-restli-id", "")
@on_trigger
def run(event):
used = set(state.get("used") or [])
news = http.get("https://serpapi.com/search", params={"engine": "google_news", "q": TOPIC, "api_key": credentials.secret("SERPAPI_API_KEY")}).json().get("news_results", [])
fresh = [n for n in news if n.get("link") and n["link"] not in used][:8]
if not fresh:
return {"posted": False}
listing = "\n".join(f"{i}. {n['title']} - {n.get('source', {}).get('name', '')}" for i, n in enumerate(fresh))
pick = fresh[int(ai.generate(f"Which article matters most to {AUDIENCE}? Reply with the number only.\n{listing}", max_output_tokens=5).text.strip() or 0)]
text = ai.generate(f"Article: {pick['title']}\n{pick.get('snippet', '')}\nWrite a LinkedIn post (under 150 words) on why this matters to {AUDIENCE}.", max_output_tokens=300).text.strip()
post_to_linkedin(f"{text}\n\n{pick['link']}")
state.set("used", list(used | {pick["link"]})[-300:])
return {"posted": pick["title"]}FAQ
Common questions
How does it choose the best article?
Can I use my own news feed?
What if there is no new article?
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
Post one researched LinkedIn post a day from your topic list
Keep a list of topics and each weekday the next one is researched and published as a LinkedIn post, working down the list in order.
See how it worksTurn a topic into a researched LinkedIn post
Send a topic to your trigger link and a LinkedIn post built from fresh Google results is published on your profile, with the link emailed to you.
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 “Post about the day's news in your niche on LinkedIn” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
