Anyway to block all calls from a certain area code (that aren't in my contacts)?

Phone is a Google Pixel on Sprint.

I have a 309 area code phone number and lately I’ve been getting a surge of spam 309 calls. I block every one but the numbers keep changing. The thing is, I no longer live in the 309 area code (or anywhere near it), so the only 309 numbers I know would be contacting are already in my contacts. I don’t want to block all numbers that aren’t in my contacts, just the 309 ones. Is it possible?

I have exactly the same situation, moved away from an area but kept the cell number. I did a lot of research a few months ago, but could not find a solution (I’m on a Verizon iphone). You’d think this would be really simple to implement, right?