Q. Is it legal to hire only U.S. citizens and, when advertising, say that people must be citizens to apply? — Susan, Kansas
A. No. With few exceptions, it is not legal for an employer to refuse to hire anyone but U.S. citizens. (The exceptions apply to positions specifically regulated by federal, state or local laws or federal contracts that require specific positions to be filled only by U.S. citizens.)
If an applicant is discouraged or rejected from employment based on citizenship status, the employer may be committing citizenship status discrimination in violation of the anti-discrimination provision of the Immigration Reform and Control Act of 1986 (IRCA). This may also qualify as national-origin discrimination under Title VII of the Civil Rights Act (and similar state and local laws).
You can find a list of questions and answers on the topic at the Department of Justice’s site.