Skip to content
All Posts
Technical Deep Dives

Vector Search for Project Matching — An Early Experiment

27 June 20252 min read

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