Local Mac agent vs. SaaS aggregator
SmarterHome AI vs. a local Mac agent: how to compare local internet deals without becoming a sales lead
SmarterHome AI's top-ranking pages all describe the same funnel: hand over your address, phone, and email, then talk to a human authorized reseller. That is a fine way to find a plan. It is also the exact input a commission-driven lead pipeline wants. This guide walks through the mechanical alternative: running a local Mac agent over your own Chrome profile, scraping Xfinity, Spectrum, AT&T, Frontier, and EarthLink yourself, and keeping the comparison grid on your own disk.
What SmarterHome AI actually does
SmarterHome AI is a brand for an authorized-reseller aggregator. The company's top-ranking pages are its own homepage, Nextdoor kiosk listings in Los Angeles, Houston, and Santa Ana, a Better Business Bureau profile out of Del Valle, Texas, a Wanderlog directory stub in Winter Haven, and a set of AmericanHomeQuotes programmatic city pages. The flow on every one of them ends the same way: a phone number and a form that captures address, phone, email, sometimes first and last name.
The consumer pays nothing. The ISPs pay commissions when a resold plan closes. That is the economic reality of the "AI" label here: the system is optimized to steer you toward the plan that pays best to close, not the plan that is cheapest or fastest at your address. Nothing about this is illegal or even unusual. It is the default state of internet-plan comparison in the United States. But once you see the funnel, you can choose not to walk into it.
“Free to consumer, commissions paid by ISPs. The plan you get steered toward is the plan that closes best.”
How authorized-reseller aggregators work
How a local Mac agent does the same job
Fazm is a macOS app. When you ask it to compare internet plans at your address, it drives your own signed-in Chrome through the Playwright MCP extension and, where needed, drives native Mac apps through the macOS accessibility APIs. The agent fills in each ISP's serviceability checker with your address, scrapes the rendered plan cards, and writes the rows to a CSV on your disk. Your address, phone, and email are typed into a form, seen by the ISP, and that is it. No third-party lead pipeline sits in the middle.
The data flow
The anchor fact: the web-scraping skill ships in the app bundle
Fazm's behavior is not a server-side prompt you have to trust. The app bundle contains a Resources/BundledSkills/ folder with one Markdown file per skill. The file web-scraping.skill.md is 60 lines long and tells the agent which tool to reach for depending on the target site. On first launch, SkillInstaller.swift auto-discovers every *.skill.md file and copies it to ~/.claude/skills/. You can open the skills folder on your Mac and read exactly what the agent was told.
Excerpt, web-scraping.skill.md lines 11-21
## Core Tools ### Static Sites - Use requests for HTTP requests - Use BeautifulSoup for HTML parsing - Use lxml for fast XML/HTML processing ### Dynamic Content - Use Selenium for JavaScript-rendered pages - Use Playwright for modern web automation - Use Puppeteer (via pyppeteer) for headless browsing
That is a real file, in a real location, bundled with a signed macOS app. For an ISP comparison, Fazm routes through Playwright because every plan page is JS-rendered. The sibling skill file telegram.skill.md explicitly warns the agent never to use Playwright for Telegram, which is proof the framework routes per-skill rather than blindly launching a browser for every task.
Side-by-side: aggregator vs. local agent
| Feature | SmarterHome AI (aggregator) | Fazm (local) |
|---|---|---|
| Where your address and phone go | Submitted to aggregator CRM, then to ISP reps | Typed into ISP forms, stays on your Mac |
| Who picks the plan ranking | Commission structure ranks plans | You sort the CSV by any column you want |
| Raw plan data | Not provided; you get a phone recommendation | CSV with plan, speed, promo price, post-promo, fees |
| Re-run in 3 months | Another phone call, another lead record | Run the same prompt again, diff the table |
| Anti-bot blocks | Not applicable, it is a call center | Low; Playwright MCP attaches to your real Chrome |
| Works without giving up your info | No, address/phone/email are required | Yes, the ISPs see the typed form; no third party |
| Audit trail | Phone recording you don't get to keep | Local CSV plus optional source HTML per row |
What actually happens when Fazm compares your local ISPs
You say your address out loud
Fazm has a voice hotkey. You press the hotkey and say, 'Compare home internet plans at 1234 Main St, Apt 3, and put the results in a spreadsheet.' Nothing else is needed up front.
The agent loads the web-scraping skill
SkillInstaller.swift has already copied web-scraping.skill.md to ~/.claude/skills/. The agent reads the skill and sees that JS-rendered ISP pages need Playwright.
Playwright MCP attaches to your running Chrome
The playwright-extension path hooks into your real Chrome process. Cookies and fingerprint match a trusted user session, so Turnstile and Cloudflare challenges are not triggered.
Each ISP is visited in sequence
Xfinity.com, Spectrum.net, AT&T.com, Frontier.com, and EarthLink.net each get your address typed into their serviceability form. The agent waits for plan cards to render, then extracts them.
Plan rows are written to a CSV on disk
Provider, plan name, down/up speed, promo price, post-promo price, contract length, equipment fee, data cap, source URL. Optionally the source HTML snippet is saved alongside each row for audit.
You re-rank the table yourself
Open the CSV. Sort by whichever column matters to you this month, not whichever plan pays the highest commission. Next quarter, re-run the same prompt and diff the two tables to catch promo expiry rate hikes.
What the agent log looks like in practice
A condensed transcript of what prints while Fazm runs an ISP comparison at a real address. Exact filenames are from the app bundle.
major ISPs scraped in one run
lead-gen aggregators in the middle
bundled skill files auto-installed on first launch
The same mechanism works for other commercial comparison shopping
Internet plans are one obvious use case. Any comparison where the SaaS version of the tool is actually a lead-gen funnel fits the same pattern. The web-scraping skill is generic; it does not care what the target site is.
Home insurance quote matrix
Drive each carrier's quote form yourself instead of filling one aggregator form that fans out 14 calls.
Solar installer bids
Scrape Sunrun, Sunnova, and local installers without putting your address into a single lead-exchange box.
Moving company estimates
Every aggregator in this category sells leads. Local agent + your calendar is a cleaner flow.
Mortgage rate table
Rate tables on bank sites require real browser rendering. Playwright MCP handles it.
Car lease quote sweep
Dealer lead-gen is the second-worst category after insurance. Same pattern works.
What stays on your disk vs. what ends up in a CRM
Local Mac agent
On your machine
- Raw plan CSV, one row per plan
- Source HTML snippets for each row
- Re-runnable prompt in your agent history
- Your Chrome cookies, where they already were
- A timestamped copy of the comparison for later diffs
Aggregator funnel
Out of your control
- Address in aggregator CRM
- Phone in aggregator CRM
- Email in aggregator CRM, sometimes shared with ISP reps
- Phone call recording, if the call was recorded
- No raw plan grid; you get a verbal recommendation
Request-level view: the same goal, two very different sequences
SmarterHome AI funnel
Fazm local agent
Sites the web-scraping skill is designed to handle
Why not a cloud chatbot with browsing?
A cloud agent that browses for you hits the same anti-bot wall as any headless scraper, because its browser fingerprint is fresh, its cookies are empty, and most ISP serviceability forms sit behind Cloudflare Turnstile or a similar challenge. The practical result is a lot of timeouts and incomplete plan grids.
A Mac-local agent dodges the problem by driving your own Chrome. Your fingerprint is already trusted. Your cookies are already there. The ISP form renders the plan cards because it thinks you are a regular visitor, which you are. That is the operational reason this approach works for commercial-site scraping when generic automation keeps getting blocked.
Want Fazm to run this comparison at your address?
Book a 15-minute call and we will walk through setting up the web-scraping skill and running your first ISP sweep, live.
Book a call →Frequently asked questions
Is SmarterHome AI actually AI, or a call center?
SmarterHome AI is marketed as AI-powered plan matching across 1,000+ providers, but the actual funnel is a phone call with a human authorized-reseller specialist who reads you quotes after you hand over your address, phone number, and email. The consumer does not pay; the ISPs pay commissions on bundles you sign for. That commission model is what 'free AI comparison' quietly means.
What does a local Mac agent like Fazm do differently?
Fazm is a macOS app that drives your own signed-in Chrome through Playwright MCP and can also drive native apps through the macOS accessibility APIs. When you ask it to compare internet plans at your address, it opens Xfinity.com, Spectrum.net, AT&T.com, Frontier.com, and EarthLink.net in your real Chrome, types your address into each serviceability checker, scrapes the plan cards, and pastes the rows into a spreadsheet on your Mac. Your address, phone, and email never get submitted as a lead.
Where in Fazm does the scraping capability actually live?
Fazm ships bundled skills as Markdown files inside the app's Resources/BundledSkills folder. The file web-scraping.skill.md on lines 17 to 20 tells the agent to use Playwright for modern web automation and Selenium for JS-rendered pages. On first launch, SkillInstaller.swift auto-discovers every *.skill.md in that folder and copies it to ~/.claude/skills/. You can open the folder and read the skills yourself; the behavior is not a black box.
Why does the data flow matter if both get me the same plans?
Both flows eventually show you plans, but the residue is different. SmarterHome's form plus phone consult puts your address and phone into a lead pipeline tied to ISP commissions, so the plan you get steered toward is the plan that pays best. Running the scrape on your Mac keeps the raw plan grid on your disk, with no upstream incentive shaping which plan is on top. You can re-rank the table by price, speed, contract length, or fee structure instead of by commission.
Do ISP sites block a local agent the way they block scrapers?
Most address-checker forms on Xfinity, Spectrum, AT&T, and Frontier work fine inside a real signed-in Chrome profile because the request fingerprint and cookie jar look like a regular visitor. Fazm's playwright-extension path attaches to your running Chrome rather than launching a headless browser, which is the anti-bot gate that catches most naive scrapers. Turnstile and captchas pass because your browser is the browser.
What does the output look like?
A CSV or a spreadsheet with one row per plan: provider, plan name, advertised down/up speed, promo price, post-promo price, contract length, equipment fee, data cap, and the URL where it was scraped. The agent can also write the source HTML snippet alongside each row so you can audit what got parsed. Since it runs locally, you can re-run it every few months and diff the table to see price hikes.
Does Fazm work with anything besides ISP comparison?
Yes. Fazm is a general macOS agent. Bundled skills include web-scraping.skill.md, deep-research.skill.md, doc-coauthoring.skill.md, travel-planner.skill.md, google-workspace-setup.skill.md, and more, all discoverable in Resources/BundledSkills. The internet-plan comparison use case is one application of the web-scraping skill plus your Chrome profile.