1) Why would someone build software that sophisticated and not expected to be rewarded for their time and effort? The the amount of skill needed to determine an algorithm good enough to connect people that might be a good match for each isn't a trivial thing that one can pull a library from npm for.
2) How do you attract a large enough user base to make it effective in the first place?