FPScanner : a great starting point
The awesome Antonie Vastel focuses mostly in his research on reported browser javascript -level signal inconsistencies.
For instance, hasMismatchLanguages has been a favorite for datadome for some time (Antonie was the primary researcher up until recently there). It is often a problem for scrapers that they are using outdated or incorrect ip information, placing a given ip in Nebraska so the timezone will not match its real location in New York. This can help, but it's not a strong signal by itself.
There are often inconsistencies when using CDP to spoof the browser overrides, and this is something that is very old and Google has no incentive to fix it, as it is one of the primary means of detecting automation: https://issues.chromium.org/issues/40236995 (WorkerNavigator.platform still leaks original value, TL;DR)
You might notice going over the fingerprint json at fpscanner.com the automation signals - these are the strongest signals in the book - however, to implement this properly you need a lot more signals, for instance, nightmare is an indicator of https://github.com/segment-boneyard/nightmare.
These signals are great and all, but all of them can be spoofed in the hands of the right bypass researcher (yes, scraping has researchers: https://nullpt.rs/reverse-engineering-tiktok-vm-1).
If you're still blocking by IP and User-Agent, you are very, very behind.