1. A method comprising: aggregating, by a download server, usage information received from a set of clients indicating whether at least one of a set of software applications installed on the set of clients is running based on a determination performed at an irregular interval or a predetermined interval; receiving, by the download server from a client, at least one of user-specified selection, attribute or search term indicating a plurality of matching software applications from the set of software applications; generating, by the download server, an ordered list of the plurality of matching software applications for selectable download based on the aggregated usage information and the at least one of the user-specified selections, attribute or search term; and providing the client, by the download server, at least one of the plurality of matching software applications based on a selection from the ordered list.