The first can be solved by getting one's name out there: writing a tech blog, hosting meetups, coming up with novel perks. The second is harder and more objective.
Most startups give mediocre salaries, but people know that. There are two things about startups that damage them, though.
1. Low equity. Once the VCs get involved, equity allotments become so low that their motivational effect is pretty much nil. I feel like the current culture of startup mediocrity has a lot to do with the fact that seriously skilled people aren't interested in the laughable equity amounts they get in post-A startups, unless they can treat it as a 9-to-5 day job and have almost unlimited autonomy.
2. Low autonomy, which surprises people. You're more able to have a global effect on the company in a startup-- that's pretty much impossible for a big corporation-- but the amount of day-to-day personal autonomy people have over their own work and careers is often less in the startups. Big companies can't compete on options and usually pay market (because they set the market rate) so the good ones give their good people decent projects. A lot of startups have micromanagement and, worse yet, an increasing number that have that MBA douchebag culture are popping up (and if you work for a startup with MBA douchebag culture, you get the worst of both worlds between big and small companies; the risk and division-of-labor uncertainty of a small company, usually run by someone too unstable and arrogant to last more than 6 months-- which isn't even that hard to do-- in a large one). New York is full of startups run by MBA types who couldn't hack it in real finance but made enough contacts to raise VC.
I'm pretty sure I'd have no trouble hiring good developers. I'd run open allocation as far as possible, and I wouldn't give out any equity, but replace that with a far more generous profit-sharing program. There wouldn't be far-off payouts with messy tax implications as with options, but bonuses would be 200-500% in good years.