The moment it happens
Turn a website address into a company profile in Supabase and Drive
Submit a company's website and get its mission, services, contacts and keywords saved as a row in Supabase and a profile doc in Drive.
- Runs
- The moment it happens
- Apps
- Google Drive, Supabase
- AI
- Yes, uses the built-in AI allowance
- Access
- Supabase write; Drive write (drive.file)
Send this to your assistant
Create a ClickRuntime automation: when I submit a URL to this link, read the website, pull out the mission, services, contacts and keywords, add a row to my Supabase companies table and save a profile doc in my Drive folder.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A business development team researches prospects before every call. Someone opens the company's site, skims the about and services pages, copies contact details into a database and writes a short profile. It takes twenty minutes per company and the format varies by who did it.
Sending the website address to a link and getting a structured profile back in seconds frees that time for the call itself. Every profile has the same fields, so the database stays searchable.
What you get out of it
Research in seconds
A profile is ready shortly after you submit the address. You can prepare for a call minutes before it starts.
A consistent database
Every company gets the same fields in Supabase, so filtering by service or keyword works across all of them.
A readable profile to share
The Drive doc gives colleagues a quick read without database access.
Easy to feed from anywhere
Any form, browser shortcut or internal tool can send a URL to the link.
How it works
What happens, step by step
It starts when a website address is sent to your trigger link.
ClickRuntime reads the website's home page.
AI pulls out the mission, services, contacts and keywords.
A row is added to your Supabase companies table and a profile doc is saved in your Google Drive folder.
Before it runs live
- Connect Google Drive
- Connect Supabase
- Paste your automation's link into the other app's webhook settings
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 Drive and Supabase steps into one automation
Under the hood
The code that runs this automation
from bs4 import BeautifulSoup
from googleapiclient.http import MediaInMemoryUpload
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_event, credentials, http, ai
SUPABASE_URL, FOLDER_ID = "https://your-project.supabase.co", "your-profiles-folder-id"
@on_event
def handle(event):
url = event.event["url"]
text = BeautifulSoup(http.get(url, timeout=20).text, "html.parser").get_text(" ", strip=True)[:15000]
schema = {"type": "object", "properties": {k: {"type": "string"} for k in ["name", "mission", "services", "contacts", "keywords"]}}
p = ai.generate(f"Extract the company name, mission, services, contacts and keywords from this website:\n{text}",
json_schema=schema, max_output_tokens=600).json
key = credentials.secret("SUPABASE_SERVICE_KEY")
http.post(f"{SUPABASE_URL}/rest/v1/companies", json={"website": url, **p},
headers={"apikey": key, "Authorization": f"Bearer {key}", "Prefer": "resolution=merge-duplicates"})
doc = "\n\n".join(f"{k.title()}: {v}" for k, v in p.items())
drive = build("drive", "v3", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
drive.files().create(body={"name": f"{p.get('name', url)} profile", "parents": [FOLDER_ID],
"mimeType": "application/vnd.google-apps.document"},
media_body=MediaInMemoryUpload(f"{url}\n\n{doc}".encode(), mimetype="text/plain")).execute()
return {"company": p.get("name")}FAQ
Common questions
What does the profile include?
What if the website blocks reading?
Will a company be added twice?
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
Draft answers to support questions from your own documents
Each question from your support form comes back to you as a drafted answer with links to the documents it used.
See how it worksCategorise bank statement transactions into Supabase
Drop a bank statement CSV into Drive and each transaction is sorted into your own categories and saved to your Supabase database.
See how it worksKeep a Drive folder searchable in your Supabase vector table
New and updated documents in your Drive Knowledge folder are split into chunks, embedded and kept in step in your Supabase documents table, so your app always searches current content.
See how it worksKeep exploring
Set up “Turn a website address into a company profile in Supabase and Drive” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.