Inspiration

Everyone who sells does the same painful thing before every pitch. A freelancer, a dev agency, a wedding photographer, a B2B sales rep — they all dig through a prospect's website, scroll their LinkedIn, check recent news, sometimes even watch their YouTube, just to understand who this person is and what they need.

It's slow, inconsistent, and most people skip it — so they send generic outreach that gets ignored, or burn an hour per lead doing research by hand. We wanted an agent team that does it the way a sharp human would: read everything, understand the prospect, and write a pitch tied to your actual services.

What it does

ProspectIQ turns a single lead — a name, a company, or just a URL — into a personalized, ready-to-send pitch.

You configure your service catalog once in an admin panel: AI consulting, marketing, video production, wedding photography, anything. Then for any prospect, ProspectIQ:

  1. Researches them across their website, LinkedIn, recent news, and YouTube
  2. Synthesizes a structured profile — what they do, recent signals, likely pain points, and fit
  3. Matches their needs against your services, with reasoning grounded in real signals
  4. Drafts channel-specific outreach (email or DM) that references specifics, not platitudes

Because the catalog is fully configurable and multi-tenant, the same engine works for a solo freelancer and a fifty-person agency.

How we built it

ProspectIQ is a multi-agent orchestration system on a single TypeScript stack.

  • Orchestrator — a LangGraph.js state graph routes the lead, fans work out to specialist agents, and manages run state in Redis, with BullMQ handling the job queue.
  • Research agents (parallel) — website, LinkedIn/social, news, and YouTube-transcript agents, each exposed as an MCP tool so sources stay swappable and the orchestrator stays clean. Fetching and scraping run on Playwright and Cheerio, search and news through SerpAPI, and video through the YouTube Data API with transcript extraction.
  • Synthesis agent — collapses raw signals into one structured prospect profile.
  • Service-match agent — runs RAG over the configured catalog in MongoDB Atlas Vector Search and ranks which services fit, with a reasoning trace tied to specific signals.
  • Pitch agent — drafts the outreach, with tone and channel configurable per persona.
  • Frontend — React, Next.js, and Tailwind, with a live run view that shows each agent's work and the evidence behind every recommendation.
  • Reasoning — Claude, via the Anthropic API, drives the agents, with MCP as the tool layer.

Challenges we ran into

Grounding was the hard part. Early versions of the research agents produced plausible-sounding signals that weren't actually in the source material. We fixed it by requiring every claim in the prospect profile to cite the evidence it came from, and discarding anything unsupported.

Running four research agents per lead was slow when done sequentially, so we fanned them out in parallel through the graph and merged results at the synthesis step. We also had to make the service match feel earned rather than generic — tightening retrieval and forcing the match agent to reference catalog entries directly, so every recommendation traces back to something real.

Accomplishments that we're proud of

The engine is genuinely configurable — switching it from an AI consultancy to a wedding photographer is a catalog change, not a code change. Every pitch is fully traceable back to the evidence that produced it, so a user can see why a service was recommended and what in the prospect's footprint triggered it. And the whole thing runs as a transparent agent graph rather than a black box.

What we learned

Multi-agent systems live or die on observability — being able to watch each agent's input, output, and evidence is what made the system debuggable and trustworthy. We also learned that MCP is a clean seam for swapping data sources without touching orchestration, and that grounding rules matter more than model choice when the goal is output a user will actually send.

What's next for ProspectIQ

A browser extension to run ProspectIQ on whatever profile you're viewing, CRM integration so qualified leads and drafted pitches flow straight into the pipeline, and an outcome-feedback loop so the match agent learns which pitches actually convert.

Built With

Share this project:

Updates