Duuny: AI-Powered Business Discovery Platform
A natural-language local search platform, built from zero to production and architected so both customers and AI assistants can find the businesses behind it.
The Challenge
Local service directories were built for a search engine era that's ending. Customers struggle to find the right plumber, electrician, or contractor through generic listings, while small businesses have no real way to be discovered, not by people typing into Google, and not by AI assistants like ChatGPT and Perplexity that are increasingly answering "find me a [service] near me" directly.
The challenge: build a discovery platform that works for both sides: a fast, intuitive search experience for customers, and a profile system structured specifically so AI models can understand and recommend the businesses behind it, all without the pay-per-lead model that dominates the space.
What Was Built
Duuny is a full-stack discovery platform connecting customers with local service providers through natural-language search ("I need someone to fix a broken window tonight") instead of rigid category filters. Businesses create rich profiles (company info, services, service areas, photos, and up to 31 optional Q&A fields) which the platform turns into AI-generated summaries and structured data.
The result is a two-sided product: a clean, SSR-rendered search experience for customers (no account required), and a profile and growth toolkit for businesses, including reviews, partnerships, and subscription tiers, available in English and Finnish from day one.
How It Was Solved
Frontend
Angular 19 with standalone components and server-side rendering (native Node HTTP server + Angular CommonEngine), giving the site fast initial loads and full SEO/AI-crawler visibility. RxJS BehaviorSubjects manage state across services (auth, business, search), and ngx-translate drives the EN/FI localization.
Backend
A FastAPI service talking directly to PostgreSQL via psycopg2 (no ORM, for full control over query performance), with JWT authentication, bcrypt password hashing, and dedicated routers for auth, business profiles, search, reviews, partnerships, and Stripe-based subscriptions.
Search
The core technical piece is a hybrid search pipeline that runs semantic and keyword search in parallel, then merges and re-ranks the results. Semantic search uses OpenAI's text-embedding-3-small embeddings stored in pgvector, matched via cosine similarity; keyword search runs structured LIKE matching across nine weighted fields (company name, industry, services, summaries, keywords, in both languages).
Candidates from both phases are scored with a composite formula (40% semantic similarity, 25% name match, 20% keyword match, 10% multi-keyword bonus), filtered against a minimum score threshold, deduplicated, and capped at six results. Thresholds were tuned iteratively in production: for example, lowering the semantic floor and widening the candidate pool to rescue relevant-but-"diluted" long profiles whose embeddings get pulled toward a generic centroid. Per-IP and global rate limiting protects the search and auth endpoints from abuse.
AI-readiness for businesses
Each profile gets an auto-generated AI summary and industry classification, plus JSON-LD structured data injected into the page head, so both traditional search engines and AI assistants can parse and recommend the business directly.
Monetization
A simple two-tier model (free vs. PRO via Stripe) replaces the commission/pay-per-lead approach common in the industry, giving businesses predictable costs and customers a middleman-free way to connect.
Results
Duuny shipped as a working production platform: customers can search in natural language and get ranked, location-aware results in under a second; businesses can build rich, AI-optimized profiles and start collecting verified reviews and partnerships immediately.
The hybrid search pipeline consistently surfaces relevant matches even for long, multi-service business profiles that pure semantic or pure keyword search would miss individually, validated and tuned through real query analysis post-launch. By structuring every profile for both human and AI consumption from the start, Duuny positions its business customers as early movers in the shift toward AI-driven local discovery, ahead of directories still optimizing solely for Google.
Want to build something like this?
I help founders take ideas like this from zero to a live, AI-ready product.
Book a Call