Trilingual HR and recruiting operations professional, working across high volume screening, interview coordination, ATS data hygiene and pipeline tracking.
I keep recruiting records accurate, build the trackers and dashboards a hiring team actually runs on, and coordinate stakeholders through fast moving cycles. The result is pipeline visibility, quicker follow up and hiring readiness that rests on clean data rather than on chasing people.
Greenhouse · Workday Recruiting · Airtable · Excel · Looker Studio · Power BI · Chinese, English, Spanish
Selected work
Three projects
01 / 03
SQL · Excel · Looker Studio
HR Operations Dashboard
A recruiting operations dashboard that keeps itself current: SQL into Excel into Looker Studio, so nobody rebuilds it every month. It scores data hygiene and splits each SLA breach by the person who holds the step.
Survey and attendance data cleaned in Excel, then modelled in Power BI for LIDERA, the UN's internal leadership platform. Built so senior leadership can see which events land and where the strategy needs to change.
A time-series study of whether a falling coal share actually lowers CO2 intensity. Built in R over 31 years: stationarity tests, ARIMA selection, then ARIMAX with GDP per capita and a human rights index.
A recruiting operations dashboard that keeps itself current, built around the question a talent acquisition team is actually asked every week: what is broken right now, and who has to fix it.
Role
Sole builder: data model, SQL, Excel layer, dashboard
Most recruiting dashboards report outcomes, and get read once a month. But the daily work of a TA operations role is data hygiene: requisitions nobody closed, candidates nobody moved, scorecards nobody submitted. So outcomes stay on page one, and the rest of the dashboard answers a different question: where is the data wrong, and who has to fix it.
How it is built
1 · SQLPulls requisitions, applications, stage transitions and interviews out of the source tables into one flat extract.
2 · ExcelA summary layer of live formulas turns the detail into eight aggregate sheets. Change the snapshot date in one cell and every rate, flag and SLA judgement recalculates.
3 · Looker StudioFour report pages read the summary layer, not the raw detail, so the dashboard stays fast and nobody rebuilds it each month.
Page one, executive summary. About thirty five KPIs, each with a target and a plain reading of what the number means.
Page two, ops console. SLA breach by stage, breach by owner role, a hygiene score per recruiter, and live lists of stale candidates and outstanding scorecards.
Page three, pipeline deep dive. Funnel, pass rates, applicants per requisition, source volume against source quality.
Page four, findings. Ten findings, each with the current metric, the target, an owner and an effort estimate.
The dashboard
Page 1 · Executive summaryEight headline KPIs, time to fill against target by department, and the monthly SLA breach trend. Every chart carries a one line reading underneath so the page can be understood without a presenter.Page 2 · Ops consoleDays in stage against target, breach rate split by stage and by owner role, the recruiter hygiene scorecard, and live lists of stale candidates and outstanding scorecards. This is the page the operations work actually runs from.Page 3 · Pipeline deep diveFunnel and pass rates, applicants per requisition against a healthy floor, and source volume plotted against source quality so high volume channels with low hire rates are visible.Page 4 · FindingsTen findings, each with the live metric, its target, a recommended action, an owner and an effort estimate. The bottom paragraph is the summary a director can read in thirty seconds.
What it found
9.3 days
Marketing hiring managers take 9.3 days to return interview feedback against a five day target, close to twice the next slowest department. Marketing's overall time to fill is 68 days against a 45 day target.
38% / 33%
Hiring managers breach SLA more often than recruiters do. Splitting breach rate by the role that actually holds the step changes the conversation from "recruiting is slow" to a named owner.
18 of 40
Eighteen requisitions carry at least one open data issue, and five filled requisitions were never closed in the ATS. The open requisition count leadership sees is wrong.
60 : 1
1,145 applications produced 19 hires. Data and Analytics gets 9 applicants per requisition against a healthy floor of 20, which is a sourcing problem rather than a process problem.
40 / 44
Forty candidates have not moved stage in over two weeks, and forty four scorecards are past the 48 hour SLA.
Pipeline funnel, candidates reaching each stage
Applied1,145
Recruiter screen344
HM interview186
Onsite panel98
Offer49
Hired19
The sharpest drop is the first one. Seventy per cent of applicants never reach a recruiter screen, which puts the weight of any improvement on screening capacity and on source quality rather than on later stages.
SLA breach rate by stage, against a 15% target
Onsite panel43%
Offer40%
HM interview36%
Applied34%
Recruiter screen29%
Dashed line: 15% target · Scale 0 to 50%
Every stage runs at least twice its target. The two worst are the two that depend on hiring managers and panels, not on the recruiting team.
What I recommended
A standing Friday feedback slot for the two Marketing hiring managers, with an automatic reminder at 48 hours.
Report breach rate by owner role, so escalation reaches the person who holds the step.
Book the onsite panel when the hiring manager interview is scheduled, not after it is passed.
Send the stale list to each recruiter daily, instead of keeping a shared sheet nobody opens.
Ten findings in all, each with an owner and an effort estimate. Seven are low effort.
Built on a synthetic dataset for a fictional school network, generated and then reconciled independently so every summary figure ties back to the detail rows. Candidate records use anonymous references, not invented names.
LIDERA is the United Nations' internal leadership platform for staff. Our team built an engagement plan for it. My part was the dashboard that shows senior leadership which parts of the programme are working and which part of the strategy has to change.
Role
Dashboard lead on a five person capstone team
Stack
Excel, Power BI
Scope
Attendance and post event survey data, five report pages
Client
United Nations, through IE New York College
The problem
The programme was already running events and collecting feedback, but attendance sat in one export and survey responses in another, so nobody could see the two together. The reported numbers looked healthy: 4.53 out of 5, 87.5% saying they learned something new, 91% saying they would recommend it. The number next to them was not: only about 15% of attendees leave any feedback at all.
How it is built
1 · ExcelAttendance exports and survey responses cleaned and joined on the event, with grade, region and duration normalised so they can be sliced.
2 · Power BIFive report pages: event performance, grade detail, reach and connection, in meeting duration, and attendance by continent.
3 · LeadershipEach page answers one decision: what to programme, who to invite, and when to hold it.
The report
Event performanceRecommendation rate, reach and feedback participation on the left, with every event ranked by rating and by learning rate. Both series are sorted rather than filtered, so the weakest sessions surface without anyone going looking for them.Grade detailsWho is in the room. Share of participants by grade, the same population rolled up into grade categories, and gender composition within each category. Counts are removed here; the shares are what a programming decision actually turns on.Reach and connection against ratingEach bubble is an event, sized by participation. The largest one sits at the bottom of the rating axis, which is the whole argument against optimising for turnout in one picture.Time in sessionAverage minutes stayed, by event. Duration is the closest available proxy for whether people were present or merely logged in, and it separates the formats far more sharply than the ratings do.
What it led to
Reading the dashboard against the member list and the event reports made the shape of the gap clear: the programme could see what happened inside a session, but very little about who was in the room or what happened to them afterwards. So the second half of the work was designing the intake that would fill it.
Survey instruments I designed
Member profile surveyCaptured once at onboarding or first registration. Grade, duty station, time in the system, the leadership challenges someone is currently facing, and the formats and time slots that suit them.
During event engagement surveyOne short survey at the final break, for members who stayed through most of the session. Content relevance, what they are taking away, and what the programme should cover next.
Professional development pulseEvery three months to active members. What changed in their role since the last round, and how much the programme contributed to it.
Exit promptOne tap when someone leaves a session early, so the reason is recorded instead of inferred.
Senior manager priority surveySent to P4 and above. What managers want developed in their teams over the next two years, and what would make it easier for those teams to take part.
How it reports
A standing readout for senior leadershipThe dashboard is the reporting surface rather than a one off deck. Each cycle it answers the same three things: what the data shows now, what moved since the last cycle, and which programming decision that points to.
A loop back to membersEach session opens with a short recap of the last one, and a "what we heard" report shows members how their input reshaped topics and speakers.
Why that matters for the dataVisibility is what makes the next round of collection worth doing. People answer surveys when they can see the previous answers changed something.
Shown as rates and averages only. Headcount figures are withheld, and the member reach tile is redacted in the screenshot above.
A time series study with a narrow question: if the coal share of the United States power grid falls, does CO2 intensity fall with it, and how quickly?
Role
Team of five. I ran the data analysis end to end
Stack
SPSS, R
Data
31 annual observations, 16 variables
Methods
ADF and KPSS, ACF and PACF, ARIMA, ARIMAX
The question
Three hypotheses: that a lower coal share means lower CO2 intensity in the same year and up to two years later; that the drop is larger when coal is replaced by renewables than by gas; and that the effect survives controls for demand, development and the policy shocks of 2010 and 2020.
How it was modelled
The dependent variable is roughly normal, with skewness of -0.54 and excess kurtosis of -1.16, so no transformation was warranted on distributional grounds. The series drifts downward with level shifts, the ACF decays slowly and the PACF cuts off at lag one, which points to differencing once rather than to an autoregressive term.
The independent variables are heavily collinear. Fossil and low carbon shares both correlate with CO2 above 0.98 in absolute terms, and the coal fraction at t, t-1 and t-2 all correlate above 0.96. Putting them in together makes the coefficients unstable, so the specifications were kept parsimonious: one fuel mix proxy, one structural control, plus the policy dummies. Models were then selected on out of sample RMSE and MAE with residual diagnostics, not on raw correlations.
Model
Transformation
AIC
BIC
Remark
ARIMA(0,1,0) with drift
None
2593.4
2597.6
Random walk with drift, best on the raw series
ARIMA(0,2,1)
Box-Cox, λ = 0.353
-0.63
3.53
Selected. Better fit after variance stabilisation
The analysis
Model selectionauto.arima settles on ARIMA(0,1,0). Ljung-Box p = 0.118 and a clean residual ACF, with (1,1,0) and (0,1,1) tried and rejected.ARIMAX resultsGDP per capita positive and strong, human rights index negative, mean absolute percentage error around 4.4%.Residual diagnosticsSpread is stable but the errors arrive in patterns. This is the limitation the write up leads with rather than buries.Forecast against actualHeld out test set, RMSE 2.37 billion and MAE 1.92 billion in CO2 units.
What it found
4.4%
The ARIMAX model tracks the emissions trend on a held out test set with a mean absolute percentage error of about 4.4%. RMSE 2.37 billion and MAE 1.92 billion in CO2 units.
GDP +
GDP per capita has a strong positive effect on emissions across every specification. Over this period, growth has not been decoupled from emissions.
HRI −
The human rights index is negatively associated with emissions. Stronger institutions line up with lower emissions, although the design supports association rather than cause.
Limitations, stated plainly
Residual autocorrelation, with a Ljung-Box p below 0.001, says the model still omits time dependent structure.
The predictors are too collinear for any single fuel share coefficient to be read as an effect size.
Thirty one annual observations is a short series for this many candidate regressors.
The honest reading is narrower than the headline: growth still drives emissions and governance tracks against them, so the lever is not the fuel mix alone.
Coursework in quantitative analysis, presented with four classmates. The analysis was mine: stationarity testing, model selection, the ARIMAX specifications and the residual diagnostics, in R with forecast, tseries, lmtest and car. Original dataset HRIDATA-2.sav.