MarketingSaaS · AI/ML · CRM · API/backend · Automation · Integration · Infrastructure
AI sales-outreach automation SaaS for CRM users
We designed and built an AI sales-automation SaaS that plugs into a CRM and runs outreach end to end: an LLM agent writes and follows up on emails, leads are enriched, calls are recorded and transcribed, and everything threads back into the CRM. We delivered design, front end, event-driven backend and cloud infrastructure through to production.
Problem
The client wanted to automate a HubSpot user's whole sales outreach with AI on a limited start-up budget, and HubSpot's enterprise-only email API threatened to make per-customer sending prohibitively expensive.
Solution
A Go listener captures HubSpot lead and inbox webhooks and queues them (Redis, then Kafka, finally AWS SQS) to Python services where an OpenAI/Groq agent generates and categorises emails using context retrieved from pgvector embeddings in a multi-tenant PostgreSQL design. Emails are sent through HubSpot's Inbox API so replies thread inside each customer's CRM. Stripe subscriptions and LLM credits, Apollo enrichment, Twilio calling with S3 recordings and AWS Transcribe, Calendly booking and an automated blog pipeline were added, with Pulumi-defined ECS Fargate infrastructure and GitHub Actions CI/CD.
Key features
- LLM email agent for welcome, follow-up and objection-handling emails
- Reply categorisation (meeting, cost, time, authority, product fit)
- Retrieval of company and conversation context from vector embeddings
- HubSpot OAuth app with webhooks, contact sync and threaded inbox sending
- Multi-tenant per-company database schemas
- Apollo single and bulk lead enrichment
- Twilio calling with recordings and transcriptions logged to the CRM
- Calendly meeting booking
- Next.js CRM with dashboards and Google SSO
- Marketing site replacing a site-builder site
- Infrastructure as code on AWS with CI/CD
Tech stack
- ALB
- AWS
- AWS Transcribe
- Apollo.io
- Arvow
- Calendly
- Clerk
- Cloud Map
- CloudFront
- CloudWatch
- DaisyUI
- Docker
- DynamoDB
- ECR
- ECS Fargate
- Echo
- FastAPI
- Figma
- GORM
- Gin
- GitHub Actions
- Go
- Groq
- HubSpot
- IAM
- Kafka
- Llama 3.3
- Next.js
- OAuth
- OpenAI
- PostgreSQL
- Pulumi
- Python
- RDS
- RTK Query
- React
- Recharts
- Redis
- Redux Toolkit
- S3
- SQS
- Stripe
- Tailwind CSS
- Twilio
- TypeScript
- Vercel
- pgvector
Services behind this project
Read more
- 22SEP
RAG vs fine tuning: how to add an LLM to your product
RAG vs fine tuning: which should you use to add an LLM to your product? A plain guide to choosing, and to the production work each approach really needs.
AI & Automation6 min read
- 04AUG
Shipping AI features into real products
Patterns that repeat across the AI products we've built: transcription pipelines, retrieval over your own data, a human kept in the loop, and controls on what the model costs and can see.
AI & Automation3 min read