When I listen to 오 on Naver Dict (or 오다 or 오늘), it sounds the same as 우. 오 sounds like a [u] sound, not an [o] sound like in Spanish como [komo]. (Click the speech icon with round, not vertical, sound waves for a human-recorded sound rather than text-to-speech.) Maybe 우 sounds a bit more emphatic, but it doesn't sound very different. In contrast, 소, 요³, and 포, and the text-to-speech 오 definitely sound like [o]. 코 and Wikipedia's [o] also sounds like [u], although if I listen to it while thinking [o] in my head, it starts to sound more like [o]. But the vowels in 오, 노, and 모 sound to me unambiguously like [u].
Is ㅗ more closed and thus sounds more like ㅜ in some certain phonological environments (after certain consonants, depending on vowel length, etc.), or is it more just that it varies by speaker or dialect? Would it be wrong to say ㅗ the way the text-to-speech says it? When ㅗ sounds like [u] to me, is ㅜ somehow even more closed, or are they really indistinguishable?