AI automation and lead generation
Build small business workflows with clear inputs, human review, reliable retries and a run log.
21 lessons in 6 modules
What you'll practise
- Connect a form, a record and a notification using sample inputs.
- Design lead qualification and follow-up with explicit review boundaries.
- Test duplicate delivery, failures and recovery before using live records.
Before you start
Choose a repetitive task you understand and prepare fabricated sample records. You can plan the workflow before connecting accounts or paying for a tool.
Course syllabus
Module and lesson summaries follow the club curriculum. Open any module to read its outline.
The three automations every solo business needs
Capture, follow up, report: the three loops
You write down every task in your business that happens more than once a week, then sort the list into three loops: capture (a lead arrives), follow-up (someone hears back) and report (you learn what happened). Most lists have twenty tasks and need three automations. Cirka's first loop was a sign-up form that wrote a row to a sheet and sent one welcome email. You leave with a one-page map of the three loops, trigger and output for each, and a choice between n8n, Make and Zapier made with one rule: how many runs a month you expect and who fixes it when it breaks.
Your first n8n workflow: form to sheet to phone
You create an n8n account, or run it on your own machine with one command, and build a three-node workflow: a webhook that receives a form submission, a Google Sheets node that appends the row, and a Telegram message that lands on your phone within seconds. You test it with a real submission from a client site. The mistake almost everyone makes on day one is pasting the test webhook URL into the live form, which stops working the moment you close the editor. You learn the difference, switch the workflow to active, and end with a form that reports to you from anywhere.
Follow-up in two minutes, not two days
You extend the form workflow so the lead hears back before you have read the message. An OpenAI node drafts a two-line reply from the form fields and a short description of your offer, a Gmail node sends it from your address, and a task goes into your sheet. Marius built Cirka while working as a broker; a loop like this is what lets a side business answer faster than a full-time one. One rule keeps it honest: the reply promises a time, never an outcome. You end with a follow-up that runs in about two minutes and a sheet of what still needs a human.
A Monday report that writes itself
You build the report loop: a schedule trigger fires at 07:00 on Monday, pulls last week's orders from Stripe and sign-ups from Supabase, adds ad spend from a sheet, and hands the numbers to an OpenAI node with a strict template. The output is five lines and one sentence on what changed. In a fictional unbranded mug exercise, a report like this flags a change in orders without opening five dashboards. You learn why the model gets the numbers and not the query, so it cannot invent a figure. You leave with a report in your inbox before coffee and the three loops complete.
Lead lists and enrichment with Clay
A list worth building: your ICP in 20 rows
Before touching Clay, you write the profile of a customer who pays: industry, size, country, one signal that they have the problem. Then you find twenty real companies by hand that match it and put them in a sheet. For Cirka, a useful signal is a Norwegian business already running Meta ads, because they have budget and a visible need. You use those twenty rows to set Apollo filters that return the same kind of company, and export your first 200. You have a defined profile, a hand-checked sample and a raw list ready for enrichment.
Clay basics: one table, five columns, 200 rows
You import the Apollo export into a Clay table and add five columns in order: company website, LinkedIn page, headcount, a work email found through the waterfall, and a phone number if one exists. Each column shows what it costs in credits before you run it, and you run everything on ten rows first. The expensive mistake is running enrichment on all 200 rows at once and burning a month of credits on a broken column. You finish with a table where every row has a verified email or is marked as missing, and a clear number for what one lead costs to enrich.
Scoring leads with an AI column
You add a research column that reads each company's website and answers three yes-or-no questions, then a scoring column that turns the answers into a number from one to five. You write the prompt yourself, with the questions that work for Cirka: do they run ads, do they sell online, is there a person named on the site. Vague prompts score everything a three. Then you check thirty rows by hand against the score and adjust until you agree with it at least 25 times out of 30. You end with a list sorted by fit and a prompt you can reuse on the next list.
Clay to n8n: a handoff that keeps the list clean
Build a supervised Clay handoff using the practice pack and five fictional records. Validate nested webhook fields, retain item identity after lookups, and log low scores, suppression, duplicates and malformed input. The final state is ready for human review with external actions disabled. A sequential Sheets exercise cannot prove concurrent deduplication; provider writes and campaign activation need separate approvals and reconciliation.
Outbound that doesn't get you blacklisted
Domains, warm-up and the 30-a-day rule
Prepare an owned test-mailbox plan and review current official sender, authentication and provider requirements. Inspect the actual SPF, DKIM and DMARC results before considering live outreach. No number of warm-up days, inboxes or daily sends guarantees delivery or permission to contact someone. Finish an eligibility checklist, current cost card and pause/recovery plan; keep campaigns inactive while those checks are unresolved.
A three-step sequence that reads like one person
Draft an evidence-based first message and optional follow-ups that each add relevant information. Use fictional examples as structure only; replace them with facts you can substantiate about your own work. Review rendered previews, recipient eligibility and suppression before any send. Log actual replies without a promised response rate or assuming that a small response count identifies its cause.
One-line personalisation with the OpenAI API
Generate draft first lines from supplied source text and retain the exact supporting sentence. A second model pass may flag errors but does not replace human review. Use a small fictional batch, hold NONE or unsupported lines and log actual costs using current billing units. No fixed error rate or per-thousand price is promised.
Replies, bounces and the kill switch
You point Instantly's webhooks at n8n so every reply and bounce arrives as an event. An OpenAI node sorts replies into interested, not now, wrong person and stop, then writes the email to the suppression sheet, pauses the lead in Instantly and, for interested, sends you a Telegram message with the thread. The kill switch is a second workflow that counts bounces per inbox every hour and pauses the campaign above three percent. You also learn the Norwegian rule: cold email to a company is allowed, to a private person it is not. You leave with outbound that stops itself before a provider does.
Agents that answer, book and route
An inbox agent that drafts, never sends
Build a supervised inbox draft flow with a dated FAQ and synthetic messages. Validate the model's draft/handoff response, then show the recipient, thread, full text and sources on a human approval card. Only approval of that exact content permits one send. Edits need fresh approval; rejection, expiry, malformed output and handoff produce no send. Test duplicates and uncertain send outcomes; no Cirka deployment or time saving is claimed.
Booking calls with duplicate and conflict checks
You build a supervised scheduling workflow on a test calendar: qualify an interested reply, offer dated slots in named timezones, and request the explicitly chosen booking. This is a teaching workflow, not a documented Cirka case. Invitations and replies begin in approval mode; an offered slot is not a reservation. Enforce durable message and booking identities, serialised availability checks, reply limits and timeout reconciliation outside the prompt. Test duplicates, concurrent selections, restarts and stale slots. Keep approval enabled until those checks pass, all calendar writers are accounted for and lesson 4.4's operating controls are in place.
Routing: tag, prioritise and hand off
You put a classifier in front of everything that arrives: email, the contact form, replies from outbound. It tags each message as sales, support, billing or noise with a confidence score, looks the sender up in Supabase and Stripe, and routes it: sales to the booking agent, support to the drafting agent, billing to you with the customer's plan attached. Anything under 0.8 confidence goes to a holding channel instead of guessing. You feed it a week of real messages and count how often it was right before you trust it. You end with one entrance and four exits, and nothing lost in between.
Memory, limits and the cost meter
Work through a fictional event ledger for approval, memory, cost reservations and failures. Reserve capacity atomically before paid work, account for concurrent attempts and reconcile unknown provider outcomes. Classify retries by operation and distinguish budget alerts from verified hard stops. The written lab and local fixtures do not prove a live agent can run unattended; preserve approval mode and list the live checks still needed.
Selling automation as a service
The first client is already in your inbox
You list every business you have already worked with, bought from or built a website for, and write next to each one the task you have watched them do by hand. Then you send five short messages that name the task and offer to make it disappear for a fixed price. No deck, no discovery call yet. The websites Marius sold to local businesses are the natural door to this: the client already trusts the site, and its contact form is the obvious first automation. You leave with five messages sent and a template for the sixth.
Scoping a build in one 45-minute call
You run the discovery call from a script: what happens now, step by step, who touches it, what breaks, what it costs them a month. You draw the flow on one page while they talk and read it back. Then you price it as two numbers: a fixed fee for the build and a monthly fee for keeping it running. The proposal is two pages: scope, what is excluded, handover, price. You take the template from the library and fill it in on the call, so it is sent the same day. You end with a signed scope or a clear no, and nothing in between.
Handover, monitoring and the monthly retainer
You hand over a build the way you would want to receive one: the workflow in the client's own n8n account, a one-page runbook, a fifteen-minute recorded walkthrough, and an error workflow that messages both of you when something fails. Then you set the retainer at ten to twenty percent of the build fee per month, in writing. The retainer buys monitoring, a monthly report and small changes, and you define small before the first request arrives. Five clients on retainers is a steady base that pays for your own tools. You leave with a handover checklist and a report that runs itself.
Grounded answers and voice-assistant rehearsal
Build and evaluate a small RAG answer route
Retrieve from a complete synthetic knowledge set, cite each answer and abstain when evidence is absent. Includes runnable local retrieval, conflicting versions and a document-injection check.
Rehearse a voice agent and executive-assistant handoff
Design turns, interruption and escalation, then work a calendar-conflict and briefing scenario using synthetic records. Finish with an approval card and a measurable live-test plan.
Keep learning in the club
Course outlines and these guides are free to read without an account. Full lesson bodies and member features require a paid membership. The preview uses sample data; external tools may charge separately.