I created an iPhone app called MyHumans that takes the opposite approach with a whitelist using your phone contacts. Other callers are sent to voicemail without ringing your phone. It has an easy to access switch where you can temporarily disable any blocking for a time period, like an hour, if you're expecting a one-off call from a recruiter or whatever.
It works really well for me. Spammers rarely bother leaving a voicemail and legitimate businesses leave a voicemail that I can follow-up on later.