Hourly
Find Reddit posts from likely customers and email the best ones
Every hour, Reddit posts about the problem your product solves are scored, saved in Supabase, and the promising ones are emailed to you.
- Runs
- Hourly
- Apps
- Gmail, Supabase
- AI
- Yes, uses the built-in AI allowance
- Access
- Supabase read+write; Gmail send
Send this to your assistant
Create a ClickRuntime automation: every hour, search my subreddits for posts about scheduling headaches, score each for buying intent with AI, save new ones to my Supabase reddit_posts table and email me the hot leads.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Founders of small software products know their customers ask for help on Reddit: 'what do you use for X?' Answering those threads early is some of the best marketing there is, but nobody can watch a dozen subreddits all day.
Searching on a schedule, scoring each post for intent and emailing only the promising ones means you join the right conversations while they're still fresh.
What you get out of it
Reply while the thread is fresh
Early, helpful answers get read; replies a week later don't.
Only the posts worth your time
AI scoring filters out the noise so the email lists real buying questions.
A history of every post
Supabase keeps every post found, useful for spotting recurring pain points.
Never the same post twice
Posts already stored are skipped.
How it works
What happens, step by step
Every hour, ClickRuntime searches your chosen subreddits for your keywords.
It skips posts already saved in your Supabase table.
AI scores each new post from 1 to 10 for how likely the author is to need your product.
All new posts are saved to Supabase with their score.
If any score 7 or higher, you get an email listing them with links.
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 Supabase
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 Supabase steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, notify, ai, report_fetched
SEARCH = "https://www.reddit.com/r/smallbusiness+freelance/search.json"
SUPABASE = "https://your-project.supabase.co/rest/v1"
def sb(method, path, **kw):
key = credentials.secret("SUPABASE_KEY")
r = http.request(method, f"{SUPABASE}/{path}", **kw, headers={"apikey": key, "Authorization": f"Bearer {key}", "Prefer": "return=representation,resolution=merge-duplicates"})
return r.raise_for_status() or (r.json() if r.content else None)
@on_trigger
def run(event):
posts = [c["data"] for c in http.get(SEARCH, params={"q": "scheduling tool", "restrict_sr": 1, "sort": "new", "t": "day"},
headers={"User-Agent": "northwind-leads/1.0"}).json()["data"]["children"]]
known = {r["id"] for r in sb("GET", "reddit_posts?select=id&id=in.(" + ",".join(p["id"] for p in posts) + ")")} if posts else set()
new = [p for p in posts if p["id"] not in known]
report_fetched(len(new))
if not new:
return {"summary": "Nothing new"}
lines = "\n".join(f"{i}. {p['title']} — {p['selftext'][:300]}" for i, p in enumerate(new))
scores = ai.generate(f"Score each post 1-10 for intent to buy a scheduling tool. One integer per line.\n{lines}", max_output_tokens=10 * len(new)).text.split()
rows = [{"id": p["id"], "title": p["title"], "url": "https://reddit.com" + p["permalink"], "score": int(s)} for p, s in zip(new, scores)]
sb("POST", "reddit_posts", json=rows)
hot = [r for r in rows if r["score"] >= 7]
if hot:
notify.email_me(f"{len(hot)} hot Reddit leads", "\n\n".join(f"[{r['score']}] {r['title']}\n{r['url']}" for r in hot))
return {"new": len(rows), "hot": len(hot)}FAQ
Common questions
Does it post replies for me?
Which subreddits and keywords does it search?
What makes a post a hot lead?
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
Email renewal reminders from your Supabase subscriptions
Every morning, customers whose subscription renews within 7 days get a reminder email, and you get a list of the at-risk ones.
See how it worksDraft support replies in Gmail from your Supabase knowledge base
New support emails get a draft reply in Gmail based on answers stored in your Supabase knowledge table, and replies you send are saved back as new knowledge.
See how it worksTurn action items in your email into Supabase tasks
Every 15 minutes, tasks mentioned in your new emails, with owners and due dates, are added as rows in your Supabase tasks table.
See how it worksKeep exploring
Set up “Find Reddit posts from likely customers and email the best ones” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.