Skip to content

LLM & AI Agents2025

Agentic AI for Sales and Lead Generation, Shipped as a Real Product

Multi-agent bots for sales and lead generation, plus the unglamorous half nobody writes case studies about: authentication, plans and billing, built end to end across Rails and Vue.

Stack
Python · FastAPI · LangChain · LangGraph · Ruby on Rails · Vue.js · PostgreSQL

Context

PT Radya Anugrah Digital wanted agentic AI as a product, not a demo. That meant two workstreams running in parallel: the agent layer that does the work, and the product layer that lets a customer sign up, pick a plan and pay for it.

Problem

A single-agent design breaks down as soon as the scope widens. One prompt holding qualification rules, outreach tone, product knowledge and follow-up logic becomes impossible to tune without regressing something else. Every improvement in one area quietly costs you another.

On the product side, an AI feature with no subscription system, no auth and no plan enforcement is a prototype regardless of how good the model is.

Approach

I designed a multi-agent framework where autonomous agents are orchestrated rather than merged, each with a defined scope and handoff conditions. Adding a new capability means adding an agent and a route, not rewriting a central prompt. LLM pipelines were built in Python with FastAPI and LangChain.

In parallel I built the subscription system end to end: authentication, user plan management and payment workflows on a Ruby on Rails backend with a Vue.js frontend, wired so that plan limits are enforced at the point the agent is called rather than in the UI alone.

Results

  • Sales and lead generation bots delivered on a multi-agent architecture

  • Framework designed for extension, with better flexibility and scalability than the single-agent version it replaced

  • Subscription system shipped across backend and frontend, covering auth, plans and payments

  • LLM pipelines running on Python, FastAPI and LangChain

Notes

Working across the agent layer and the billing layer in the same sprint changed how I scoped features. It is easy to design an agent that is expensive to run. It is harder, and more useful, to design one whose cost maps cleanly onto what a plan actually charges for.

All projects