Skip to content
← All Projects

Customer Sentiment Analysis Platform

Built an NLP pipeline that processes customer feedback from support tickets, social media, and surveys — giving product teams actual signal instead of gut feelings.

PythonTensorFlow.NET CoreAzureDockerAI

This started because a client’s product team was drowning in customer feedback and had no way to prioritize. They were reading support tickets manually, which doesn’t scale when you’re processing thousands per day across five languages.

What We Built

A microservices system that ingests feedback from multiple channels — support tickets, social media mentions, app store reviews, survey responses — and runs it through a custom NLP pipeline. We fine-tuned a transformer model on domain-specific data because the off-the-shelf sentiment models were terrible at understanding industry jargon and sarcasm.

Architecture:

  • Data ingestion layer with connectors for Zendesk, Twitter API, Google Play, and internal survey tools
  • NLP pipeline service (Python, TensorFlow) with domain-adapted models
  • .NET Core API serving processed results to a React analytics dashboard
  • Azure Event Hubs for real-time streaming, SQL Server + Cosmos DB for storage
  • Automated alerting when sentiment drops below configurable thresholds

The Hard Parts

Getting the model to handle Vietnamese and Thai alongside English was the biggest challenge. We ended up using multilingual transformers and fine-tuning on labeled data from each market. The labeling process alone took weeks.

The other tricky bit was latency. Product managers wanted real-time dashboards, but running inference on every incoming item was expensive. We settled on a hybrid approach — batch processing for historical analysis, real-time for the alerting system.

Results

  • Processes 10,000+ feedback items daily across 5 languages
  • Product team identifies emerging issues 35% faster than before
  • Uncovered two product improvements that weren’t on anyone’s radar
  • Support team uses sentiment scores to prioritize escalations

Timeline: Started mid-2023, production since early 2024. We’re still iterating on the model and adding new data sources.