Despite what the DoJ or EEOC might say about employment discrimination (or perhaps because of broad terms in the exceptions), I see various jobs, housing, grants, and other opportunities, advertised with the "US Citizenship Required" qualification, commonly enough that it seems like it must be legal.
On the one hand, there seem to be laws against this in theory. On the other, those laws might not outlaw advertising the job in a particular way that discourages certain applicants, and an employer might be able to find other reasons why not to hire someone who doesn't match the desired citizenship status; it could be hard to prove that national origin was the sole reason and hard to say that any specific person was significantly and provably directly harmed as a result. Politically, I could see how broad exceptions might have been passed that allow people to make things easier on "Americans" than on others.
In practice, is it legal to advertise citizenship requirements for jobs, housing and/or other opportunities? (Please indicate which part you're responding to in your answer.) If not, what actually happens to people/companies who do?