Every 15 minutes
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.
- Runs
- Every 15 minutes
- Apps
- Google Sheets, SerpApi
- AI
- Yes, uses the built-in AI allowance
- Access
- Sheets read+write (only the sheets you pick when connecting); SerpApi key
Send this to your assistant
Create a ClickRuntime automation: every 15 minutes, for each company in my Prospects sheet without research, search Google and fill in what they do, company size, recent news and LinkedIn URL.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A two-person sales team at a B2B software company builds prospect lists in Google Sheets: a company name per row, pasted from an event attendee list or a referral. Before anyone reaches out, they want to know what the company does, roughly how big it is and whether anything has happened recently worth mentioning. Doing that by hand takes five to ten minutes per row, so lists of a hundred names sit half-researched.
This automation does the first pass. Every 15 minutes it looks for rows with a company name but no research, searches Google for each one through SerpApi, and AI pulls the useful facts out of the results into the right columns. Reps open the sheet to find rows ready to work.
What you get out of it
More time talking to prospects
Research that took an afternoon is done while reps do other work. The hours saved go into calls and emails, which is where deals actually move.
Openers that show you did your homework
A recent news item gives a natural reason to get in touch. Mentioning a new office or a product launch lands better than a generic introduction.
Consistent research across the list
Every row gets the same fields filled in the same way. That makes it easy to sort by size or filter by industry before deciding who to contact first.
Works where the list already lives
There is no new tool to learn. Paste names into the sheet the team already uses and the research appears beside them.
How it works
What happens, step by step
Every 15 minutes, ClickRuntime reads your Prospects sheet and finds rows that have a company name but empty research columns.
For each of those companies, it runs a Google search through SerpApi.
AI reads the results and pulls out what the company does, its approximate size, a recent news item and its LinkedIn page.
Those facts are written into the row's columns, so the row is never researched twice.
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"
FIELDS = ["what_they_do", "size", "recent_news", "linkedin_url"]
@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="Prospects!A2:E").execute().get("values", [])
todo = [(i + 2, r[0]) for i, r in enumerate(rows) if r and r[0] and len(r) < 2][:10]
report_fetched(len(todo))
if not todo:
return {"researched": 0}
schema = {"type": "object", "properties": {f: {"type": "string"} for f in FIELDS}, "required": FIELDS}
for row, company in todo:
res = http.get("https://serpapi.com/search", params={"engine": "google", "q": company, "api_key": credentials.secret("SERPAPI_API_KEY")}).json()
snippets = "\n".join(f"- {r['title']}: {r.get('snippet', '')} ({r['link']})" for r in res.get("organic_results", [])[:8])
facts = ai.generate(f"Company: {company}\nResults:\n{snippets}\nFill each field briefly; use '' if unknown.", json_schema=schema, max_output_tokens=250).json
sheets.values().update(spreadsheetId=SHEET_ID, range=f"Prospects!B{row}:E{row}", valueInputOption="RAW",
body={"values": [[facts[f] for f in FIELDS]]}).execute()
return {"researched": len(todo)}FAQ
Common questions
How accurate is the company size?
What if two companies share a name?
Can I add my own research columns?
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
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.
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 “Fill in company research for every row in a sheet” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
