I have seen both being used. But I don't know when to use which one.
1- You have done a good job on this (Context: Your teacher saying this after he examines your homework)
1a- You have done a good job in this
2- He did a good job on stealing the ball. (Context: Commentor saying this during a basketball game.)
2a- He did a good job in stealing the ball.
3- I think I did a good job on it (Context: You are saying this after have finished writing a code.)
3a- I think I did a good job in it