Genuine Passion · ProjectMatch AI
Find the people who were already building your future project before you hired them.
Inspiration
Traditional hiring systems focus heavily on resumes, keywords, job titles, and years of experience. I wanted to explore a different question:
What if the best candidate is not the person with the most keywords, but the person who was already passionate about solving the same problem before the company even decided to build it?
Genuine passion leaves evidence. People join hackathons, build side projects, contribute to open source, write technical blogs, compete on Kaggle, and ship projects on Devpost and lablab.ai because they genuinely enjoy those problems. I wanted a system that discovers and analyzes that evidence automatically — and proves its conclusions with real, cited sources instead of guessing.
What it does
A company describes a project — its mission, features, technologies, and business problem. ProjectMatch AI then analyzes public evidence (GitHub repos, Devpost/lablab hackathon projects, Kaggle, LinkedIn, portfolios, blogs) and ranks candidates by how closely their actual built work matches the project and how much genuine, long-term passion they show for the domain.
Instead of scoring resumes, it scores what people have built. For each top candidate it returns an overall ProjectMatch score plus sub-scores (project similarity, genuine passion, domain/tech alignment, innovation, evidence quality), an evidence-cited explanation, and source URLs. Finally it generates one executive summary video explaining why the shortlist was chosen.
A core design rule: every score must trace back to real evidence. No invented repos, no fabricated hackathons — the system is built so a recommendation can't exist without a source behind it.
How I built it — the technology stack
I built it as a multi-agent system (LangGraph) behind a FastAPI backend and a Next.js dashboard, wired to a set of best-in-class platforms. Here's how each is used, starting with the headline integrations:
🥇 Guild.ai — the agent control plane
Guild.ai governs a top-level "Recruiting Investigator" agent that fronts the entire pipeline. This gives a clean two-tier agent architecture: a Guild-governed orchestrator wraps my framework-agnostic LangGraph swarm unchanged, and reaches GitHub through Guild's managed integration — governed tool access at the control plane, so no raw tokens are ever exposed to the agent or the LLM. A reusable Guild Skill encodes the "how to investigate genuine passion" method, including the anti-hallucination rules.
🥈 OpenUI — the recruiter experience
The entire recruiter dashboard's component library — ranked candidate cards, score bars, evidence cards, and the live agent-progress list — was generated with OpenUI from natural-language prompts, then exported to React + TypeScript and rendered live in the app. It made building a dense, polished, dark-themed recruiter UI dramatically faster.
🥉 Airbyte Agent Engine — the evidence data layer
The Evidence Discovery agent fetches a candidate's GitHub repositories through the Airbyte Agent Engine GitHub connector (connect("github").execute("repositories", "list", …)), with Airbyte handling managed OAuth, token refresh, and its Entity Cache. This is "context for agents" done right — Airbyte brings the data, my agents bring the reasoning. The layer is fallback-safe so discovery never breaks.
ClickHouse — primary database + vector search
ClickHouse Cloud stores all 10 entity tables (company projects, candidate profiles, evidence, embeddings, scores, agent runs, video reports). Project and evidence embeddings power vector similarity search via cosineDistance, which drives the project-to-project matching at the heart of the system.
Langfuse — agent & LLM observability
Every agent span and every Claude call is traced to Langfuse — inputs, outputs, token usage, and latency — and the trace IDs surface in the dashboard's Agent Trace Viewer, so the system's reasoning is fully inspectable.
Composio — integrations & delivery
Composio handles workflow actions: an alternative GitHub fetch path, plus Gmail and Slack delivery of the final candidate shortlist to the hiring team.
TrueFoundry — deployment
The backend API and frontend are packaged with deployment manifests and Dockerfiles for TrueFoundry, with a local docker-compose stack for development.
Core engine
- Anthropic Claude (
claude-sonnet-4-6for agents,claude-opus-4-8available for ranking) powers project understanding, repository/hackathon analysis, passion explanations, and the storytelling narratives. - LangGraph orchestrates 9 specialized agents through shared typed state.
- FastAPI serves the API with Server-Sent Events for live progress.
- Next.js + TypeScript + Tailwind for the dashboard.
- sentence-transformers for local embeddings (no extra API key).
- ffmpeg + offline TTS render the single executive summary MP4 with synced subtitles.
The 9-agent pipeline
Project Understanding → Evidence Discovery → GitHub Analysis → Hackathon Analysis → Passion Detection → Similarity (ClickHouse vector search) → Ranking → Storytelling → Executive Video. Scores are computed with transparent, reproducible logic; Claude writes the human explanations and must cite evidence by ID.
Challenges I ran into
Defining "genuine passion." Skills are easy to detect; passion isn't. I modeled it from observable signals — repeated projects in a domain, hackathon participation, voluntary open-source effort, consistency over time, depth, and recency — and combined them into a transparent score.
Heterogeneous data sources. GitHub, Devpost, Kaggle, and portfolios all expose information differently. Normalizing them into one evidence schema (with a source URL on every item) was essential to keep the system honest.
Balancing similarity vs. passion. One candidate may have strong skills but little domain interest; another deep passion but fewer artifacts. The ranking blends both (40% project similarity, 25% genuine passion, plus domain/tech/innovation/evidence quality).
Making the agents observable and the demo reliable. Real LLM agent runs are slow and streaming progress over a dev proxy buffered the live updates — I fixed it by streaming Server-Sent Events directly from the backend with a polling fallback. I also had to move the Airbyte integration to Python 3.11 (its SDK requires it) and keep every external integration fallback-safe so a missing key never breaks the demo.
Accomplishments that I'm proud of
- A hiring approach centered on projects and passion, not resumes — with evidence and source URLs behind every recommendation.
- Autonomous multi-agent collaboration — nine agents discover, analyze, score, rank, and explain, end to end.
- Proven adaptive scoring. I ran three different company projects (an AI agent platform, a frontend dashboard, an ML tabular engine) against the same candidate pool. The #1 recommendation changed every time — agents-builder won the agent project, the frontend engineer won the dashboard, the ML competitor won the ML project. The rankings reorder by genuine fit, which proves the scoring is real and computed, not staged.
- An anti-hallucination guarantee, enforced by tests: no score can exist without backing evidence that's actually in the store.
- A single executive summary video that lets a hiring manager understand the shortlist in a few minutes.
What I learned
Project history reveals far more about a person's interests than a resume. Genuine passion really can be approximated through observable signals — repeated themes, hackathons, open-source work, technical writing, and long-term engagement. Technically, I gained a deep appreciation for multi-agent architectures, vector search, LLM observability, and the discipline required to combine messy public data into trustworthy, evidence-backed recommendations.
What's next for Genuine Passion ProjectMatch AI
- Expand live evidence discovery across more developer and creator communities (turning on full live scraping through Airbyte and additional connectors).
- Sharpen domain matching with embedding-based similarity and richer multimodal project understanding (screenshots, demo videos, architecture diagrams).
- Support internal mobility — matching existing employees to new initiatives based on demonstrated interests.
- Long term: become a project-centric talent discovery platform that finds people who are not only capable of building a solution, but genuinely excited to build it.
Built With
- airbyte's
- clickhouse
- composio
- langfuse
- truefoundry
Log in or sign up for Devpost to join the conversation.