Question: Is it legal to post "US citizens only, please" in a position advertisement?
Answer: Not unless you can document why US citizenship is required (president of the United States, for example). Otherwise, your ad should read: "Successful applicants will be asked to show proof that they can legally work in the US."
When you are searching for applicants, the government requires you to use criteria that treat all groups equally. For example, restricting your ad to US citizens would eliminate a large number of people who are not citizens but meet the government's requirements for legally working in the US. You also may not ask questions about racial background, marital status, whether an applicant has been arrested, religious affiliation, ethnic background, gender, age or disability. Statements like "able-bodied person" or "hard-working young man" are surefire teasers for a lawsuit.
Not only should you be concerned about the legal ramifications of such an advertisement, but you also need to consider how this type of posting can further reduce the number of applicants. A list of competencies required for the job and a brief preview of what the job is like is the best information to include in an advertisement. That way, you give applicants an idea of what they will be getting into and what you will require.