← Back
Built end-to-end

Langley Catalogue

Next.jsTypeScriptPrismaPostgreSQLpgvectorOpenAI

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.