Hanger
ML & backend · fashion discovery
Fashion search that understands vibe, occasion, and budget, not just keywords.
- Role
- ML & backend
- Timeline
- 2024
- Stack
- CLIP, FastAPI, PostgreSQL, Pinecone, Redis, Docker, Vercel Edge

2K+
users
+40%
CTR
+22%
relevance
$500/mo
infra cost
Overview
Shoppers search by vibe, like 'winter formal but casual streetwear', not by keyword. Keyword matching misses intent, and collaborative filtering can't handle cold start.
Hanger pairs fashion-tuned embeddings with hybrid retrieval and a reasoning layer, so a query like 'cold NYC rooftop party under $200' returns things you'd actually wear.
What I built
- Fine-tuned CLIP on fashion data with attribute-aware, multi-vector embeddings per product, for +22% relevance.
- Built hybrid retrieval: Postgres filters + Pinecone HNSW + merge/rerank, for sub-second results.
- Designed FastAPI agents that reason over weather, occasion, and budget constraints.
- Ran it on $500/month of infrastructure with cached embeddings and query batching.
Architecture
- Embeddings
- Fine-tuned CLIP
- API
- FastAPI
- Filters
- PostgreSQL
- Vectors
- Pinecone (HNSW)
- Cache
- Redis
- Edge
- Vercel Edge
Decisions
Better representation
Multi-vector embeddings per product capture materials, seasonality, fit, and occasion separately.
Hybrid retrieval
Structured filters for price, size, and inventory run in Postgres; semantic search runs in Pinecone; results are merged and reranked.
Lean by design
Cached embeddings, batching, and reduced vector dimensions kept quality high at a fraction of typical cost.
Screens



Next project
Congruence · clinical documentation