I used upwork (when it was elance) quite a lot in a startup I was running at the time, so I have direct experience of this and its _not_ a lie or "mostly exaggerated", it was a very real effect.
The trick was always to weed out these types by posting a very limited job for a cheap amount and accepting around five or more bids from broad prices in order to review the developers. Whoever is actually competent then gets the work you actually wanted done in the first place. I found plenty of competant devs at competitive prices this way but some of the submissions I got from the others were laughable. But you just accept the work, pay them their small fee, and never speak to them again.