Если нет необходимости запускать свои приложения на сервере без интерфейса, т.е. например можно чтобы у вас был открыт браузер, то можно с помощью расширений браузера (или просто инжектить свой скрипт через консоль скрипт, если веб-приложение single page application) то вам хватит приложения на javascript, простого как валеннок.
Например чтобы заполнить поле ввода текстом надо написать что то типа $('css selector контрола').value='блаблабла', кнопку нажать $('...').click( и т.п.)
Достоинство подхода - сервер почти никак не сможет отличить ваше приложение от пользователя (только статистику и поведенческий анализ, та еще задача), и зачастую, небольшие изменения в коде на сервере требуют минимальных исправлений в ваших скриптах автоматизации или даже без, по сравнению с curl подходом (который требует полностью повторять запросы веб страницы к серверу, это обычно сложнее).
Недостаток - веб-браузер требует больше ресурсов для работы (даже headless) на столько что например сотню ботов на одной машине можно уже не потянуть.