Projects · hr-ai-portfolio

HR × AI Portfolio — From Manual Work to Decision Systems


HR automation built across recruiting, operations and analytics during my time at CMoney. Turning high-frequency, judgment-heavy work into analyzable, traceable, decision-supporting systems — five flagship builds, each with its architecture flow.

Role
HR AI Transformation (HR Manager · builder)
Date
Jun 2026
Methods & tools
Python · FastMCP / MCP Protocol · LLM integration · DuckDB · Apache Parquet · PostgreSQL / SQL Server · Google OAuth / RBAC · Google Apps Script · GA4 · Vibe Coding
HR Data Lake · system architecture (flagship build)

Positioning

I’m not “an HR person who uses AI” — I’m an HR person who can build the AI tools.

At CMoney, in an “HR Builder × PM” role, I took the high-frequency, repetitive, judgment-heavy work across recruiting, operations and analytics and re-architected it into systems, one at a time. The five flagship builds below are real, mostly live, and each comes with its architecture flow.

Stack: Python, FastMCP / MCP Protocol, LLM integration, DuckDB, Apache Parquet, PostgreSQL / SQL Server, Google OAuth / RBAC, Google Apps Script, GA4, Vibe Coding.

Flagship 1 · HR Data Lake

Query HR data in natural language — a data lake bridging SQL Server and an LLM.

Problem: HR data lived in two SQL databases. Every time a leader asked about “recruitment conversion” or “talent structure,” someone had to pull the data and build a report by hand — slow, and no real-time decisions.

Architecture

SQL Servertwo HR databases
Parquet + DuckDBdaily scheduled extract
MCP ServerGoogle OAuth · 5 tiers
LLMnatural-language query

Outcome: 5-tier OAuth role access, daily scheduled extraction, and the system auto-produces 3 email reports (CHRO daily situation room / data-lake health / data-access audit) plus 1 interactive decision dashboard.

Why it’s the flagship: this isn’t a script, it’s a full data architecture — from data engineering (Parquet / DuckDB pipeline) to access governance (OAuth RBAC, five tiers) to LLM integration. It shows I can design “HR data infrastructure” independently, not just use off-the-shelf tools.

Flagship 2 · Résumé-screening agent

End-to-end résumé screening — with compliance governance and a human decision gate.

Pipeline

Gmailrésumé intake
PDF parsestructured extraction
six-axis scoreLLM evaluation
PostgreSQLrecord retention
Google Chatnotify for human review

Governance by design: data-protection control points are built into the flow so résumé handling meets Taiwan’s PDPA; the AI only does an initial score — whether a candidate advances, and the final hire, are the recruiter’s call. AI assists; it doesn’t replace people.

Signal: most people building recruiting automation just want “fast.” I built PDPA compliance and a human decision gate in at the same time — which means I understand the governance and risk of landing AI, not just the efficiency.

Flagship 3 · Seating & extension system (live)

Making seating data live and true — 593 seats · 457 employees · 16 offices.

Problem: the old system was a hand-drawn seating chart in Google Sheets, with a separate Google Form for seat changes. The form was hard to parse and a hassle, so most people moved without filling it in; the chart drifted out of date and admin had to verify floor by floor.

Architecture

HR master datadaily sync
Google Sheetsbackend data layer
GAS web apporg login · SVG floor plan
front enddrag to move · instant search

How it fixes it: drop a seat and the change is done — no form — and the person is notified automatically. Daily sync from HR master data: new hires land in “to be assigned,” leavers auto-release the seat and keep the extension, no manual upkeep. An SVG floor plan maps 1:1 to real desks; every change is logged.

SVG floor plan · maps 1:1 to real desks (screen shows sample data)
Instant search · jumps floor and highlights the seat
Vacancy / talent-density dashboard · occupancy and headcount

Signal: the value here isn’t a technical flex — it’s fixing “data drift” at the source. I saw the problem wasn’t “the form is hard to fill,” it was “if a seat move needs an extra step, people won’t do it,” so I built the change into the move itself.

Flagship 4 · HR-ops email automation platform (live)

Full-lifecycle automation of 9 HR notification emails — with 7 security rules built in.

Problem: routine HR emails (onboarding, departure, unpaid-leave return, seniority/leave, etc.) ran on Excel + VBA scheduling (.xlsm) — hard to maintain, no access control, no audit trail, hard to preview before sending, high misfire risk.

Architecture

SQL Serverpersonnel list query
email enginePython · job-based config
web platformOAuth · scheduling · audit
SMTPpreview → dry-run → send

Each email is a job directory (job.json defines subject / recipients / cron schedule + main.sql list query + template); the engine re-reads config on every run, so changes need no restart.

Safe-send pipeline

monitorMonitor
previewnever persisted
dry-runone-time token
test sendto yourself
live sendrole-gated + confirm

Outcome: 9 HR emails live, 3-tier role permissions, security rules S1–S7, 100% of write operations audited. Secrets only in environment variables, service bound to localhost, live send needs role permission + a one-time dry-run token + a confirm checkbox, the audit log is append-only (counts only, never list contents), and writes to the production DB are never automatic.

Job overview · 9 notification emails and the automation traffic-light
Job detail · schedule, recipients, safe-send pipeline (sample addresses)

Engineering-grade governance signal: I built “HR operations” as software that fits pre-IPO internal-control principles — the intersection of HR and security governance.

Flagship 5 · Tarot recruiting landing page

Creative × data × employer brand, in one build.

Concept: map 79 Osho Zen cards onto CMoney’s three core values to build an interactive recruiting experience — candidates draw a card, get to know the culture, and the page does employer-brand communication and data collection at once.

Data design

awarenessAwareness
draw a cardEngagement
value matchConsideration
104 applyConversion

Deployed on GitHub Pages, with GA4 tracking a four-stage conversion funnel and an integration with the 104 recruiting platform to close the loop. (A separate standalone version, the Breakdown Thinking Card, is also live.)

Signal: this build shows creativity (turning tarot into employer-brand narrative), data (GA4 funnel design) and delivery at once — turning “soft culture communication” into measurable conversion data.

Methodology

HR transformation shouldn’t be a one-off project — it should be a capability that keeps running.

1 · inventorypain points & data sources
2 · prioritizeby ROI & feasibility
3 · prototypefast, small-scope test
4 · measuretime / quality / decisions
5 · operationalizeturn into a standing mechanism

The value of this method is that HR transformation stops depending on a single spark of insight or personal heroics, and becomes a capability that’s repeatable, handoff-able and scalable. Leading a larger HR team, I’d make this the team’s standard operating process — the core of my move from “someone who builds tools” to “a manager who builds capability.”

Outcome

HR Data Lake — 5-tier OAuth access, daily scheduled extraction, 3 automated reports + 1 interactive decision dashboard
Seating/extension system live — 593 seats · 457 employees · 16 offices; a seat move updates the record instantly
HR-ops email platform live — 9 notification emails, 3 permission tiers, S1–S7 security rules, 100% of writes audited
Résumé-screening agent — end-to-end automation with PDPA compliance controls and a human decision gate built in