1. A computer-implemented method comprising: receiving a request from a requestor, wherein the request comprises a primary keyword and a profile, wherein the profile comprises at least one persistent keyword; in response to the request, finding a plurality of root pages, wherein the plurality of root pages comprise first terms that match the primary keyword; determining whether a plurality of root links that point at the plurality of root pages satisfies a root criteria in the profile, wherein the root criteria is selected from the plurality of root pages match the primary keyword, the plurality of root pages are retrieved from a bookmarked address, the plurality of root pages are retrieved from an embedded child link in a parent page, and the plurality of root pages are retrieved from a manually entered address; if the plurality of root links that point at the plurality of root pages do not satisfy the root criteria, displaying the plurality of root pages; if the plurality of root links that point at the plurality of root pages do satisfy the root criteria, in response to the request, searching a plurality of descendant pages that are descendants of the plurality of root pages; if the plurality of root links that point at the plurality of root pages do satisfy the root criteria, determining that a first descendant page among the plurality of descendant pages comprises a second term that matches the persistent keyword; if the plurality of root links that point at the plurality of root pages do satisfy the root criteria, counting a number of times the primary keyword has been received from the requestor; if the plurality of root links that point at the plurality of root pages do satisfy the root criteria and if the number of times is greater than a threshold number, adding the primary keyword to the at least one persistent keyword in the profile to create a plurality of persistent keywords; if the plurality of root links that point at the plurality of root pages do satisfy the root criteria, searching descendant pages of another root page for terms that match the plurality of persistent keywords; searching the plurality of descendant pages of the plurality of root pages for the second term that matches the persistent keyword, wherein the searching further comprises determining that the plurality of descendant pages are at a plurality of levels on a plurality of paths from the plurality of root pages and determining that the plurality of levels are within a depth from the plurality of root pages, wherein the profile further comprises the depth, wherein the searching the plurality of descendant pages of the plurality of root pages for the second term further comprises determining that a path that includes the first descendant page is not a cycle, wherein the cycle comprises a closed walk that comprises an alternating sequence of a subset of nodes and edges of a graph, beginning with a first-node and ending with a last-node, wherein the first-node and the last-node are a same node; sending the plurality of root links that point at the plurality of root pages to the requestor; sending a first descendant link that points at the first descendant page to the requestor; displaying the plurality of root links; displaying a tab; in response to a selection of the tab, retrieving the first descendant page via the first descendant link; displaying the plurality of root links; and coloring the root link that points at a path that includes the first descendant page.