Skip to content

Weekly

Get this week's promo codes for your shops

Every Monday you get the promo codes that look current for the stores you buy from, without repeats.

Runs
Weekly
Apps
SerpApi
AI
Yes, uses the built-in AI allowance
Access
API key

Send this to your assistant

Create a ClickRuntime automation: every Monday, search for promo codes for IKEA, Nike, Uniqlo, Zalando and Best Buy and email me the ones that look current. Skip codes you've already sent me.

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

Everyone has typed 'store name promo code' into Google and clicked through a page of codes that expired in March. Coupon sites list hundreds of entries, most dead, and checking each one at checkout takes patience. If you buy regularly from the same few shops, such as a pet supply store, a meal kit or a software subscription, you either overpay because you did not look, or lose ten minutes each time hunting for a discount that may not exist.

Each week it runs a Google search through SerpApi for promo codes for each store on your list, uses ClickRuntime's built-in AI to extract codes and expiry dates from the result snippets, skips any it has emailed before, and sends you only the new ones. Frequent online shoppers, small teams buying supplies and deal hunters use it as a standing watch for discounts.

What you get out of it

  • Discounts found before you check out

    A code waiting in your inbox gets used at the next purchase. Even a 10 percent saving on a monthly order of $200 adds up to more than a year of small, regular savings.

  • Only new codes are sent

    Remembering what has been emailed means you are not shown the same list every week. The email appears when something has changed, so you will keep reading it. You see this week's new code for the meal kit once, not the same stale one every Monday.

  • Expiry dates are noted

    Extracting dates from snippets shows which codes are about to lapse. You can use a code that ends Friday instead of trusting one that ended last month. A code ending Friday gets used on Thursday's order instead of failing at checkout on Saturday.

  • Stores you care about, not the whole internet

    The search is limited to your list of shops, so the results are relevant. A general coupon aggregator shows deals for hundreds of retailers you will never use. Searching only the pet store and the software vendor you buy from keeps irrelevant coupon pages out of the email.

  • No habit to maintain

    You do not have to remember to search before each order. The weekly check runs on its own, and a useful code simply shows up when there is one. The check happens weekly whether or not you remember, so a good code simply arrives before the next order.

How it works

What happens, step by step

  1. Every Monday, ClickRuntime searches Google for promo codes for each store on your list.

  2. AI reads the search results and pulls out each code, what it gives you and when it expires, if that is shown.

  3. It skips any code it has already sent you in an earlier week.

  4. You get one email listing the new codes, grouped by store.

Before it runs live

  • Connect SerpApi

What you get

RunsWeekly
Get this week's promo codes for your shopstoday, 9:00Succeeded
Email · This week's promo codesNike: SPRING20 - 20% off full-price items (expires 31 Oct) Zalando: WELCOME10 - 10% off first order (expires ?)

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

  • 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 SerpApi 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.
find_working_promo_codes.pyexample
from clickruntime import on_trigger, credentials, http, ai, state, notify

STORES = ["IKEA", "Nike", "Uniqlo", "Zalando", "Best Buy"]
SCHEMA = {"type": "object", "properties": {"codes": {"type": "array", "items": {"type": "object",
          "properties": {"code": {"type": "string"}, "offer": {"type": "string"}, "expires": {"type": "string"}},
          "required": ["code", "offer"]}}}, "required": ["codes"]}

@on_trigger
def run(event):
    key = credentials.secret("SERPAPI_KEY")
    sent = set(state.get("sent") or [])
    lines = []
    for store in STORES:
        data = http.get("https://serpapi.com/search.json",
                        params={"engine": "google", "q": f"{store} promo code", "api_key": key}).json()
        snippets = "\n".join(f"{r['title']}: {r.get('snippet', '')}" for r in data.get("organic_results", [])[:8])
        found = ai.generate(f"Store: {store}\n{snippets}", json_schema=SCHEMA, max_output_tokens=300,
                            system="List promo codes that look current. Ignore expired ones.").json["codes"]
        for c in found:
            if f"{store}:{c['code']}" not in sent:
                sent.add(f"{store}:{c['code']}")
                lines.append(f"{store}: {c['code']} - {c['offer']} (expires {c.get('expires') or '?'})")
    if lines:
        notify.email_me("This week's promo codes", "\n".join(lines))
    state.set("sent", sorted(sent))
    return {"new_codes": len(lines)}

FAQ

Common questions

Does it check whether a code really works?
No. It finds codes mentioned in search results and reports them with any dates it can read. Whether a code is valid is only known at checkout, and some codes are restricted to new customers or specific products.
How are stores added to the list?
You give your AI assistant the names of the stores, and it saves them as part of the setup. Adding or removing a store later is a quick change that is confirmed before it takes effect.
Why was a code I know about missing?
The automation relies on what Google's results show in snippets. A code on a store's email-only offer or a members' page will not be found. Codes without clear text in a snippet may also be skipped.
What permissions does it need?
API key. 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 runs (weekly). Checks that find nothing to do 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 “Get this week's promo codes for your shops” from your assistant

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