I settled on implementing a honeypot technique using invisible_captcha gem [1]. It uses multiple techniques to detect bot activity, such as checking if the form was submitted too fast, hidden form attribute only visible by bots but not humans, etc...
Luckily for me, these bots weren't quite sophisticated so I managed to clamp down on their activity. I still get a couple of bogus signup attempts every day.
Disclosure: I am a contributor to the invisible_captcha gem
[0] https://tryhexadecimal.com
[1] https://github.com/markets/invisible_captcha
EDIT: grammar and wording