Problem
Users frequently search for the same topics or use the same filter combinations, but there's no way to recall previous searches. Each session starts from scratch.
Proposed Solution
Recent Searches
- Store last 10-20 searches in localStorage (query, mode, filters, timestamp)
- Display recent searches on the search page when the input is empty or focused
- Click to re-execute a previous search with all filters restored
- Clear history button
Saved Search Filters
- Allow users to save a named filter preset (e.g., "ML profs in US with 1000+ citations")
- Store in localStorage alongside existing
researchprof_saved data
- Quick-apply buttons on the search page
- Edit/delete saved filters
Implementation Notes
- Follow the existing
useSyncExternalStore + localStorage pattern from storage.ts
- Add new storage key
researchprof_searches for history
- Add new storage key
researchprof_filters for saved presets
- New component:
SearchHistory shown below search input
- Preserve URL query params so searches remain shareable
Priority
High — low effort, high user value. Reduces friction for repeat users.
Problem
Users frequently search for the same topics or use the same filter combinations, but there's no way to recall previous searches. Each session starts from scratch.
Proposed Solution
Recent Searches
Saved Search Filters
researchprof_saveddataImplementation Notes
useSyncExternalStore+ localStorage pattern fromstorage.tsresearchprof_searchesfor historyresearchprof_filtersfor saved presetsSearchHistoryshown below search inputPriority
High — low effort, high user value. Reduces friction for repeat users.