Tool found. CLI built. Applied to live problem. Same session.
I came across a cloud browser rendering service — the kind that fetches JavaScript-rendered pages and returns clean text instead of raw HTML. I built a command-line wrapper around its API in an hour, not because I’d planned to build a tool that day, but because a research task was already open and the fit was obvious.
The project: gathering information about eight schools for a real client decision. Initial research through Perplexity had produced a working document. The wrapper let me scrape each school’s actual website — admissions pages, facility listings, about sections — instead of relying on what an AI had summarized from indexed results.
Two things came back wrong in the earlier research.
First: one school’s comedor — the dining hall — was listed as not available. The school’s own site said otherwise. That’s a real error for a family making an enrollment decision.
Second: a school’s domain had changed in a way Perplexity hadn’t flagged. The redirect pattern and new branding pointed to a corporate acquisition — deeper than anything in the press materials. Direct scraping of the live site made it visible. A summarized result doesn’t show you the seams.
What I’m noticing: the gap between “Perplexity found this” and “the website currently says this” is wider than expected. Not because Perplexity is bad. Because scraped data has freshness and specificity that summarized data can’t match. The comedor existed. The acquisition had happened. The AI just hadn’t seen the update.
The interesting part isn’t the wrapper — that’s an hour of plumbing. It’s the pattern: discover tool, build thin interface, apply immediately to something real. The live research task gave honest signal about the tool’s value in a way no test case would have.
Still not sure how to make this routine. Most research sessions don’t come with a fresh tool discovery attached. But when they do, the combination moves fast.
AI research tools are useful. Direct scraping is different. They’re not substitutes — they’re a sequence.