1. A computer-implemented method for providing one or more targeted keywords associated with a document, comprising: receiving a set of user-selected keywords and a specification of a market segment associated with the document from a user, the market segment associated with an industry; determining, by computer a set of similar keywords based on the user selected keywords, wherein the determining involves: generating a first set of similar keywords, by selecting keywords correlated with the user selected keywords; calculating a competitiveness score based on the number of other users bidding for the keyword relative to all other keywords for each keyword in the first set of similar keywords; and filtering out a set of keywords with the top competitiveness scores from the set of similar keywords; determining a set of weighted market-specific keywords based on the filtered set of similar keywords, the user-selected keywords, and keywords in documents that are associated with other users in the market segment, wherein the set of market specific keywords includes: one or more of the keywords in the documents, one or more of the user-selected keywords, and one or more of keywords from the filtered set of similar keywords; providing at least a subset of the set of market-specific keywords to the user, the subset comprising at least the top weighted keywords of the set of market-specific keywords; receiving, from the user, a selection of one or more keywords from the provided subset of market specific keywords; and incrementing, in a data structure comprising weights associated with keywords, weights for each of the one or more keywords in the received selection of keywords, wherein the weight for each selected keyword is incremented by a predetermined value each time the keyword is selected such that the weight directly relates to a total number of selections of the keyword.