What is the difference between working on and working at? For example,

I am working on a farm

or (as in American folk song that goes:

I was working on a railroad

Do these sounds more natural than

I am working at a farm.
I am working at a railroad.

However, I am working at a bank sounds more natural than I am working on a bank.

Just from the above two examples, I can come to hasty conclusion that the difference comes from whether the job is white collar or blue collar.

But I don't think that is true. Can someone explain this?

  • I guess in the first two examples you mention what you actually deal with, I mean the farm and the rail. You work on them. Just saying, I am a learner.
    – Cardinal
    Jun 18, 2019 at 2:56

2 Answers 2


With "working on", the noun (or noun phrase, etc.) that follows is the task, or subject of the work. You could say that you're "working on code" (programming) or "working on getting some reports ready", for example.

With "working at", the noun (or noun phrase, etc.) that follows is the location where the work is being done. The same rules that apply to be apply here: "I'm at the bank" and "I'm working at the bank" use "at" while you need to use "in" for "I'm in Tennessee" and "I'm working in Tennessee". In some cases, we also use "on" like this: "I'm working on the third floor" (compare "I'm on the third floor"). The list of prepositions that can be used like this goes on.

In other words, it's not a distinction between white or blue collar. You can even use both prepositions in the same sentence ("working on homework at school"). As you can imagine, it could be technically ambiguous in some cases whether "on" refers to a place of work or the target of it, but context and pragmatics almost always make it clear what is meant.


I think that it would also help to know that context is important.

I work at a restaurant - I am telling you where I work.
I work on a restaurant - This would make me think you were building or starting a restaurant.

We work on tasks.
We work at places.

If a person told me they worked at the railroad. I would assume that they worked at a railroad office. If they told me they worked on the railroad, I would assume they were working on the task of building the railroad.

  • You're right about it being context-dependent. For example, if someone told me they worked at a farm, I'd be more likely to assume they had some clerical job, or maybe they fixed tractors. But if they said they worked on a farm, I'd assume they were out in the fields all day.
    – J.R.
    Jun 18, 2019 at 9:48

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .