1) there's no way to know if somebody is skilled, since the industry don't require degrees, titles are absolute bullshit, and "years of experience" is frequently "spent 3 yrs maintaining other people's code and manually running deploys". the interview and take-homes are a bad pantomime. it's mostly vibes.
2) nobody asks the candidates what they want ahead of the interview. I'll gladly tell you what my ideal job would be, ideal culture, day to day requirements, etc. If 90% of those seem to match a trend... maybe change your company to match the trend? Then you get 90% of the hires.
3) on compensation, know what you're offering and go after people looking for that. A) terrible job, amazing pay, B) decent pay, decent job, C) terrible pay, amazing job. A) is golden handcuffs. B) people bail on you whenever a better gig shows up (or retain terrible/lazy ppl). C) is you've got a hire for life. which do you wanna be?