Priyanshu Yadav

● open to roles · IST

← work

Internal tool · began as a take-home

A lead research pipeline with a human at the end

A LangGraph supervisor runs research, qualification and sales agents across public business sources, scores each company, drafts a four-touch outreach sequence and posts an approve or reject card to Slack. I built it as a take-home for RazorInfoTech in May 2026 and kept building it as an internal sales tool after I joined.

Role
Designed and built it
Year
2026
Built with
Python, LangGraph, FastAPI, Celery, Redis, pgvector, ChromaDB, React, TypeScript, Docker Compose
18data-source connector modules
4LLM endpoints pooled with cooldown failover
219,004companies harvested from the Startup India registry
104API routes behind three web portals
A LangGraph supervisor routes work to a research agent that fans out across 18 data sources, a qualification agent that scores companies with retrieved context, and a sales agent that drafts a four-touch sequence. All model calls go through a pool of four endpoints with cooldown failover and a Redis prompt cache. Drafts go to Slack for a person to approve before anything is sent. SupervisorLangGraph · routesResearch18 connectors · fan-outQualifyscore 0–10 · RAG contextSalesfour-touch draftLLM poolNIM · DeepSeek · Groq · OpenRoutercooldown failover · 25 sempty 200 = failureRedis cacheprompt hash · 24 h dedupSlack reviewapprove / rejecta person decidesSendrejected → nothing leavesqueue: Celery + Redis, synchronous fallback if workers are down · warehouse: SQLite with re-runnable migrations · tracing: SSE

The problem

Sales research is slow, repetitive and easy to get wrong. The tempting fix is to let a model write and send emails on its own. I wanted the opposite: automate the reading and the first draft, and keep a person responsible for anything that leaves the building.

What I built

  • A LangGraph supervisor that routes work between research, qualification and sales nodes.
  • Connectors for web search, the Startup India registry, MCA, business directories, OpenStreetMap and Common Crawl.
  • Scoring with retrieved context from ChromaDB or pgvector, with an optional mode where three personas argue the score.
  • A Slack approval step in front of every outbound message.
  • A FastAPI backend with live agent tracing over server-sent events, and a React and TypeScript frontend.

The part I care about: staying up

Free and cheap model endpoints fail often, so the reliability layer got most of the attention. Calls go through a pool of four endpoints (NVIDIA NIM, DeepSeek, Groq, OpenRouter). When one rate-limits or errors it cools down and the next one takes over. Identical prompts are served from a Redis cache, and the SQLite warehouse uses migrations that can be re-run safely.

What happened

The pipeline pulled 219,004 companies from the Startup India registry. From an 862-company Delhi NCR slice it produced call sheets with 108 phone numbers and 48 named decision-makers, for about $5 of enrichment spend. Those figures come from the playbook I wrote while running it.