← All work

SenTrac

Agencies see how audiences feel about a campaign, scored fairly across six channels

SenTrac turns a campaign's post URLs into a shareable report on how the audience feels. We built its sentiment engine from dedicated models for sentiment, emotion, toxicity and sarcasm, on one 0 to 100 scale across every channel.

Marketing & MediaSocial sentiment analytics SaaSBuilt from zero

The shareable SenTrac report scores audience sentiment for each of the six social channels.

The challenge

Social comments are full of sarcasm, slang, emoji and mixed languages, and one campaign spans six platforms and many formats. The founder needed numbers he could defend to clients.

What we did

A dedicated model for each signal, one score scale for every channel, reactions scored on their own, and an editable AI summary beside each chart, all agreed screen by screen before code.

The outcome

The founder picked us after a paid discovery he ran with several agencies, recommended us to another founder, and all five build milestones are complete ahead of launch.

Channels
X, Instagram, Facebook, TikTok, YouTube, LinkedIn
Signals
Sentiment, emotion, toxicity, sarcasm, reactions
Score
0 to 100 on every channel, 50 is neutral
Reports
Single campaign, comparison, PDF and share links

The starting point

SenTrac is a SaaS for agencies and brands that run influencer and social campaigns. A user pastes the post URLs that make up a campaign, a Trac, and gets a report on how the audience feels, by platform, format, date, language, age, gender and location.

What had to change

Collecting comments, reactions and shares by hand is slow and error prone, and existing tools export raw comments or miss channels and formats. Plain sentiment models also misread social language full of sarcasm, slang, emoji and mixed languages.

What could not break

  • Every metric is defined and defensible before it reaches a client report
  • Scores compare fairly across platforms and across video, image, carousel and livestream posts
  • A post is never penalized for reactions its platform does not offer, and Instagram has only a heart
  • Users can correct the AI: summaries stay editable and wrong results can be flagged

The calls we made

We treated it as a measurement problem first: decide what each number means, then pick the models that can produce it on messy social language.

  1. 01

    A dedicated model for each signal

    The founder asked us to compare Hugging Face models, GPT-4 class models and custom classifiers. We recommended efficient pre-trained models for the volume of comments, one each for sentiment, emotion, toxicity and sarcasm, with a larger LLM kept for summaries.

    Ruled out

    Sending every comment to one large model.

  2. 02

    One scale for every channel

    Each comment's positive, neutral and negative shares are normalized to 100, then turned into a 0 to 100 score where 50 is neutral, so a TikTok video and a LinkedIn post land on the same scale.

    Ruled out

    Comparing raw scores across platforms that return different data.

  3. 03

    Anger counts, but only hate reads as severe

    A toxicity model alone scored polite but angry comments near zero, so we blend in the anger signal at half weight: anger alone can reach moderate, and only real hate speech or profanity reaches severe.

    Ruled out

    Toxicity from the hate speech model alone.

  4. 04

    Score reactions on their own

    Platforms offer different reactions, so each reaction emoji carries a predefined sentiment that sits beside the engine's comment scores, and a missing thumbs up never pulls a post down.

    Ruled out

    One reaction scale applied to every platform.

  5. 05

    Agree every metric before code

    We designed the full product in Lovable, then Figma, and settled each metric with the founder screen by screen, from average sentiment per post to a sentiment based engagement ratio, before the build began.

How the system fits together

pasteone task per postnew commentsscore each commentnormalizedscoreschartssummariesedit, flag, shareAgency and brandusersBuild Tracs, readreportsCampaign postURLsMany posts, channelsand formatsChannelcollectorsComments, reactions,metricsSentiment engineOne model persignal, 0 to…Pre-trainedmodelsSentiment,…Rollups bydimensionPlatform, format,language,…Larger LLMEditable reportsummariesCampaign reportsSingle, comparison,PDF and share link
PeopleData storeBuilt by DaticsAI modelEvery comment is scored by a dedicated model per signal and rolled up on one scale, and every AI summary stays editable before a report is shared.

What we built

Sentiment engine

Positive, neutral and negative shares with a 0 to 100 score, five emotions from happiness to fear, toxicity graded clean, moderate or severe, sarcasm, and emoji and reaction sentiment, across languages.

The sentiment summary splits comments into positive, neutral and negative and scores toxicity.

Single campaign report

Core metrics grouped as reach, engagement and audience interaction, sentiment by platform, format, date, location, language, age and gender, and top posts, influencers and comments, with an editable AI summary beside each chart.

A single campaign report with core metrics, a trend chart and an editable AI summary.

Comparison and branded sharing

Side by side comparison of campaigns, PDF export and share links that keep SenTrac branding unless an agency has a white label plan, sentiment threshold alerts and search across a campaign's posts and comments.

A comparison report puts three campaigns side by side, ready to export or share.
04

Feedback on AI results

A feedback button lets users flag a wrong result, and each flag is stored for review and model improvement.

How it works

Create a Trac

The user pastes the post URLs that make up a campaign.

Collect

Each post's comments, reactions and engagement are collected from its platform.

Score

Dedicated models score sentiment, emotion, toxicity and sarcasm for every new comment on one 0 to 100 scale.

Report

Scores roll up by platform, format, language and audience, with an AI summary beside each chart that the user can edit.

Correct and share

Users flag any wrong result, then share the report as a PDF or a link.

A closer look

What changed

The founder chose us after running the same paid discovery with several agencies, approved the report and comparison designs, and recommended us to another founder before development began. All five build milestones are now complete, and the final design polish and regression testing are under way ahead of launch.

A paid discovery run with several agencies
Selected after
The founder recommended us to another founder
Referral
All five milestones complete ahead of launch
Build
“Umair and his team at Datics have done an outstanding job developing SenTrac, our AI-powered sentiment analysis platform. What I have appreciated most is their willingness to understand our vision, work through complex requirements, and incorporate feedback as we refine the platform.”
Jason PampellManaging DirectorHireInfluence

Under the hood

Datics role
Product built by Datics
Models
Pre-trained transformer models score each signal: a sentiment classifier, GoEmotions for emotion, a toxic comment model and a sarcasm detector; the design names GPT-4o through the OpenAI SDK for summaries.
Scoring
Class shares are normalized to 100, the score runs from 0 to 100 with 50 as neutral, toxicity is clean below 30 and severe from 65, and a comment counts as sarcastic above 50.
Evaluation
The AI blueprint set precision, recall, F1 and ROC-AUC as the measures for the sentiment models, with retraining, and flagged results are stored for model improvement.
Pipeline
Python workers run the sentiment pass after each collection and roll results up by platform, format, language, age and gender for the reports and dashboards.

AI and models

OpenAI GPT-4o

Data and retrieval

PostgreSQL

Apps and APIs

Next.jsFastAPI

Also in the stack

Hugging Face TransformersGoEmotionsCelery

How it shipped

  1. Paid discovery

    A competitor review, a per platform map of what data can be extracted, a full list of campaign stats and an AI engine recommendation, which the founder weighed against other agencies' work before choosing us.

  2. Design and metric definitions

    The product was designed in Lovable, then Figma, through many feedback rounds on each report screen and the PDF report, until the founder approved the report and comparison directions.

  3. Scope and build plan

    Later scope versions added AI summaries, alerts and campaign comparison while the product was still in design, and set a build plan of five milestones.

  4. Build in sprints

    Two week sprints delivered the sentiment engine and the full report first, then comparison, the remaining channels, dashboards and alerts, and the super admin portal.

  5. Polish ahead of launch

    With all five milestones built, the team is matching every screen to the approved designs with the founder, followed by regression testing before launch.

Metrics settled in the prototype

Report screens and the PDF report went through many review rounds with the founder, and naming, grouping and metric definitions were agreed in the prototype before engineering began.

Sprints with a daily scrum

Development ran in two week sprints with a daily scrum, and the founder's feedback was logged in a shared tracking list from the first week of the engagement.

What this unlocked

After launch, later scope adds keyword and trend monitoring, more channels and tuning the sentiment models on the platform's own labeled data.

Have a product with the same kind of constraints?

Tell us what already exists and what you want it to do. We will tell you what it takes.

Book a 30-minute Product Review