I'm a Social Media Analyst with 4+ years turning social data into decisions people actually make — content calendars, budget shifts, crisis calls.
Most of that work lives in Sprinklr, Meta Insights, GA4 and Tableau. But the questions I care about usually outgrow a dashboard filter: is that lift real, or is it noise? Which conversation is about to become a problem? Are we over-invested in the format that only looks like it's working?
So I build the analysis myself. The repositories below are working tools, each one aimed at a question I've actually been asked in a reporting meeting — and each one built to be wrong out loud rather than confidently wrong: sample sizes are shown, low-confidence findings are left blank instead of ranked, and every accuracy claim is measured against known ground truth rather than asserted.
What are people saying about us versus everyone else — and which conversation is about to become a problem?
22,319 mentions across six competing brands. Explainable sentiment scoring, a taxonomy-first theme architecture, share of voice that doesn't reward the brand having its worst week, and crisis detection that fires on day one.
The detail I'm proudest of: the standard 3-sigma spike detector fails during the actual crisis, because the event inflates the very mean and standard deviation used to judge it. This uses a trailing median that excludes the day being tested, so a spike can't contaminate its own baseline. It catches the planted recall at 16.5× baseline while the loudest false alarm scores 4.7.
Python · scikit-learn · NMF · Streamlit — 33 tests
Which content, on which platform, at which time — and what actually changed this week?
2,092 posts across Instagram, LinkedIn, TikTok and X, reduced to twelve KPIs and the four decisions they're supposed to drive, plus an auto-written stakeholder report.
Every "best time to post" chart I've been handed was built on five posts per cell. This one shows its sample sizes and leaves thin cells blank rather than ranking them — a gap is information; a confident recommendation off five posts is not.
Python · pandas · SciPy · Streamlit — 28 tests
Which creative and audience combinations actually win — and is the lift real enough to move budget on?
$1.5M of spend across 26 campaigns and 240 creatives, with A/B tests evaluated properly: confidence intervals, practical-significance thresholds, peeking analysis, and creative fatigue detection.
"Not significant" and "no difference" are not the same result, and treating them as one is how a real effect gets filed as a dead end. Every flat test here is split using its confidence interval — ruled out versus couldn't see it — and every test carries a known true lift so the statistics are checked against ground truth, not assumed.
Python · SciPy · Streamlit — 36 tests
| Social analytics | Sprinklr · Hootsuite · Meta Insights · Google Analytics 4 · Later · social listening · sentiment analysis · engagement & reach analysis · content performance |
| Paid social | Meta Ads Manager · LinkedIn Campaign Manager · A/B testing · audience segmentation · UTM tracking · attribution modelling |
| Reporting & BI | Tableau · Excel (PivotTables, modelling) · Snowflake · SQL · KPI dashboards · competitive benchmarking · data storytelling |
| Analysis in code | Python · pandas · NumPy · SciPy · scikit-learn · Plotly · Streamlit |
| Content & platforms | Instagram (Reels, Stories, Feed) · TikTok · LinkedIn · X · YouTube Shorts · content strategy · UGC campaigns · employer branding |
| Martech | HubSpot · Salesforce · Apollo · SEMrush · Meta Business Suite · Canva · Adobe CC · CapCut |
Before the projects above, I worked through the fundamentals on public datasets — regression and classification, ETL and star-schema modelling, dashboard design. They're older and they're not social media work, but they're where the statistics I now lean on came from, so I've left them up:
retail-margin-cockpit — dbt star schema, DAX measure library and row-level security in Power BI ·
customer-churn-prediction — classification and driver analysis ·
ds_salary_proj — regression and a Flask API, built by following a public walkthrough ·
sales-insights-...-tableau-and-sql — SQL ETL into a Tableau dashboard ·
stockastic — ARIMA forecasting in Streamlit ·
text-analysis-using-nlp-streamlit — NLP toolkit
Every dataset in the featured projects is synthetic, generated by a seeded script committed alongside the analysis. No employer or client data appears anywhere on this profile.
That's a deliberate choice, and it buys something: because the generators plant known structure — a recall on a known date, a trend with no rule written for it, an A/B test with a true lift of exactly zero — the analysis can be tested against ground truth instead of eyeballed. Several of those assertions are the most valuable tests in each repo.
San Francisco, CA 📧 yashi28sandhu@gmail.com
Open to Social Media Analyst, Marketing Analyst and Social Insights roles.