1. A method, implemented by a computing device, for indexing applications accessible through a user device, comprising: crawling through a plurality of data sources to detect applications accessible through a user device; for each detected application, generating metadata characterizing the application; analyzing the generated metadata to classify the application to at least one category; updating an application index to include at least the indexed application and the respective classified category; crawling through deep uniform resource locators (URLs) of each detected application; indexing contents addressed by the deep URLs; and saving the indexed contents in the application index; wherein each category indicates a different topic of possible user intents.