I worked for a company that did a 3-day, challenging take-home problem. It was a big ask, but it was amazing for getting a sense of people's problem solving and coding abilities. (The final result would only be 1000 lines of code or so, but 3 days provided time to think and experiment with different approaches.) Maybe paying people for the time if you end up saying "no" is a nice compromise? If you are potentially se…
This heavily biases your interview process to only take candidates with time to complete your homework: unmarried, childless new graduates. If you tried to give me a 3-day interview I would walk away.
Probably it helped that we were in a smallish college town w/o a ton of other tech, & this was a while ago when the tech job market wasn't as crazy hot as it is right now.
(Also, I want to emphasize, it was a challenging problem, but it wasn't a lot of code at the end of the day. If you knew what you wanted to do, you could knock it out in a couple of hours. But you had 3 days to mull it over or try different approaches. We were not asking you to build an app or something similar involving a ton of work.)
I'm sympathetic to the fact that it's a big ask, but I really truly feel like it gave me a much better sense of candidates than just an interview & a resume (what we do at the company I work at now).
It was also a fun problem to solve, and people would tend to continue to refine their solutions (to be better and faster) competitively even after they'd joined.
FWIW.