1. A method for providing recommendations to improve a query, comprising: receiving, from a user via a user interface, a query with query keywords and selected categories; calculating a query relevance indicator for each of the selected categories, wherein the query relevance indicator for a category of the selected categories is calculated based on a keyword relevance indicator of each keyword specified in the query, a total number of keywords in the query, a keyword relevance indicator of each keyword in the category that is not specified in the query, and a total number of different keywords in the category and the query; and in response to determining that the selected categories are ranked high with reference to the query relevance indicator for each of the selected categories, calculating a query relevance indicator for each subcategory, wherein the query relevance indicator for a subcategory is calculated based on the keyword relevance indicator of each keyword specified in the query, the total number of keywords in the query, a keyword relevance indicator of each keyword in the subcategory that is not specified in the query, and a total number of different keywords in the subcategory and the query; ranking each subcategory based on the query relevance indicator of the query with each subcategory; and in response to determining that high-ranked subcategories are not in the selected categories, providing recommendations of one or more new query keywords and the ranked subcategories for use in selecting new categories to be submitted with the query; and in response to receiving a new query using at least one of the one or more new query keywords, executing the new query to identify services.