Signing bonuses or other perks can work wonders as well.
UPS does a pretty good job for shifts they have trouble filling. My work week ranges between 16-23 hours, depending on volume. They pay a bonus of $100/week if you show up on time every day. That's a good motivator, if you ask me.