One way to prove that you get integers is to prove that the corresponding simple modules are defined over $\mathbb Z$ (this is of course much stronger than their having characters with values in $\mathbb Z$), and this is what you get by constructing them 'combinatorially'. This is done in G. D. James's book on the representation theory of symmetric groups, for example. There he even constructs actual matrices giving the action of elements of $S_n$ on the simple modules---the so called Young orthogonal form.
One way to prove that you get integers is to prove that the corresponding simple modules are defined over $\mathbb Z$, and this is what you get by constructing them 'combinatorially'. This is done in James's book on the representation theory of symmetric groups, for example.