Every 30 minutes
Write SEO content briefs for new keywords in a sheet
Add a keyword to your SEO sheet and a content brief based on the current top ten Google results appears in the next column.
- Runs
- Every 30 minutes
- Apps
- Google Sheets, SerpApi
- AI
- Yes, uses the built-in AI allowance
- Access
- Sheets read+write; SerpApi key
Send this to your assistant
Create a ClickRuntime automation: every 30 minutes, for each new keyword in my SEO sheet, pull the top 10 Google results and the People Also Ask questions, and write a content brief into the Brief column.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A content marketer at an online furniture shop plans articles from a keyword list in Google Sheets. Before briefing a writer, they look at what already ranks for each keyword: the angle, the headings, the questions people ask. Doing that well takes half an hour per keyword, so writers often get a one-line brief and the article misses what the top pages cover.
This automation writes the brief. Every 30 minutes it picks up new keywords, pulls the top ten Google results and the People Also Ask questions through SerpApi, and AI writes a brief with the search intent, a suggested title, the headings to cover and the questions to answer. The marketer reviews it and passes it to a writer.
What you get out of it
Briefs based on what ranks today
The brief reflects the pages Google currently rewards for that keyword. Writers aim at a real target instead of guessing what searchers want.
Better first drafts
Writers who get headings, angle and questions up front deliver drafts that need fewer rounds of edits. That saves time on both sides.
Answer the questions people ask
People Also Ask questions show exactly what searchers wonder about. Building them into the article helps it match more searches.
Plan more content in less time
Half an hour of research per keyword becomes a quick review. The same person can plan far more articles each month.
How it works
What happens, step by step
Every 30 minutes, ClickRuntime reads your SEO sheet and finds keywords that do not have a brief yet.
For each one, it pulls the top ten Google results and the questions people also ask, through SerpApi.
AI writes a brief with the search intent, a suggested title, headings to cover and questions to answer.
The brief is written into the Brief column next to the keyword, so each keyword is only handled once.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
- 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
- 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 SerpApi 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, report_fetched
SHEET_ID = "your-spreadsheet-id"
@on_trigger
def run(event):
sheets = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).spreadsheets()
rows = sheets.values().get(spreadsheetId=SHEET_ID, range="SEO!A2:B").execute().get("values", [])
todo = [(i + 2, r[0]) for i, r in enumerate(rows) if r and r[0] and len(r) < 2][:5]
report_fetched(len(todo))
if not todo:
return {"briefs": 0}
for row, keyword in todo:
res = http.get("https://serpapi.com/search", params={"engine": "google", "q": keyword, "num": 10, "gl": "us",
"api_key": credentials.secret("SERPAPI_API_KEY")}).json()
top = "\n".join(f"{r['position']}. {r['title']} - {r.get('snippet', '')}" for r in res.get("organic_results", [])[:10])
paa = "\n".join(q["question"] for q in res.get("related_questions", []))
brief = ai.generate(f"Keyword: {keyword}\nTop results:\n{top}\nPeople also ask:\n{paa}",
system="Write a content brief: search intent, suggested title, H2 outline, questions to answer, what top pages share.", max_output_tokens=700).text
sheets.values().update(spreadsheetId=SHEET_ID, range=f"SEO!B{row}", valueInputOption="RAW", body={"values": [[brief]]}).execute()
return {"briefs": len(todo)}FAQ
Common questions
What does a brief include?
Can I search a specific country?
Does it write the 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
Fill in company research for every row in a sheet
Add a company name to your sheet and the empty columns fill in with what they do, their size, recent news and their LinkedIn page.
See how it worksGet daily content ideas from search trends in a sheet
Each morning five post ideas based on what people are searching and reading in your niche are added to your content sheet.
See how it worksCollect local business leads from Google Maps into a sheet
Every week, local businesses that match your search are added to your leads sheet with their phone number, website and rating, and none are added twice.
See how it worksKeep exploring
Set up “Write SEO content briefs for new keywords in a sheet” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
