Skip to content
Felix Schumann
Editorial illustration: Search in internal tools: When filters help more than an AI chat
Journal / 23

Search in internal tools: When filters help more than an AI chat

Felix Schumann·

“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

  1. 01ExactKnown number or identifier
  2. 02FilteredStatus, date and owner
  3. 03ConceptualFind relevant passages
Our schematic illustration of the proposed approach, not measured data.

PostgreSQL: Full Text Search introduction ↗

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.

Sources and further reading