1. A method, comprising: gathering first information from received communications and second information from outside sources, the second information comprising information gathered from a plurality of websites including a social network website, wherein the first information includes one or more keywords contained in the communications, and wherein at least a portion of the first information is used to perform a search to gather the second information; adding the first information and the second information to a first contact profile of a plurality of contact profiles in an address book of a user, wherein each contact profile has an associated contact, and the first contact profile is associated with a first contact; analyzing each contact profile including identifying one or more entries in each contact profile, each entry containing information related to the respective associated contact, and at least one of the entries including information gathered from the social network website; assigning one or more weights to the one or more entries based on one or more criteria, wherein the one or more criteria include a number of times the one or more keywords occur in the one or more received communications with the respective associated contact; and ranking the plurality of contact profiles based on the one or more assigned weights.