Repolode
langchain-ai

langchain-ai/data-enrichment

A LangGraph Studio template for an LLM agent that researches topics on the web and fills results into a user-defined JSON schema.

Stars
258
Forks
62
Open issues
15
Last commit
2 days ago

What is it?

This template provides a ready-to-run LangGraph agent for data enrichment: given a research topic and a JSON schema, the agent searches the web, reads the relevant pages, extracts details, and organizes them into the requested structure. It is useful when the output needs to fill a database table or spreadsheet but the source information has to be gathered from open-ended web research.

The agent's graph is defined in src/enrichment_agent/graph.py and runs in LangGraph Studio, where you can supply the topic and extraction_schema, adjust the model and prompt through configuration, and rerun from past states. Web search uses Tavily, and the model defaults to Anthropic Claude 3.5 Sonnet, with OpenAI chat models selectable via a provider/model-name setting.

The code is structured for extension: new tools are plain Python functions in tools.py, and additional steps can be added to the graph. The repository also includes a notebook showing how to call the graph through the LangGraph API.

Key features

  • 01Turns a research topic and a JSON schema into structured, schema-conforming output.
  • 02Searches the web with Tavily and extracts details from the pages it reads.
  • 03Runs in LangGraph Studio with hot reload and the ability to rerun from past states.
  • 04Lets you choose the chat model and customize the prompt through configuration.
  • 05Supports adding custom tools as plain Python functions and extra graph steps.

Use cases

  • Building a company or vendor list with attributes for a sales or market research database.
  • Filling spreadsheet rows with facts gathered from public web sources.
  • Prototyping a research agent that returns data in a fixed JSON format.

Quick start

  1. 1

    Create a .env file from the example

    cp .env.example .env
  2. 2

    Add your Tavily API key and model provider key (Anthropic or OpenAI) to the .env file

  3. 3

    Open the folder in LangGraph Studio and input topic and extraction_schema

Things to know

  • Requires a paid or account-based Tavily API key and a model provider API key (Anthropic or OpenAI).
  • Setup depends on LangGraph Studio, which must be installed separately.

Topics

#langgraph#llm-agent#web-research#data-extraction#structured-output#json-schema#tavily#langgraph-python#langgraph-template

FAQ

What is data-enrichment?
A LangGraph Studio template for an LLM agent that researches topics on the web and fills results into a user-defined JSON schema. This template provides a ready-to-run LangGraph agent for data enrichment: given a research topic and a JSON schema, the agent searches the web, reads the relevant pages, extracts details, and organizes them into the requested structure. It is useful when the output needs to fill a database table or spreadsheet but the source information has to be gathered from open-ended web research.
Is data-enrichment free to use? What license does it have?
data-enrichment is open source under the MIT license. Check the license terms before using it in commercial products.
Is data-enrichment still maintained?
Actively maintained. The last commit to data-enrichment was on Nov 5, 2026.
What can I use data-enrichment for?
Building a company or vendor list with attributes for a sales or market research database. Filling spreadsheet rows with facts gathered from public web sources. Prototyping a research agent that returns data in a fixed JSON format.
How do I install data-enrichment?
Create a .env file from the example: cp .env.example .env Add your Tavily API key and model provider key (Anthropic or OpenAI) to the .env file Open the folder in LangGraph Studio and input topic and extraction_schema
Where can I get data-enrichment?
The source code and installation instructions are on GitHub: https://github.com/langchain-ai/data-enrichment

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects