Vector Search for Project Matching — An Early Experiment
One of the features I am building for our Engineering Intelligence Platform uses vector search to match new project requirements against our historical project database. The idea is simple. The implementation taught me a lot.
The Problem
When a new project comes in, the first question is always "have we done something similar before, and who worked on it." Today, this is a human memory exercise. Account leads search their mental models and Slack history. Important context gets lost because institutional knowledge lives in people's heads, not in systems.
The Approach
I load project descriptions, requirements documents, and retrospective summaries into Qdrant as vector embeddings. When a new project brief arrives, I embed it and search for the nearest neighbors. The results show similar past projects, which teams worked on them, and what challenges they encountered.
from qdrant_client import QdrantClient
client = QdrantClient(host="localhost", port=6333)
results = client.search(
collection_name="projects",
query_vector=embed(new_project_brief),
limit=5
)
The matching quality depends entirely on the embedding model and the quality of the source documents. Clean, detailed project descriptions produce better matches than vague summaries.
What I Have Learned
Vector search is not magic. Semantic similarity does not always mean project similarity. Two projects can use similar language but have fundamentally different technical challenges. I am adding metadata filters — technology stack, team size, client industry — to narrow results before the semantic search runs. This hybrid approach produces much more useful matches.
The PM Angle
Understanding vector search at a conceptual level helps me manage AI-enabled projects more effectively. When my engineering team proposes a semantic search feature, I can evaluate whether the approach fits the problem. That technical fluency shortens design discussions and catches misapplied patterns early.
←Back to all posts