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 Technology Co., Ltd. Turning high-frequency, judgment-heavy work into analyzable, traceable, decision-supporting systems. Six 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

Plenty of HR people use AI. I want to be the kind who can build the AI tools.

At CMoney Technology Co., Ltd., 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 six 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: it’s a full data architecture, running from data engineering (Parquet / DuckDB pipeline) through access governance (OAuth RBAC, five tiers) to LLM integration. It shows I can design a whole “HR data infrastructure” independently, end to end.

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, and whether a candidate advances, and the final hire, are the recruiter’s call. AI assists, and it can’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. That means what I weigh is the governance and risk of landing AI; efficiency is only one piece.

Flagship 3 · Seating & extension system (live)

Making seating data live and true: 593 seats · 457 people · 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 is fixing “data drift” at the source. What I saw was simple: if a seat move needs an extra step, people won’t do it. So I built the change into the move itself, one drag and drop and the record is right.

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, standing at 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 Technology Co., Ltd.’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; at its core it turns “soft culture communication” into measurable conversion data.

Flagship 6 · Recruiting dashboards (funnel analysis × referral tracking)

Two independent single-file HTML dashboards, one for the conversion funnel on open applications, one comparing generations of the internal-referral program. Both ship as a plain file handed to HR and hiring managers: download it, open it, no server required.

Recruiting funnel & performance: pulls from the recruiting database’s eight core tables and mapping tables (applications, status workflow, job postings, departments, hire records), rolling apply → engage → screen → hire into one funnel, benchmarking conversion rate and time-to-fill side by side across departments and job postings, and cross-referencing view/apply counts from the 104 job-board back office as an external signal.

Architecture

recruiting DB exportapplications / status flow / hires
single-file HTMLrendered with Chart.js
filtersdate / job / department
Gemini APItwo-stage AI insight

How it works: every KPI carries a “data dictionary” tooltip. Hover it and you see exactly which table, which field, and which join produced that number, so a non-technical manager can verify it rather than trust a black box. The AI analysis runs as a two-stage conversation: the first pass produces insights, the second continues the same thread to generate action items, so long output never gets truncated; only aggregated statistics go to the model, never individual candidate data.

Referral-channel tracking dashboard: the internal-referral bonus scheme has gone through three rule generations, legacy, current, and a “D” variant. This dashboard puts all three generations’ referral records on one report, using hand-rolled stacked bars, a radar chart, pie charts, a monthly trend and a pivot heatmap to compare channels, tenure bands and generations on referral outcomes and retention.

How it works: it doesn’t lean on any charting library at all. Every stacked bar, radar, pie, monthly trend and heatmap is SVG written by hand. It also ships CSV import/export with a downloadable template, so records from different generations and sources can be pasted in and compared. A “data provenance” footnote spells out, in plain text, that “when the referral happened” and “start date” are two different time bases, so a reader doesn’t misread one as implying the other.

Outcome: neither dashboard is a templated shell. The funnel one labels every number with where in the database it came from; the referral one hand-builds its own chart engine. What I actually care about is whether a manager would trust the number enough to act on it.

Methodology

HR transformation should stop being a one-off project and become 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. It’s 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 people · 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
Recruiting dashboards: data-dictionary tooltips expose every calculation's DB source, two-stage AI insight, and a hand-built SVG chart engine comparing three referral-program generations