GitDealFlowsignals
PROGRAMMATIC INTEGRATION · LANGCHAIN

GitDealFlow × LangChain

Wire VC engineering signals into any LangChain agent in 20 lines of Python.

Crunchbase Pro: $20K/yr. GitDealFlow A2A: free, no signup.
POST https://signals.gitdealflow.com/api/a2a

Why ship this

If you ship LangChain agents and you also write angel checks, you sit in the rarest segment of the deal-flow market. The default playbook, Crunchbase Pro, PitchBook, hand-rolled scrapers, is built for analysts, not for builders. None of it is callable from your agent loop. None of it knows what Series A milestone a 14-day commit-velocity spike actually predicts. The data was never designed to flow through an LLM.

GitDealFlow signals are. The corpus is 350+ venture-backed startups across 15 sectors, refreshed weekly, ranked by the kind of GitHub momentum that historically precedes fundraises by three to six weeks. The MCP server and the public A2A endpoint expose the same five skills your LangChain ReAct loop needs: trending, sector slice, named-startup lookup, dataset summary, methodology citation. Drop the tool in, point your agent at OpenAI or Anthropic, and you're shipping deal-flow conviction by Sunday.

What you can build

ReAct loops that cite SSRN

When the analyst agent picks a startup, it can demand the methodology paper for the deal memo. get_methodology returns the same SSRN-anchored text every time, so citation lines are stable across reruns.

Multi-tool chains without paid APIs

Compose with web search, Crunchbase free-tier, GitHub REST, and a memo-writer LLM call. GitDealFlow contributes the 'is this team actually shipping' signal that no other free source surfaces.

LangGraph state machines

The five skills are stateless and idempotent, drop them into a LangGraph node and they replay safely on retry. Same response for the same args inside a refresh window.

MCP-native if you already moved

If you're on langchain-mcp-adapters, our published @gitdealflow/mcp-signal package works as a drop-in MCP server. Same tools, stdio transport, no auth.

Minimal LangChain agent (Python)

# pip install langchain langchain-openai langchain-core requests
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
import requests

A2A = "https://signals.gitdealflow.com/api/a2a"

@tool
def gitdealflow(skill: str, args: dict | None = None) -> dict:
    """Live VC engineering signals from GitDealFlow.

    skill: get_trending_startups | search_startups_by_sector |
           get_startup_signal | get_signals_summary | get_methodology
    args:  skill-specific dict (e.g. {"sector": "ai-ml"})
    """
    body = {
        "jsonrpc": "2.0", "id": 1,
        "method": "message/send",
        "params": {"message": {"role": "user", "parts": [
            {"kind": "data", "data": {"skill": skill, "args": args or {}}},
        ]}},
    }
    return requests.post(A2A, json=body, timeout=15).json()

agent = create_react_agent(
    ChatOpenAI(model="gpt-5.4"),
    tools=[gitdealflow],
)

result = agent.invoke({
    "messages": [("user", "Who's accelerating in fintech this week? Cite methodology.")]
})
print(result["messages"][-1].content)

LangGraph deal-memo pipeline

# Two-node graph: scout pulls signals, analyst writes a memo.
from langgraph.graph import StateGraph, END
from typing import TypedDict
import requests

A2A = "https://signals.gitdealflow.com/api/a2a"

class State(TypedDict):
    sector: str
    signals: list
    memo: str

def scout(state: State) -> State:
    body = {"jsonrpc":"2.0","id":1,"method":"message/send",
            "params":{"message":{"role":"user","parts":[
                {"kind":"data","data":{
                    "skill":"search_startups_by_sector",
                    "args":{"sector": state["sector"]}
                }},
            ]}}}
    data = requests.post(A2A, json=body, timeout=15).json()
    return {"signals": data["result"]["artifacts"][0]["parts"][0]["data"]["startups"][:5]}

def analyst(state: State) -> State:
    # ...your LLM-call here, given state["signals"]...
    return {"memo": f"Top 5 in {state['sector']}: " + ", ".join(s["name"] for s in state["signals"])}

graph = StateGraph(State)
graph.add_node("scout", scout)
graph.add_node("analyst", analyst)
graph.set_entry_point("scout")
graph.add_edge("scout", "analyst")
graph.add_edge("analyst", END)

app = graph.compile()
out = app.invoke({"sector": "ai-ml"})
print(out["memo"])

Five prompts to try first

  • Who is trending in fintech this week? Cite the methodology.
  • Compare commit velocity for Roboflow and Modular, which is shipping faster?
  • Show me ai-ml startups with breakout signals; rank by contributor delta.
  • What does engineering acceleration mean, is it the same as Y Combinator?
  • Summarize the dataset: how many sectors, how many startups, how fresh.

FAQ

How is this different from giving LangChain a Crunchbase API tool?+

Crunchbase Pro is $20K/yr and surfaces post-fact data, funding announcements, headcount changes, press. GitDealFlow surfaces leading indicators: commit velocity changes, contributor growth, infrastructure buildout, all from public GitHub. The two are complementary; GitDealFlow gets you to the deal three to six weeks before Crunchbase has the round announced.

Does the LangChain tool work with Anthropic Claude as well?+

Yes. The tool is model-agnostic, it's a plain Python callable wrapped by @tool. It works with ChatOpenAI, ChatAnthropic, ChatVertexAI, ChatBedrock, or any LangChain chat model. The tool calling format is normalized by LangChain before the model sees it.

Is there a rate limit?+

The public A2A endpoint has no application-layer rate limit, but the upstream CDN may briefly throttle bursts above ~100 req/sec from a single IP. For batch enrichment loops, add a 100ms sleep or use the dataset.jsonl bulk endpoint instead. The dataset is updated weekly, so caching for a few hours is safe.

Gotchas

  • create_react_agent occasionally calls tools with malformed args. Validate `skill` against the enum before forwarding the request.
  • Sector slugs are normalized (crypto → web3, AI → ai-ml). Pass user free-text through search_startups_by_sector and let the endpoint resolve.
  • If you stream tokens, fetch the tool result in a separate node so the model sees structured data, not a half-streamed JSON string.

References

Other frameworks

When the free signal isn’t enough

The A2A and MCP endpoints above are free and ungated, that’s where every LangChain agent should start. When you need report-grade enrichment on a named startup, the deep signal runs at €0.19 / call €19 buys 100 credits, credits never expire, and a miss (an org we don’t track) is free.

Prefer to pay per call with no API key? The same endpoint speaks x402 settle in USDC on Base, $0.19/call, no signup.

Stuck on the wire-up?

Email signals@gitdealflow.com, replies within 24 hours, EU business time. Include the framework name and the error in the message body and a snippet of your tool definition.

Email support
Signed The Data Nerd · pseudonymous narrator · methodology over personality

🚀 Explore Our Network

21-47 days
Signal Lead Time (median 31d)
$80M+
Rounds Tracked
90 sec
Per Scan
5,000+
Founders Tracked

One missed signal is a missed round. Get the Velocity Verdict in your inbox every Sunday free.

Get Free Signals

Free weekly digest. Cancel anytime. No spam, no VC pitches just data.