Voice Search
Let people speak a search query instead of typing it, and still edit what was heard.
What it adds
A microphone control on the app's existing search field that turns speech into a query the user can correct before it runs.
What your agent is told to do
5
What your agent is told to do
5-
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.
-
4
If the app already has Voice Transcription, reuse its recognition path, its permission handling, and its language selection rather than introducing a second way of listening.
-
5
Do not auto-submit a low-confidence transcription. Running a search on a misheard query and showing no results reads as a broken product, when the real problem was one mangled word.
Edge cases it handles
8
Edge cases it handles
8- Show interim words as they are recognised. A microphone that sits silent for four seconds and then produces a sentence feels broken, and users tap it again mid-utterance.
- Recognition mangles proper nouns, product names, and internal jargon. Bias recognition toward the app's own vocabulary where that is possible, and fall back to fuzzy matching on the search side so a near-miss still finds the record.
- In a noisy room recognition may return nothing usable. Time out after a bounded silence, stop the microphone, and say plainly that nothing was heard rather than listening indefinitely.
- The recognised query must remain fully editable after it lands, including backspacing into it, without the microphone re-arming or the field resetting.
- A low-confidence result must be presented for confirmation rather than submitted. State the confidence in behaviour, not in a percentage shown to the user.
- Microphone permission may be denied, revoked later, or unavailable on an insecure origin. Hide or disable the control and explain why, instead of failing silently on tap.
- The microphone must stop when the user navigates away, switches tabs, or the field loses focus. A recording indicator that stays lit after the user has moved on is a trust problem.
- Announce listening, recognising, and stopped states to screen readers, and give the control a real label rather than an unlabelled icon button.
Definition of done
8
Definition of done
8- Speaking a query populates the existing search field and runs the existing search.
- Interim words appear while the user is still speaking.
- The recognised text stays editable and can be corrected before submission.
- A low-confidence or empty result never submits a search on its own.
- Denied or unavailable microphone permission produces a clear explanation, not a dead control.
- The microphone stops on blur, navigation, and timeout, and the recording state is visible while it is on.
- 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
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
Search Match Highlighting
Search Match Highlighting
Show users why each result matched instead of making them hunt.
What it does
Highlighted spans in search results marking the text that matched the query, rendered safely.
How it works
- 1 Escape the record text first, then insert highlight markup. Escaping afterwards destroys your own markup, and skipping it gives you stored XSS.
- 2 Escape the query too before using it to match. A raw user query containing regex metacharacters will either throw or match the wrong thing.
- 3 Match case-insensitively but render the original casing from the source text — never the casing the user typed.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/search-match-highlighting
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.