Daily
Draft a researched LinkedIn post each morning from your topic list
Each morning the next topic in your sheet is researched and turned into a LinkedIn post draft, saved in the sheet for you to edit and post.
- Runs
- Daily
- Apps
- Google Sheets, Perplexity
- AI
- Yes, uses the built-in AI allowance
- Access
- Perplexity key; Sheets read+write
Send this to your assistant
Create a ClickRuntime automation: every weekday at 7, take the next topic from my LinkedIn sheet, research it with Perplexity, write a LinkedIn post draft into the sheet and mark the row as drafted.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Posting regularly on LinkedIn builds trust with buyers and recruits, but a good post needs a point of view backed by something current. Starting from a blank page every morning is why most people post twice and stop.
Founders, consultants and marketing leads use it to wake up to a researched draft they can sharpen in five minutes, instead of writing from scratch.
What you get out of it
A draft every working day
There is always something to start from, so posting stays a habit.
Backed by current facts
Each draft is built on fresh research, so it adds something to the conversation.
Your topics, your voice
You choose the topics, and the drafts follow the tone you describe.
Nothing posts on its own
Drafts stay in the sheet until you copy, edit and post them yourself.
How it works
What happens, step by step
Every weekday morning, ClickRuntime finds the first topic in your sheet that has not been drafted.
Perplexity researches the topic with current sources.
AI writes a LinkedIn post draft with a clear point of view.
The draft is saved in the row, and the row is marked as drafted.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
- Connect Perplexity
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 Google Sheets and Perplexity steps into one automation
Under the hood
The code that runs this automation
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, ai
SHEET_ID = "your-spreadsheet-id"
VOICE = "Plain, practical, first person. Short paragraphs. No hashtags or emojis."
def sonar(prompt):
r = http.post("https://api.perplexity.ai/chat/completions", headers={"Authorization": f"Bearer {credentials.secret('PERPLEXITY_API_KEY')}"},
json={"model": "sonar", "messages": [{"role": "user", "content": prompt}]}, timeout=90).json()
return r["choices"][0]["message"]["content"], [s["url"] for s in r.get("search_results", [])]
@on_trigger
def run(event):
sheets = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")),
cache_discovery=False).spreadsheets().values()
rows = sheets.get(spreadsheetId=SHEET_ID, range="LinkedIn!A2:C").execute().get("values", [])
nxt = next(((i + 2, r[0]) for i, r in enumerate(rows) if len(r) == 1 and r[0]), None)
if not nxt:
return {"drafted": False}
n, topic = nxt
facts, links = sonar(f"What is new and notable about {topic} in the last month? Key facts and examples.")
post = ai.generate(f"Write a LinkedIn post (150-220 words) with a clear opinion about {topic}. {VOICE}\n"
f"Research:\n{facts[:3000]}", max_output_tokens=500).text
sheets.update(spreadsheetId=SHEET_ID, range=f"LinkedIn!B{n}:C{n}", valueInputOption="RAW",
body={"values": [[post.strip(), "Drafted"]]}).execute()
return {"drafted": topic, "sources": len(links)}FAQ
Common questions
Can it match my writing style?
Does it post to LinkedIn for me?
What if I skip a day?
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
Get a sourced daily news digest, saved to a sheet
Each morning Perplexity researches the latest news on your topic; you get the digest by email and every day is logged in your sheet.
See how it worksCheck each week whether AI search answers mention your brand
Each week your key buyer questions are put to Perplexity, and your sheet records whether your brand was mentioned, how, and which sources were cited.
See how it worksTurn topics in a sheet into researched video scripts
Each new topic in your sheet is researched and a 30-second video script is written in the next column, ready to record.
See how it worksKeep exploring
Set up “Draft a researched LinkedIn post each morning from your topic list” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.