Blog

Learn how to scrape the web and create tools with public data.

News coverage of a company scored and filtered down to a few alerts

A Company Monitoring Agent That Doesn't Cry Wolf

The hard part of a news monitoring agent isn't finding coverage. It's deciding which of forty articles is worth interrupting someone for.
A diagram contrasting MCP tools and resources

MCP Resources vs Tools: Which One Should Search Be?

The protocol gives you two ways to expose data. Picking the wrong one produces a server that technically works and nobody uses well.
A Flowise chatflow with a custom search tool node connected to an agent

Adding Live Search to a Flowise Chatflow

Flowise's Custom Tool node takes plain JavaScript. That's all you need to give a visual chatflow real web results.
A market size estimate broken into sourced input variables

A Market Sizing Agent That Shows Its Arithmetic

Ask a model for a market size and you get a number with no provenance. Ask it to build one from sourced inputs and you get something you can argue with.
Concurrent requests to several API endpoints merging into one result

One Question, Six Endpoints, One Round Trip

Some questions need web results, news, and local listings at once. Fanning out across endpoints costs the latency of the slowest one, not the sum.
A UI streaming search progress events before the final answer

Streaming What Your Research Agent Is Doing, Not Just What It Says

Twenty seconds of blank screen while an agent searches feels broken. Streaming the tool calls turns dead time into visible progress.
An answer box and knowledge panel extracted from a search response

Reading Answer Boxes and Knowledge Panels Without Trusting Them Blindly

Google's answer box is a fast path to a fact and an occasional confident lie. Use it as a hint, verify it as a claim.
A durable workflow replaying completed activities after a restart

Research Workflows That Survive a Deploy

A twenty-minute research job shouldn't restart from scratch because a pod got rescheduled. Durable execution makes each search call replayable.
An ADK agent calling a custom function tool

Adding a Custom Search Tool to a Google ADK Agent

ADK gives agents a built-in search, but it's tied to one provider. A plain Python function tool gets you control over the whole retrieval layer.
Retry attempts spaced by exponential backoff with jitter

Retry Logic That Doesn't Make Things Worse

The naive retry loop turns a brief rate limit into a sustained one. Getting backoff right takes about forty lines.