Problem
Construction estimators spent around 5 minutes per item searching through dense PDF pricing books manually. With hundreds of lookups per project, this was a major bottleneck.
What I Built
A full-stack construction pricing catalogue that ingests PDF source documents, extracts structured pricing data (materials, labour, rates), and provides both traditional full-text and AI-powered vector search. Includes a dashboard with search analytics, user management with role-based access, Excel import/export, PDF viewer, and an invitation-based registration system.
Tech Decisions
- Next.js 15 with Prisma and PostgreSQL for the full-stack framework
- Dual search: traditional full-text search (tsvector triggers) and OpenAI embeddings with pgvector for semantic search
- PDF ingestion pipeline that extracts hierarchical catalogue structure, specs, items, and detailed price breakdowns
- Search analytics tracking (sessions, queries, result snapshots, user picks) for measuring search quality
- Role-based auth with hashed sessions and invitation-based registration
Outcome
Reduced item search time from ~5 minutes to under 1 minute per lookup.