21. A non-transitory machine readable storage media storing a set of instructions, the instructions causing a processor to perform a method, the method comprising: scanning, by the processor, a set of messages of a user to identify a plurality of addresses; identifying names of persons at the addresses to generate a plurality of profiles for the persons, each profile of the plurality of profiles comprising a name of a respective person, an address for the respective person, and a total number of messages sent to or received from the respective person; computing scores of the persons using data in the plurality of profiles to determine relevancy of the persons to the user; in response to an incomplete input in an address field, identifying a set of persons in the plurality of profiles that match the incomplete input, the identifying comprising matching the incomplete input to a plurality of fields in the profiles, wherein the plurality of fields includes at least two of: a person's name, an employer, a domain name, a job title, and a city name; sorting the set of persons based at least in part on the scores; presenting one or more suggestions to complete the incomplete input based on the set of persons; and in response to the user selecting a suggestion from the one or more suggestions, replacing the incomplete input with an address corresponding to the suggestion selected by the user.
22. The non-transitory machine readable storage media of claim 21 , wherein the sorting comprises weighting the scores according to types of fields in the plurality of profiles to which the incomplete input matches.