Twiqr
Semantic search and relationship-mapping engine over personal networks. Query your contacts like a database.
TL;DR
Query your contacts in plain English. Ask 'who do I know that builds fintech?' and get ranked results instead of scrolling through names.
Traction
4 paying customers in the first 2 weeks since launch.
Overview
Twiqr turns your unstructured social graph into a queryable knowledge base. Instead of scrolling through contacts or LinkedIn connections, you ask natural language questions: "Who do I know that's built fintech products?" or "Founders in my network working on AI infra."
Problem
Your network is one of your most valuable assets, but it's stored as a flat list of names. There's no structure, no searchability, no way to surface relevant connections when you need them. Contact apps give you names and numbers. LinkedIn gives you a feed. Neither gives you insight.
Approach
- Ingestion: Pulls contact data from multiple sources, normalizes it into a unified schema
- Embedding: Each contact is embedded with metadata (role, company, interactions, shared context) using OpenAI embeddings
- Semantic search: Natural language queries are embedded and matched against the contact corpus using cosine similarity
- Relevance scoring: Contacts are ranked by a composite score combining semantic similarity, recency of interaction, and relationship strength signals
- Interface: Next.js frontend with a search-first UI backed by Ollama for local query understanding
Key Decisions
- Composite scoring over pure semantic search: Raw embedding similarity returns too many false positives. Adding interaction recency and relationship signals dramatically improves result quality.
- Ollama for query parsing: Before hitting the embedding search, the query is parsed locally to extract intent and constraints. This prevents the "everything is similar" problem with naive embedding search.
- Rapid API for data enrichment: Augmenting sparse contact data with public information improves embedding quality and search accuracy.
Challenges
The cold start problem: most people's contact data is sparse. A name and email isn't enough to build a useful embedding. The system needs to infer context from communication patterns, shared events, and public information to build meaningful representations.
Privacy was also a constant constraint. The system stores and processes personal relationship data-every design decision had to account for data minimization and user control over what gets indexed.
Outcome
Turns a passive contact list into an active intelligence layer. The system surfaces connections you didn't know you had and makes introductions that would otherwise require hours of manual network scanning. Live at twiqr.com.