Inspiration

I kept running into the same problem hiring. The people who are really good at what they do already have jobs. They're not looking. And convincing someone successful to leave for a startup they've never heard of is a tough sell.

So I started doing something a little different. Instead of looking at job boards, I'd find the most respected people in a niche (design engineering, rust, ...) on X and look at who they follow and engage with. Not the obvious names with 50k followers. The ones with 800 followers who post sharp takes that the experts actually reply to. People who are clearly talented but haven't "made it" yet. That's where I found my best hires.

The problem is this takes hours. Clicking through following lists, checking engagement, keeping track of who's who. I wanted to automate it.

What it does

You describe who you're looking for. Catalyst figures out who the influential people are in that space, then surfaces the lesser-known accounts they follow and interact with. You swipe through candidates and save the ones you want to reach out to.

Under the hood, a multi-agent system coordinates the research. An orchestrator breaks down your query and dispatches specialized agents to different sources: one analyzes X profiles and engagement patterns, another digs into GitHub activity, another searches the web for personal sites and writing. Each agent returns structured findings, and the orchestrator synthesizes everything into a unified profile.

We're also building a hiring profile database. Every candidate we surface gets indexed with embeddings, so you can do semantic searches across the talent pool.

How we built it

Next.js 16 with React 19 and shadcn on the frontend.

Grok powers the AI. We use grok-4.1-fast-reasoning for the orchestrator agent that coordinates everything, and grok-4.1-fast-non-reasoning for the specialized sub-agents that do the actual research. The orchestrator decides what information is needed, dispatches the right agents, and synthesizes their findings.

Mastra handles workflow orchestration. When the system needs clarification from the user, it suspends the workflow, saves state to Postgres, and resumes once the user responds. This human-in-the-loop pattern lets us keep users involved without blocking the whole pipeline.

X API provides the social graph data. Postgres + drizzle stores everything, including workflow snapshots and the profile database with pgvector for semantic search which is powered by gemini embeddings. Inngest for workflow orchestration & exa for domain specific web search.

Challenges we ran into

Getting the multi-agent coordination right is kinda tough. The system needs to research across different sources, synthesize what it finds, and know when to ask for clarification instead of guessing. That handoff between agents and humans took a few iterations.

What we learned

The social graph is underrated for talent discovery. Who someone follows and engages with is a better signal than their resume.

Built With

Share this project:

Updates