Search History
Let users rerun a recent search instead of retyping it.
What it adds
A short list of the queries a user has run before, shown when the search field is focused and empty.
What your agent is told to do
5
What your agent is told to do
5-
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.
-
4
Let the user remove a single entry and clear the whole history, and put clearing somewhere they can actually find it.
-
5
Do NOT store history for queries the user never submitted. This is a record of past searches, not of keystrokes.
Edge cases it handles
6
Edge cases it handles
6- Query text is user data and can contain names, medical terms, or account numbers. Decide whether you are allowed to store it at all, and set a retention window.
- History must not leak across workspaces — a query run in one tenant must not appear while the user is in another.
- Cap the list. Unbounded history becomes a slow, useless scroll.
- Deleting the user's account must delete their history with it.
- A query that returned nothing is still worth keeping — the data may have changed since.
- Restoring a past query should restore the query text only, not silently reapply filters the user has since changed.
Definition of done
8
Definition of done
8- Submitted queries are stored per user and per workspace.
- Repeated queries deduplicate on their normalized form and move to the top.
- Recent queries appear on focus and rerun on selection.
- Individual entries can be removed and the whole history cleared.
- The list is capped and old entries age out on a defined schedule.
- History is deleted when the account is deleted.
- The feature matches the existing design system.
- No existing functionality is broken.
Related features
Global Search
Global Search
One search box that finds anything in your app.
What it does
Search across every meaningful entity in the application from a single input.
How it works
- 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.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/global-search
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
Store Locator
Store Locator
Help visitors find the nearest branch, with hours, directions, and a way to get in touch.
What it does
A searchable list of physical locations with distance, opening hours, contact details, and a map view.
How it works
- 1 Build the list first and the map second. The list of nearest locations with address, distance, hours, and phone number is the feature; the map is a way to scan it.
- 2 Offer to use the visitor's device location and always offer a text field for a postcode, town, or address alongside it. Never make the location prompt the only route in.
- 3 Store opening hours per location with the location's own time zone, including regular weekly hours and dated exceptions for holidays and one-off closures, and compute open or closed from those.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/store-locator
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.