Skip to content
Planning consultancy

Planit Consulting

An AI chat that makes 18,429 planning documents searchable, with source citations.

United Kingdom United Kingdom · AI chat (RAG) Visit website
Share
Planit AI, semantic search over a UK planning corpus, built by TopDevs

About Planit Consulting

Planit Consulting is a town planning and architectural design consultancy based at Innovation Place in Godalming, Surrey, serving London and the South East of England. It advises on planning applications, appeals, permitted development, certificates of lawfulness and rural and Green Belt schemes, alongside architectural design for new homes, masterplanning and agricultural and estate projects. Several of its planners hold RTPI (Royal Town Planning Institute) accreditation. A lot of its work sits in sensitive town and countryside locations such as the Surrey Hills National Landscape, where a scheme often hinges on prior cases and appeal outcomes, which is exactly what makes a searchable precedent archive worth so much.

The challenge

Planit Consulting had an archive of 18,429 .docx documents: planning statements, design and access, heritage, appeal, pre-app, cover letters and conditions. To find a precedent or a relevant passage, consultants had to open files and read them by hand. That is slow, error-prone Ctrl+F work, and on schemes that turn on prior cases and appeal outcomes it cost hours per piece of research. The archive held the answers, but nobody could get to them quickly.

The analysis

The corpus is heterogeneous: 14 document types spread across 3 tiers, from primary documents down to metadata-only files. A planning statement and a cover letter do not deserve the same treatment, so a single chunking strategy was never going to work.

Classification was step one. Without reliable typing, retrieval can pull the wrong kind of document and the whole tool loses trust. We classified the archive first, then reconciled the numbers: of the 18,429 .docx, 514 could not be reliably typed and were handled separately, leaving the classified set that was chunked into 95,592 searchable passages across 15,801 documents.

Embedding 95,000+ chunks is a real cost, not a rounding error. We chose OpenAI text-embedding-3-large (3072 dimensions) for precision over cheaper alternatives, and kept the spend in check by controlling cost at the chunk level rather than re-embedding blindly.

Consultants ask questions iteratively, one follow-up after another, so RAG without conversation history would have been unusable. Persisting conversations and messages in SQLite was part of the architecture from day one, not a feature bolted on at the end.

What we built

01

Document classification pipeline

Before anything could be searched, the archive had to be sorted. A Python pipeline classifies each .docx into one of 14 types across 3 tiers, from primary documents down to metadata-only files, so retrieval later knows what it is pulling.

  • Classifies 18,429 .docx into 14 document types across 3 tiers (primary, secondary, metadata-only).
  • The 514 documents that could not be reliably typed are split off and handled separately, instead of polluting the searchable set.
  • Reliable typing is the foundation: it lets each document type get the chunking and retrieval treatment it actually needs.
02

Semantic chunking and embedding with cost control

Each classified document is split into passages with section detection, then turned into vectors. We used OpenAI text-embedding-3-large for precision, with the spend managed at the chunk level so the build stayed economical at scale.

  • Semantic chunking with section detection produces 95,592 chunks from 15,801 documents.
  • Embedding via OpenAI text-embedding-3-large (3072 dimensions), chosen for precision over cheaper alternatives.
  • Oversized chunks get separate handling, and cost is controlled at the chunk level rather than re-embedding everything blindly.
03

ChromaDB vector store and FastAPI backend

The embeddings live in a persistent ChromaDB vector store, served by a FastAPI backend. This is the layer that turns a question into the handful of passages most relevant to it, in a fraction of a second.

  • ChromaDB vector store with persistent storage holds all 95,592 chunks and their metadata.
  • FastAPI backend exposes REST endpoints with CORS for the chat UI to call.
  • Semantic retrieval finds passages by meaning, so a query surfaces the right precedent even when it does not share the exact wording.
04

Planit AI chat UI with conversation history

A React TypeScript chat interface, named Planit AI, is where consultants actually work. It is built for the way they ask questions, one follow-up after another, with a sidebar that keeps every line of enquiry organised.

  • React TypeScript UI with a sidebar that groups conversations, plus rename and delete.
  • Conversations and messages persist in SQLite, so a consultant can pick up an earlier line of questioning.
  • Designed around iterative questioning, the way consultants narrow in on the precedent they need.
05

RAG answering via Claude with source citations

Claude reads the retrieved passages and writes the answer, with citations back to the original .docx. The citation is the point: every answer links to its source so a consultant can open the document and verify it.

  • Claude answers from the retrieved passages, grounded in the firm's own documents rather than general knowledge.
  • Every answer carries source citations back to the original .docx for verification.
  • Consultants get the precedent in seconds and can always check it against the file it came from.

The blueprint

  1. 1 Classification
  2. 2 Chunking
  3. 3 Embedding
  4. 4 Vector DB
  5. 5 RAG chat

Results

Search time

Hours to seconds

From Ctrl+F across loose .docx to semantic retrieval that finds the passage in seconds.

Coverage

15,801 docs

95,592 searchable chunks with metadata, from an 18,429-document archive.

Citations

Per answer

Every answer links back to the original .docx, so consultants can verify it.

Daily work automated

About 40%

Planit's own estimate of the daily consultancy work the tool now handles.

Tech & tools

PythonOpenAI embeddingsChromaDBFastAPIReactClaudeSQLite
Janet Long

“We are genuinely amazed by how well this works. About 40% of our daily consultancy work is now automated. Finding relevant precedents that used to take hours now happens in seconds, with citations back to the original document so we can always verify.”

Janet Long

Founder, Planit Consulting

Part of our service: Custom Applications

Why teams build with TopDevs

  • Fixed price, agreed up front
  • 100% code ownership, no lock-in
  • Prototypes in days, live in weeks
  • Modern, AI-native & secure tech

Ready to build something that actually works?

Book a no-obligation call. We'll look at where the biggest win sits — fixed price, your code, no lock-in.

Start your own project

More case studies