We used to write the take-home spec until nothing was left open, every edge case listed, and the candidates who finished it clean got offers. Then one stalled on their first real ticket: a three-line message about refunds that turned out to be a reconciliation problem. They could build anything we specified and nothing we didn't.
Now the task ships half-defined on purpose and we grade the questions, not the code. Probably worth looking at what you screen for that the job never asks for.