A schema + range + enum data contract with drift detection for tabular and sensor (rosbag) batches. It catches the batch that still parses but whose meaning changed - a firmware unit switch (Celsius to Fahrenheit), a new category, a sensor dropout - exactly what a naive did-it-parse gate ships. On the committed demo batch: the naive check reports 0 issues; the contract reports 36 violations plus drift (joint_temp mean 45 to 112, z=14.9) on the same data. Runs as a CI gate and names the cause, not the symptom; the clean batch passes untouched. Public code: github.com/jigonyoo/data-contract-guard
0
4
Raw lead and form submissions become CRM-ready records: normalized, classified, scored hot/warm/cold, with a staff summary and reply draft - then routed by a verification gate. Trustworthy leads auto-flow to the CRM; uncertain ones go to a human-review queue. An LLM can label a lead; the value is knowing which to auto-route and which a human must see first - unreachable hot leads and ambiguous spam get caught, not dropped. Runs fully offline (deterministic) or with OpenAI. Public code: github.com/jigonyoo/ai-intake-qualifier
0
5
A FinOps pass over an LLM usage log: it reads a month of calls plus a pricing table and reports how much spend is recoverable - with the dollars behind every recommendation. On the synthetic demo month: 38.9% of spend recoverable, and the single biggest win (moving one classify workload to a smaller model) worth $16.28 on its own. The dollars are small because the demo log is small; the percentages and the ranking port directly to a real invoice. Every figure derives from pricing.json - auditable and reproducible, runnable as a spend gate. Public code: github.com/jigonyoo/llm-cost-optimizer
0
7
Messy sales CSV in, decision-ready report out: cleaning with a data-quality log, KPIs with month-over-month analysis, and an automated report with charts. Anomaly detection is baked into the report - outliers, revenue mismatches and MoM spikes are flagged where they happen, so it is not a pretty-but-blind dashboard. Every cleaning step is logged, so you can see exactly what was fixed, dropped, or flagged before any number reached a chart. Public code: github.com/jigonyoo/analytics-pipeline
0
9
A hardened MCP server exposing read-only order tools to an AI agent - treating every tool argument as untrusted, because it is LLM-generated. A naive string-concat server leaks the whole table on a classic OR-1=1 injection; this one blocks 5/5 injection attempts with zero functionality lost. Validation + parameterized SQL + a read-only connection, proven by a contract suite that also demonstrates the naive version really leaks. Tool args are a network boundary - most MCP demos skip that. Public code: github.com/jigonyoo/mcp-server-prod
0
9
Golden-set regression testing for LLM and extraction pipelines: scores the pipeline against 25 labeled rows, uses LLM-as-judge for fields where exact match is unfair (the judge itself is checked against human labels), and fails CI when quality regresses. It caught a real bug during development: an amount parser grabbed a store number instead of the dollar amount - field accuracy read 48%; after the fix, 100%, and the harness proves it instead of me claiming it. Offline, no API keys. Public code: github.com/jigonyoo/eval-harness
0
10
One lucky accuracy score is not evidence. This churn classifier is evaluated the way I'd want to be audited: leakage-safe split (scaler fit on training rows only, 1,125 train / 375 held-out), a majority baseline it must beat, and five-fold cross-validation. Committed results: held-out ROC-AUC 0.7982 vs a 0.5000 majority baseline, 5-fold CV 0.819 +/- 0.0298 - beats the baseline, stable across folds. The model card also says what the model cannot tell you. The deliverable is not the classifier; it is an evaluation you can trust enough to make a decision with. Public code: github.com/jigonyoo/ml-churn-pipeline
0
12
A drop-in guardrail layer for LLM apps: the input guard blocks prompt injection and jailbreak attempts before they reach the model; the output guard redacts leaked secrets and PII before they reach the user. Measured on the committed sample battery: 23/23 attacks blocked, 0/17 false positives on benign lookalike prompts, 10/10 leaked secrets redacted with 0/6 clean outputs mangled. A guard that blocks real users is just a different kind of outage - so the false-positive number matters as much as the catch rate. Public code: github.com/jigonyoo/llm-guardrails
0
13
Invoices, purchase orders and bank statements become structured records only after deterministic math checks - line totals, subtotal sums, balance reconciliation. Anything that fails routes to needs_review with the exact reason, never silently shipped. Public code: github.com/jigonyoo/invoice-to-structured
0
14
Document Q&A that cites its evidence - and refuses what the corpus cannot support. Committed evaluation on a labelled set: retrieval recall@3 1.0, refusal accuracy 1.0, grounded rate 1.0. Public code: github.com/jigonyoo/rag-grounded-qa
0
12
My full data & AI-automation portfolio in one page — validated pipelines with a built-in verification layer: document→structured (CSV/JSON), grounded RAG document Q&A (citations, no hallucination), analytics automation, honest ML prediction, retail data mining, field-photo inspection reports, and a live sports-data web app. Live demos + open GitHub code: jigonyoo.vercel.app