
Search in internal tools: When filters help more than an AI chat
“Show open records from this week” is different from “Find companies similar to this example”. Internal search needs to respect that distinction. I develop searchable business applications, including a sales CRM and a shop research pipeline. I choose search techniques around the work people need to complete.
Research checked: 2026-09-11 · Cover: AI-generated illustration
Distinguish three search tasks
A known record number needs an exact, predictable lookup. A list restricted by status and date needs explicit filters. A conceptual question may require results that use different words. Those tasks do not necessarily need the same interface or technique.
I would first collect representative queries and their expected outcomes. Even a small collection reveals whether people mostly retrieve known records or explore relationships. An AI chat is not automatically the right answer to both.
Evaluate full-text search as a foundation
PostgreSQL documents full-text search using processed documents, queries and ranking. This provides one possible foundation for text search. Suitability depends on the database, languages and existing data model.
In an example application I would favor exact matches, show relevant passages and keep filters visible. Useful results explain why they match. People should not have to trust a result merely because it appears first.
The decision at a glance
- 01ExactKnown number or identifier
- 02FilteredStatus, date and owner
- 03ConceptualFind relevant passages
Permissions apply to search results too
Search must return only information the requesting person may access. This includes snippets and automatically generated summaries. Hiding a detail page provides little protection if the search preview reveals its contents.
For an AI extension I would establish the permitted dataset before searching it. The model should not receive everything and then be expected to decide what to conceal.
Measure quality with understandable cases
My evaluation collection would include known IDs, typos, ambiguous terms, empty results and restricted records. Define which matches are allowed and useful for each case. The main question is whether a person can reliably find the required record.
In the Shop Directory Lead Scraper I connected research results to filters and exports for subsequent work. For a custom internal tool, I can similarly design search around your actual tasks. A clear result list is often a better first step than an additional conversation interface.
