HAMMAD YOUSUF

AI AGENTS

5 min read · 2026-11-01

AI lead generation on a schedule: ScrapeGraphAI, GPT-6 Astra and a 7am task

AI lead generation on a schedule: ScrapeGraphAI, GPT-6 Astra and a 7am task

TL;DR

ScrapeGraphAI (MIT, 31,844 GitHub stars on 17 Oct 2026) uses an LLM, including a free local model through Ollama, to read a web page and return only the fields you ask for. Give GPT-6 Astra in the ChatGPT desktop app, or Claude Code, the repo and a precise brief, save the process as a skill and run it as a scheduled task at 07:00. The scraper and the local model are free; the agents are paid, and a local run needs your computer awake. Source UK companies from the Companies House API, email limited companies only, say who you are and include an opt-out. Not legal advice.

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.

The HARVEST reel: ScrapeGraphAI, the brief to the agent and the 7am scheduled task. Watch on Instagram

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

One tactic a week. No filler.

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).

If this is useful, see how to scan Claude Code skills with NVIDIA SkillSpector and running Kimi K3 on 8GB of RAM.

Hammad Yousuf

AI Marketing Automation Engineer · Dubai, UAE

FAQ

Common questions

Is ScrapeGraphAI free?

The Python library is MIT-licensed and free, and it runs on free local models through Ollama. The separate managed API at scrapegraphai.com, which adds crawling, proxies and anti-bot features, is paid. The agent that schedules the run (GPT-6 Astra or Claude Code) also needs a paid plan.

Can GPT-6 Astra run a scraper every morning?

Through ChatGPT's Scheduled tasks feature, yes, but a task that touches a local repo and a local Ollama model needs the ChatGPT desktop app open and your computer awake. A free macOS launchd job can trigger the same script without an AI subscription.

Is it legal to email scraped business contacts in the UK?

Under PECR you can email limited companies and LLPs without consent if you identify yourself and include an opt-out. Sole traders and ordinary partnerships need consent, and named addresses are personal data under UK GDPR. This is a summary of ICO guidance, not legal advice.

Where should the UK company list come from?

The Companies House Public Data API, which has a free key, allows 600 requests per five minutes and filters by SIC code (47910 for online retail). It also confirms whether a business is a limited company, which decides the email rules that apply.