One search box across a fragmented learning product
Designing a global search experience that treats courses, lessons, questions, posts and discussions as searchable information rather than forcing learners to know where each type lives.
Some product visuals have been simplified or reconstructed to protect confidential platform and customer information. Results are synthetic. The filter presentation shown here is a reconstruction of the filter model, not a claim about the shipped UI.
The learner should not need to know where the answer lives.
Content sits across products, communities, lessons, questions, posts, discussions and comments. Without global retrieval, finding one thing means walking the hierarchy that happens to contain it.
Search by meaning first. Entity type second.
Many content models. One result contract.
Each type contributes different searchable text — a lesson has content, a question has an answer explanation, a discussion has replies. What comes out the other side has to read the same way.
Three questions, in the same order, whatever kind of thing it is.
Start broad. Narrow when necessary.
Every result comes back first. Type narrows it, and only then do the filters that belong to that type appear — a learner filtering lessons never sees a question-type filter.
- 01All results, mixedThe default
- 02Narrow by typeCourses · Lessons · Questions · Posts
- 03Contextual filters appearOnly the ones that type supports
Search became a cross-product entry point.
Learners could retrieve information across multiple content types from a common search model instead of navigating each product surface independently. No success-rate, query-volume or time-saved figures are claimed.
This project taught me that discoverability improves when the system reflects what users remember — the information — rather than requiring them to remember the product hierarchy.