WorkforceIQ
From raw HR and call data to predictive models and dashboards people actually open.
Problem
HR attrition data, engagement signals, and call-center sentiment usually live in separate spreadsheets. By the time someone spots a pattern, high performers may already have resigned. Weekly stakeholder reports were assembled by hand, slow, error-prone, and hard to trust.
WorkforceIQ was built as one connected pipeline: clean the data, score attrition risk, segment the workforce, analyze call sentiment, and push results into Tableau, Plotly HTML dashboards, and automated email, without restitching steps every Tuesday.
Constraints
- Interpretability over marginal accuracy gains (HR needs to know why someone is high-risk).
- Every stage must write durable outputs to disk so cleaning, models, and dashboards can re-run independently.
- Delivery must work with and without Tableau (self-contained Plotly HTML for zero-license viewers).
- Datasets are synthetic but realistic; the engineering is the product, not confidential employer data.
Architecture
Raw spreadsheets flow through cleaning into an ML layer of Random Forest, K-Means, and VADER scoring. Outputs then branch to Tableau workbooks, self-contained Plotly HTML, and an automated Power Automate email flow. Each stage writes CSVs to disk so the entire chain can be re-run or debugged in isolation.
What I built
Machine learning
- Attrition: Random Forest on 50,000 employee records; satisfaction, tenure, overtime, and commute distance as top drivers; each person gets a probability, label, and segment.
- Segmentation: K-Means into four behavioral personas, including a small high-risk, low-satisfaction, high-overtime cluster that drives a disproportionate share of predicted attrition.
- Sentiment: VADER on ~10,000 call transcripts with about 92% agreement to labels; compound scores and Positive / Neutral / Negative categories for trend tracking.
Delivery
- Three Tableau workbooks (employee trends, automotive market lens, call-center analysis).
- Self-contained Plotly HTML dashboards (attrition, segments, sentiment) generatable via script, no Tableau license required.
- Power Automate flow that emailed stakeholder summaries and cut manual reporting turnaround by about 60%.
Results
The pipeline answers three business questions in one system: who might leave, how the workforce clusters behaviorally, and whether call sentiment is drifting, with outputs stakeholders can open without waiting on a custom extract each week.
What I would do differently
- Replace one-shot CSVs with scheduled ingestion and rolling retrain windows.
- Add lightweight prediction-drift monitoring so model quality is visible over time.
- For mixed-sentiment and sarcasm on calls, evaluate a fine-tuned transformer beyond VADER's lexicon scores.
- Publish a static confusion-matrix / cluster plot image on the case-study page for scanners who never open the repo.
Open to internships and full-time roles
Actively looking for Data Engineer, Forward Deployed Engineer, and Analytics Engineer opportunities. If you are hiring, I would love to hear from you.