Perform jobs based on machine condition

Hi, iv’e this requirement: Start to process a job only if machine have certain conditions (cpu, ram, …)
So i have a maximum of 10 WorkerCount, but before start exceuting a new job i want to make an evaluation, if my custom criteria are not meet, job should remain in “enqueued” state and will be evaluate again after some minutes.

Can i archive this with job filtering? Can you give me some advices?
Thanks