On a schedule
Get researched social post drafts by email every weekday
Each weekday morning you get an email with post drafts for LinkedIn, X and Instagram, written from the latest news on your topic, ready to approve and post.
- Runs
- On a schedule
- Apps
- Gmail, SerpApi
- AI
- Yes, uses the built-in AI allowance
- Access
- SerpApi key; gmail.send
Send this to your assistant
Create a ClickRuntime automation: every weekday at 8am, search Google News for my topic with SerpApi, have AI write a LinkedIn post, a post for X and an Instagram caption, and email them to me for approval.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A cybersecurity consultant knows that posting regularly brings in work, but writing three posts in three formats every morning before client calls never happens. When they do post, it is often days after the news broke, when everyone else has already commented.
This automation has drafts waiting in their inbox each weekday. It searches Google News for their topic, AI writes a LinkedIn post, a short post for X and an Instagram caption grounded in that morning's news with sources, and Gmail sends it to them. They read it with their coffee, edit what they like and post.
What you get out of it
Be early on the news
Drafts are based on that morning's coverage, so you can comment while a story is still fresh. Early posts get more attention than the tenth take on the same story.
Three formats ready at once
Each network wants a different length and style. Getting all three together saves rewriting the same idea three times.
You approve everything
Drafts come to your inbox, not straight to your accounts. Nothing is posted until you have read it and chosen to share it.
Sources included
Each draft lists the articles it drew on. You can check a fact before posting it under your name.
How it works
What happens, step by step
Every weekday morning, ClickRuntime searches Google News for your topic through SerpApi.
It skips articles it has already used in an earlier email.
AI writes a LinkedIn post, a short post for X and an Instagram caption from the new articles, and lists the sources.
The drafts are emailed to you from your own Gmail address, ready to approve and post.
Before it runs live
- Connect Google through your own Google app (a one-time, 10-minute setup), so it works with your own Gmail
- 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 Gmail and SerpApi steps into one automation
Under the hood
The code that runs this automation
import base64
from email.mime.text import MIMEText
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, state, ai
TOPIC = "ransomware small business"
ME = "you@example.com"
@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()
fresh = [n for n in news.get("news_results", []) if n.get("link") and n["link"] not in used][:6]
if not fresh:
return {"sent": False}
sources = "\n".join(f"- {n['title']} ({n['link']})" for n in fresh)
drafts = ai.generate(f"News on {TOPIC}:\n{sources}\n\nWrite: 1) LinkedIn post 2) post for X under 260 chars 3) Instagram caption. Then list sources.",
system="Write in a clear, expert, first-person voice. Use only facts from the news.", max_output_tokens=900).text
gmail = build("gmail", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
mime = MIMEText(drafts)
mime["to"], mime["subject"] = ME, f"Post drafts: {fresh[0]['title'][:80]}"
gmail.users().messages().send(userId="me", body={"raw": base64.urlsafe_b64encode(mime.as_bytes()).decode()}).execute()
state.set("used", list(used | {n["link"] for n in fresh})[-300:])
return {"sent": True, "articles": len(fresh)}FAQ
Common questions
Why email instead of posting directly?
Can I change the networks?
What if there is no news on my topic that 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 weekly email of promo codes for your favourite shops
Once a week you get an email listing current discount codes for the shops on your list, so you have them ready before you buy.
See how it worksGet new job listings by email every morning
Each morning you get an email with jobs that match your search and that you have not seen before, each with a fit score and a draft cover letter.
See how it worksEmail yourself a company name and get a research brief back
Send yourself an email with "brief:" and a company name, and a short brief with background, recent news and talking points comes back in the same thread.
See how it worksKeep exploring
Set up “Get researched social post drafts by email every weekday” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
