Oh, and Mike mentioned fswatch.
That actually works really well for me. I don’t monitor every subdirectory and file, for all of the reasons he says.
But I do monitor my top-level media library folders. If a new directory is added, the parent library folder gets changed. I have it sleep for a bit, and then I trigger a scan for that library.
There’s some good tooling and discussion here:
https://forums.plex.tv/t/library-auto-updates-on-filesystem-change/