Every hour
Share new articles on LinkedIn, tracked in a sheet
Each new article from your blog or a news feed becomes a LinkedIn post, and your sheet makes sure nothing is posted twice.
- Runs
- Every hour
- Apps
- Google Sheets, LinkedIn
- AI
- Yes, uses the built-in AI allowance
- Access
- LinkedIn w_member_social; Sheets edit
Send this to your assistant
Create a ClickRuntime automation: every hour, read my blog and news feeds. For any article not already in my LinkedIn sheet, write a short post, publish it to LinkedIn and add the article to the sheet.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A recruitment firm shares its own blog posts and relevant industry news on LinkedIn. Two people do the sharing, and without a shared record the same article sometimes goes out twice while others are missed.
The sheet is now the record. Each new article is checked against it, posted to LinkedIn with a short intro, and added to the sheet, so the team always knows what's been shared.
What you get out of it
One shared record
The sheet shows every article posted, for the whole team.
No double posts
Articles already in the sheet are skipped.
Own content and news together
Blog posts and industry news both get shared.
A written intro for each
Posts explain why the article matters, not just the link.
How it works
What happens, step by step
Every hour, ClickRuntime reads your blog and news feeds.
It checks each article's link against your sheet and skips any already there.
AI writes a short intro for each new article, and it's posted to LinkedIn.
The article is added to your sheet with the date and post link.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
- Connect LinkedIn
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 Google Sheets and LinkedIn steps into one automation
Under the hood
The code that runs this automation
from datetime import date
import feedparser
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, ai, report_fetched
AUTHOR, SHEET_ID = "urn:li:organization:12345", "your-spreadsheet-id"
FEEDS = ["https://blog.northwind-talent.example/feed", "https://news.example.org/hr.rss"]
@on_trigger
def run(event):
values = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).spreadsheets().values()
shared = {r[0] for r in values.get(spreadsheetId=SHEET_ID, range="Shared!B2:B").execute().get("values", []) if r}
new = [e for f in FEEDS for e in feedparser.parse(f).entries if e.link not in shared][:3]
report_fetched(len(new))
if not new:
return {"summary": "Nothing new"}
for e in new:
intro = ai.generate(f"Two-sentence LinkedIn intro for a recruitment firm sharing: {e.title}", max_output_tokens=120).text.strip()
http.post("https://api.linkedin.com/rest/posts",
headers={"Authorization": f"Bearer {credentials.connection('linkedin', 'work')}", "LinkedIn-Version": "202409"},
json={"author": AUTHOR, "commentary": intro, "visibility": "PUBLIC", "lifecycleState": "PUBLISHED",
"distribution": {"feedDistribution": "MAIN_FEED"}, "content": {"article": {"source": e.link, "title": e.title}}})
values.append(spreadsheetId=SHEET_ID, range="Shared!A:C", valueInputOption="USER_ENTERED",
body={"values": [[date.today().isoformat(), e.link, e.title]]}).execute()
return {"shared": len(new)}FAQ
Common questions
Can I add articles to the sheet by hand?
How many articles a day will it post?
Can I pause it?
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 trending topics to LinkedIn and log them in a sheet
Trending topics in your field become LinkedIn posts, and every post is logged in your sheet with its link.
See how it worksTurn ideas in a sheet into approved LinkedIn posts
Each day the next idea in your sheet is written up, sent to you for approval, then published and marked done with its link.
See how it worksDraft LinkedIn posts inspired by high-performing ones you collect
Posts you save to a sheet because they did well are studied, and new drafts in your own voice are added to the sheet, with one published each week.
See how it worksKeep exploring
Set up “Share new articles on LinkedIn, tracked in a sheet” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.