Global Search
One search box that finds anything in your app.
What it adds
Search across every meaningful entity in the application from a single input.
What your agent is told to do
4
What your agent is told to do
4-
1
Identify every entity worth searching, and report them before building.
-
2
Use the database's own search capability first (for example Postgres full-text search). Do not add Elasticsearch or a search SaaS unless the project already has one.
-
3
Return results grouped by entity type, strongest match first.
-
4
Debounce input and cancel in-flight requests, so results never arrive out of order.
Edge cases it handles
5
Edge cases it handles
5- Results MUST be scoped to what the user is permitted to see. This is the most common security bug in search — verify it explicitly by searching as a low-privilege user.
- An empty query must not trigger a full table scan.
- Out-of-order responses must not overwrite newer results.
- Handle typos gracefully, or at least fail to a useful empty state.
- Very large result sets must be paginated or capped.
Definition of done
8
Definition of done
8- One input searches every relevant entity.
- Results are grouped and ranked sensibly.
- Results only ever include records the current user may see.
- Fast typing never produces stale or flickering results.
- The empty state suggests what to do next.
- Search is fully keyboard-navigable.
- The feature matches the existing design system.
- No existing functionality is broken.
Related features
Voice Search
Voice Search
Let people speak a search query instead of typing it, and still edit what was heard.
What it does
A microphone control on the app's existing search field that turns speech into a query the user can correct before it runs.
How it works
- 1 Add the microphone to the search input the app already has. Do not build a separate voice search screen or a second results page; the spoken query must go through the same search, the same filters, and the same ranking as a typed one.
- 2 Show words as they are recognised, in the search field itself, so the user can see the microphone is working before the final result arrives.
- 3 Leave the recognised text in the field as ordinary editable text once recognition finishes. The single most common repair is the user fixing one wrong word and pressing enter.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/voice-search
No-Results Recovery
No-Results Recovery
Turn an empty search into a next step instead of a dead end.
What it does
A zero-result search state that says which part of the query is at fault and offers a concrete way to get results.
How it works
- 1 Separate the causes: no matches, a failed request, and results filtered away by permissions all look identical to the user and need different copy.
- 2 When filters are active, list them and let the user drop them individually — and name the one that eliminated the most results.
- 3 Rerun the query in a relaxed form behind the scenes (fewer terms, or without the narrowest filter) and offer that as a suggestion with its real count.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/no-results-recovery
Search History
Search History
Let users rerun a recent search instead of retyping it.
What it does
A short list of the queries a user has run before, shown when the search field is focused and empty.
How it works
- 1 Store submitted query text per user, scoped to the workspace it was run in, with the time it was last used.
- 2 Normalize before storing — trim, collapse whitespace, fold case — and update the timestamp on a repeat rather than adding a second row.
- 3 Show the most recent handful when the search input is focused and empty, and rerun the query on selection.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/search-history
How it works
-
1
Copy the link
Grab the Markdown instruction URL for this feature.
-
2
Give it to your AI
Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.
-
3
It inspects, then implements
Your agent reads your existing app first, then adds the feature to fit it.
Works with your stack
These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.
Need it tighter than that? Customize the feature and tell it exactly what you're running.