Needle
AI-Assisted Matchmaking
Personal Product - Joshua Fields — Founder & Full-Stack Engineer
Needle Case Study
Needle is a matchmaking product built around a simple idea: learn who someone is through conversation, score compatibility in a way you can explain, and introduce people with context — not volume. There is no swipe feed. Users move from profile building to a small inbox of curated introductions, then into a shared conversation when interest is mutual.
Problem
Most dating apps optimise for engagement, not fit. Profiles stay shallow, ranking feels opaque, and matches arrive with little reason to believe the introduction is thoughtful. Needle was built to slow the process where it matters: gathering richer signal upfront, surfacing fewer introductions with rationale, and separating AI assistance from accountable matching logic.
Product flow
- Baseline profile: Name, age, location, orientation, relationship intent, and search preferences.
- Conversational onboarding: A guided text (and voice-capable) chat that explores values, pace, communication style, lifestyle, and what someone is looking for.
- Profile generation: The full transcript is analysed and distilled into structured traits and summaries — without overwriting locked baseline fields the user set themselves.
- Compatibility & introductions: Deterministic scoring compares enriched profiles and surfaces introductions only when both sides have enough signal. Each intro includes a score, rationale, and plain-language explanation of why Needle chose it.
- Mutual interest: Interest / pass on introductions; when both people are interested, a shared conversation opens with optional private AI coaching per user.
Role
As Founder & Full-Stack Engineer, I designed and built the product end to end: onboarding UX, profile enrichment pipelines, compatibility engine, introduction inbox, shared messaging, coaching, closed-beta access controls, and deployment to a hosted staging environment. The public site and beta signup live at join-needle.com.
Architecture
- LLMs where they help: Onboarding dialogue, transcript analysis, profile generation, introduction copy, and coaching — powered by Gemini in production and Ollama locally.
- Deterministic matching where it matters: Compatibility scoring uses structured traits, weighted dimensions, and hard filters (age, distance, intent, orientation, dealbreakers). The model does not decide who gets matched.
- Explainable introductions: Users see factor-level rationale, score bands, and updates when compatibility shifts after a profile change.
- Voice path: LiveKit-based voice onboarding with a separate worker that feeds transcripts back into the same backend conversation logic as text mode.
- Trust & control: Users can hide their profile from matching, review introductions before acting, and understand what drove each suggestion.
Stack
FastAPI and PostgreSQL on the backend; Next.js on the frontend; Alembic migrations; JWT auth; structured observability (Sentry, PostHog); Railway-hosted staging; Gemini for hosted LLM workloads; MinIO-compatible object storage for photos; Stripe-ready entitlements layer for Needle Plus.
Outcome / Impact
Needle is a working closed-beta matchmaking platform that demonstrates how to combine conversational AI with accountable scoring: rich signal gathering without black-box ranking, introductions treated as a credibility moment rather than a feed metric, and a full-stack architecture ready to scale beyond solo development.
Tags: needle, matchmaking, dating, ai, conversational onboarding, voice onboarding, explainable matching, compatibility scoring, fastapi, nextjs, full-stack, product engineering, ExplainableAI, FullStack, Product
Visit Needle | Explainable Matchmaking Article | GitHub | LinkedIn
Joshua Fields — full portfolio