AI lead generation on autopilot means an agent runs a scraper every morning and adds new company leads to the same spreadsheet, and the cheapest way I have found to build it is ScrapeGraphAI, a free open-source Python library, plus a scheduled task in GPT-6 Astra or Claude Code. ScrapeGraphAI reads each company website, pulls out only the details you asked for, and turns them into clean rows, and it can run on a free local model through Ollama so you are not paying a scraping tool every time you find another company. The reel below shows the build; this post covers what is actually free and the UK rules for emailing the results. The presenter in the reel is an AI avatar of Hammad; the words and facts are his.
What ScrapeGraphAI is and what it costs
ScrapeGraphAI lives at github.com/ScrapeGraphAI/Scrapegraph-ai under the MIT licence. On 17 October 2026 it had 31,844 stars and 3,307 forks, with version 2.3.1 released on 6 October 2026 and Python 3.12 or newer required. You describe the fields you want in plain English, optionally as a Pydantic schema, and an LLM reads the page and returns structured JSON. Local models work through Ollama with the model set to ollama/llama3.2 or similar. Two things the reel does not have time for: telemetry is on by default, so set SCRAPEGRAPHAI_TELEMETRY_ENABLED=false, and the open-source graphs do not check robots.txt, so you have to do that yourself. Crawl jobs, managed proxies and anti-bot features belong to the separate paid managed API, not the library.
The 15-minute local setup
Create a Python 3.12 virtual environment, pip install scrapegraphai, run playwright install chromium, pull a model with ollama pull llama3.2 and export the telemetry variable. The minimal scraper on the resource page defines a CompanyContact schema with company_name, business_email and contact_page, then runs SmartScraperGraph against a contact page with the prompt 'Extract the company's public business contact details. Do not extract personal phone numbers or home addresses.' The config uses ollama/llama3.2 at temperature 0 with model_tokens 8192. llama3.2 is a 3-billion-parameter model, weaker at extraction than a cloud model, so expect to check the rows.
Give GPT-6 Astra or Claude Code the repo and a precise brief
The reel's brief is: find me two hundred online shops in the UK that are registered companies, grab their business emails and contact pages, and put everything in a spreadsheet. The copy-paste version on the guide asks the agent to clone the repo into ./harvest, write harvest.py that reads companies.csv, extracts company name, generic business email and contact page with SmartScraperGraph on ollama/llama3.2, checks robots.txt first, and appends new rows to leads.csv without duplicates. GPT-6 Astra is OpenAI's flagship model, launched on 3 September 2026 on paid ChatGPT plans; it is a model, not an agent product, so the scheduling comes from ChatGPT's Scheduled tasks feature and the saved process is a Skill. Claude Code does the same job with a Skill and a Desktop scheduled task. Both agents are paid; the scraper and the local model are not.
Source UK companies from the Companies House API, not directories
The cleanest way to get the company list is the Companies House Public Data API. The key is free to register, it allows 600 requests per five minutes, and advanced search filters by SIC code; SIC 47910 is retail sale via mail order houses or via the internet, which is the UK online shop category. The second prompt on the guide asks the agent to list active limited companies with that SIC code and save name, number and website to companies.csv. Companies House also tells you whether a business is a limited company; anything that is not is probably a sole trader or partnership, which changes the email rules below.
ONE TACTIC A WEEK
Schedule it at 07:00, and what 'autopilot' really needs
The third prompt is: save this as a skill called harvest and create a scheduled task that runs it every day at 07:00. In ChatGPT, web-based scheduled tasks cannot work in a folder on your computer, so a local repo plus local Ollama needs the ChatGPT desktop app open and the Mac awake. In Claude Code, a cloud Routine cannot reach a local Ollama either, so use a Desktop scheduled task. If you do not want to pay an agent to press go, a macOS launchd job runs the script for free and, unlike cron, fires the next time the computer wakes. Whatever you use, deduplicate each morning and have a person check the rows before anything is sent.
The UK rules for the leads you collect
Under PECR regulation 22, limited companies and LLPs are corporate subscribers: you do not need consent to email them, but you must not hide who you are and you must give a working opt-out. Sole traders and ordinary partnerships are individual subscribers and need consent, so if you are unsure, treat the business as an individual and skip it. A named address like jane@brand.co.uk is still personal data under UK GDPR: do a legitimate interests assessment, tell the person where you got their details within a month, and keep a suppression list for objections. Since 5 February 2026 the maximum PECR fine is 17.5 million pounds or 4% of global turnover. Public does not mean free to use: do not scrape LinkedIn or Instagram profiles, respect robots.txt and site terms, and never use proxies or stealth browsers to get around a block. This is a summary of ICO guidance, not legal advice.
My safe rule from the reel
Pull company details, not people's profiles. Email limited companies, not sole traders, and every email says who you are with a one-click opt-out. Do that and the daily lead engine is worth building.
Get the full setup
The free guide at withhammad.com/resources/scrapegraphai-lead-finder has the setup commands, the minimal scraper code, the three copy-paste prompts and the UK checklist. On Instagram, comment HARVEST on the reel and the guide link arrives by DM (follow @withhammad.ai first so the DM reaches you).
Related reading
If this is useful, see how to scan Claude Code skills with NVIDIA SkillSpector and running Kimi K3 on 8GB of RAM.