Go-To-Market

Build an enriched lead list with LangChain

Turn any Google Maps search into a scored, enriched lead list — powered by a LangGraph agent.

Use case: Search Google Maps for local businesses, visit each website to extract contact details, and score every lead on outreach potential.

Quick Start

Inputs

  1. Search query A location-based business search phrase entered at run time (e.g., “Italian restaurants in Brooklyn, NY” or “yoga studios in Austin”).

Outputs

  • Enriched lead list with email, opening hours, and description per business
  • Score 1–10 and scoring reason per lead
  • Full Google Maps attributes per business: categories, amenities, atmosphere tags, accessibility, dining options, and more
  • Natural language chat over the complete dataset
  • CSV export of the full enriched and scored list

How it works

A 6-phase pipeline. Read the blog here for a deeper explanation.

  1. Search The Google Maps agent returns up to 20 structured business records for the user's query — including website URLs, categories, and ratings.
  2. Filter Results are filtered to businesses with a website URL and sorted by rating — businesses without a site are dropped since there's nothing to extract.
  3. Extract For each qualifying business, Nimble Extract renders the website and returns clean markdown — handling JavaScript, redirects, and bot detection automatically.
  4. Enrich The agent pulls contact email, opening hours, and a short description from each page — fields not found on the page are returned as null.
  5. Score A LangChain chain scores all enriched leads in a single Claude call — each lead gets a score from 1 to 10 and a one-sentence reason based on completeness, ratings, and engagement signals.
  6. Chat The full enriched dataset is available as chat context — ask any natural language question about the results directly from the dashboard.

Stack

Nimble primitives plus the full runtime stack.
Nimble APIs
What it does
  1. google_maps_search Returns structured business listings from Google Maps for any search query — name, address, rating, phone, website URL, and rich attribute arrays.
  2. Extract Renders any URL with a full browser and returns clean markdown — handles JavaScript, redirects, and anti-bot measures automatically.
3rd Party Tools
Role
  1. langgraph-create_react_agent ReAct orchestration loop — the agent decides which tools to call, in what order, and when it has enough data to produce the final output.
  2. claude-sonnet-4-6 Anthropic Claude API — drives the ReAct loop, extracts structured fields from raw markdown, scores all leads in a single chain call, and answers chat questions over the full dataset.
  3. langchain-anthropic LangChain integration layer for Claude — ChatAnthropic model binding and ChatPromptTemplate for the scoring chain.
  4. langchain-core tool decorator — wraps Nimble API calls as LangChain-compatible tools the agent can discover and invoke.
  5. streamlit Live UI — card grid updates in real time as each extraction completes, followed by a results table, CSV export, and chat tab.
  6. python 3.9+ Agent logic, tool definitions, scoring chain, and streaming handler.
Reach out if you have any questions.
Talk to an Expert