Blog

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

Side-by-side desktop and mobile search results for one query

Your Agent Is Searching From a Desktop Nobody Uses

Mobile and desktop return different results for the same query. If your users are on phones, your agent is reading the wrong page.
A trace of an agent's tool calls with timings and outcomes

You Can't Debug an Agent You Can't See

When a research agent returns a bad answer, the bug is almost never in the model. It's in what it searched for and what came back.
An agent toolkit grouping search, news, and read functions

Building a Search Toolkit for an Agno Agent

Agno's Toolkit class groups related functions into one unit. Search, news, and page reading belong together — here's how they fit.
Marketplace listings plotted against a computed market price

A Deal-Hunting Agent That Knows What a Good Price Looks Like

Finding a cheap listing is easy. Knowing whether it's a bargain or a broken unit requires comparing it to the market.
An itinerary built from real map listings with coordinates

A Travel Planning Agent Grounded in Real Places

Ask a model to plan three days in Lisbon and it will confidently recommend a restaurant that closed in 2019. Maps data fixes that.
A budget meter tracking an agent's tool calls

Why Your Agent Made 340 Search Calls to Answer One Question

Unbounded tool loops are the default. Budgets, deduplication, and a stopping rule turn an expensive agent into a predictable one.
Search results being collected across multiple pages and deduplicated

Going Deeper Than Page One Without Wasting Requests

Most agents read the top three results. When you genuinely need depth, the way you paginate determines whether you get coverage or duplicates.
A search results page annotated with its feature blocks

An SEO Audit Agent That Looks at the Whole SERP

Rank tracking tells you position 4. It doesn't tell you that positions 1 through 3 are below an answer box, a video carousel, and four ads.
Search results being transformed into validated structured records

Turning Messy SERP Data Into Clean JSON Your Code Can Trust

The gap between a search response and a typed record is where most extraction pipelines quietly break. Schemas plus validation close it.
An MCP server exposing search tools to multiple clients

A TypeScript MCP Server for Search, Written Once and Reused Everywhere

One stdio server gives Claude Desktop, Claude Code, and any other MCP client the same set of search tools. Here's the whole thing.