Skip to content

Every hour

Research companies from a sheet into Airtable

Companies you add to a sheet are looked up and saved in Airtable with industry, size and a short summary.

Runs
Every hour
Apps
Airtable, Google Sheets
AI
Yes, uses the built-in AI allowance
Access
Sheets edit; Airtable write

Send this to your assistant

Create a ClickRuntime automation: every hour, take new companies from my 'Prospects' sheet, look at their website, work out industry, size and main competitors, and create a record in my Airtable CRM. Mark each row done.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A two-person sales team collects prospect names wherever they find them: a conference list, a LinkedIn post, a referral. The quickest place to drop them is a shared sheet. Before anyone can call, someone has to open each website, work out what the company does and how big it is, and copy that into the CRM. That research step is where the list stalls.

Letting the automation read each company's homepage and fill in the basics means the sheet stays a quick inbox, and by the time a rep opens Airtable the record already says what the company does and why it might care.

What you get out of it

  • The sheet stays quick to use

    Anyone can paste a company name and website into a row. Nobody has to learn the CRM to add a prospect.

  • Records arrive with context

    Each Airtable record has an industry, a size estimate, likely competitors and a one-line summary taken from the company's own site.

  • Rows are handled once

    Each row is marked done in the sheet after its record is created, so a company is never researched twice.

  • Research time goes to calls

    Reps start from a filled-in record instead of a blank one, and spend their time on outreach.

How it works

What happens, step by step

  1. Every hour, ClickRuntime reads your Prospects sheet and looks for rows not yet marked done.

  2. For each new company it opens the website listed in the row.

  3. AI reads the page and works out the industry, rough size, likely competitors and a one-line summary.

  4. A record with those details is created in your Airtable CRM.

  5. The row in the sheet is marked done, so it is never researched again.

Before it runs live

  • Connect Airtable
  • Connect your Google Sheets account and pick the spreadsheets it may use

What you get

RunsEvery hour
Research companies from a sheet into Airtabletoday, 9:00Succeeded
Airtable · CompaniesContoso Freight · Logistics software · 50-200 staff Route planning for regional hauliers; competes with Fabrikam Routes and Tailspin Fleet.

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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 Airtable and Google Sheets steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
enrich_a_list_of_companies_leads_and_store_in_both.pyexample
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, ai, report_fetched
BASE_ID = "appXXXXXXXXXXXXXX"
SHEET_ID = "1AbCdEfGhIjKlMnOpQrStUvWxYz"
SCHEMA = {"type": "object", "properties": {"industry": {"type": "string"}, "size": {"type": "string"},
          "competitors": {"type": "string"}, "summary": {"type": "string"}}, "required": ["industry", "size", "summary"]}
@on_trigger
def run(event):
    values = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")),
                   cache_discovery=False).spreadsheets().values()
    rows = values.get(spreadsheetId=SHEET_ID, range="Prospects!A2:C").execute().get("values", [])
    new = [(i + 2, r) for i, r in enumerate(rows) if len(r) >= 2 and (len(r) < 3 or not r[2])][:10]
    report_fetched(len(new))
    if not new:
        return {"created": 0}
    headers = {"Authorization": f"Bearer {credentials.connection('airtable', 'work')}"}
    for row_num, (name, site, *_) in new:
        try:
            page = http.get(site if site.startswith("http") else f"https://{site}").text[:6000]
        except Exception:
            page = ""
        info = ai.generate(f"Company: {name}\nWebsite text:\n{page}", json_schema=SCHEMA, max_output_tokens=250,
                           system="Describe this company: industry, rough employee count, 2-3 likely competitors, one-line summary.").json
        http.post(f"https://api.airtable.com/v0/{BASE_ID}/Companies", headers=headers, json={"typecast": True,
                  "records": [{"fields": {"Name": name, "Website": site, "Industry": info["industry"], "Size": info["size"],
                               "Competitors": info.get("competitors", ""), "Summary": info["summary"]}}]}).raise_for_status()
        values.update(spreadsheetId=SHEET_ID, range=f"Prospects!C{row_num}", valueInputOption="RAW",
                      body={"values": [["Done"]]}).execute()
    return {"created": len(new)}

FAQ

Common questions

Where does the information come from?
From the company's own website. The script fetches the homepage you list in the sheet and AI summarises it. If a site cannot be reached, the record is still created from the name alone, so nothing is lost.
How accurate is the company size?
It is an estimate from what the site says, such as team pages, office counts or customer numbers. Treat it as a starting point and correct it in Airtable when you know more.
What does the sheet need to contain?
A company name in column A, a website in column B and an empty status column C. The automation writes 'Done' in column C once the record is in Airtable.
What permissions does it need?
Sheets edit; Airtable write. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Research companies from a sheet into Airtable” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.