Any smooth $k$-manifold $M$ comes with a well-defined map $f:M\rightarrow BGL_{k}(\mathbb{R})$ (up to homotopy) classifying its tangent bundle. Since $GL_{k}(\mathbb{R})$ deformation-retracts onto $O_k$, then $BGL_{k}(\mathbb{R})\simeq BO_k$, which is a cute way (though it's certainly overkill) of proving that every smooth manifold admits a Riemannian metric. An almost-complex structure, on the other hand, is equivalent to a reduction of the structure group from $GL_{2n}(\mathbb{R})$ to $GL_n(\mathbb{C})$, which is the same as asking for a lift of the classifying map through $BU_n\simeq BGL_n(\mathbb{C})\rightarrow BGL_{2n}(\mathbb{R})$.
Can we detect the nonexistence of a lift entirely using characteristic classes? If not, what else goes into the classification?
I'd imagine these don't suffice themselves. The only easy (i.e. non-cohomology operational) result in this direction that I know is that $w_{2n}(TM) \equiv_2 c_n(TM)$, so this holds in the universal case $H^\ast(BO_{2n};\mathbb{Z}/2) \rightarrow H^\ast(BU_n;\mathbb{Z}/2)$. I've heard that this problem is indeed solved. Maybe it does take some characteristic class & cohomology operation gymnastics, or maybe it needs extraordinary characteristic classes. Or maybe there's yet another ingredient in the classification?