Inspiration
Enterprise data migrations are rarely clean ETL jobs. Legacy files often contain inconsistent organization names, old abbreviations, translations, duplicates, malformed dates, missing fields, and values that can be interpreted in more than one valid way.
Traditional rules are often too rigid for these cases, while pure LLM automation can be too eager to guess and silently change meaning.
SchemaPilot was built around one principle:
AI reasons. Policy decides. Humans approve ambiguity. Every source row is accounted for.
What it does
SchemaPilot is an agentic data-migration workflow for messy enterprise employee data.
A user can upload a CSV or TSV file. SchemaPilot then:
- Profiles the schema, duplicates, and dates.
- Uses specialist Gemini agents only where semantic reasoning is needed.
- Maps organization labels against an authoritative organization master.
- Detects ambiguous dates without guessing.
- Applies a deterministic risk gate.
- Pauses for human approval when a decision could change source meaning.
- Transforms only safe records.
- Rejects unsafe records with explicit reasons.
- Reconciles every source row to ensure nothing silently disappears.
In our 30-row demo:
- 30 source rows
- 22 migrated safely
- 8 controlled rejections
- 0 silent data loss
- 30/30 rows accounted for
Rejected records remain visible with reasons such as INVALID_DOB, DUPLICATE_EMP_CODE, MISSING_FULL_NAME, and unresolved organization mappings.
How we built it
SchemaPilot is built with Google ADK 2.6.3 and Gemini 3.5 Flash on Vertex AI.
The workflow combines deterministic and agentic components:
- deterministic schema, duplicate, and date scanners
- an Organization Mapping Agent
- a Date Interpretation Agent
- an authoritative organization-master tool
- a deterministic risk router
- human-in-the-loop approval
- deterministic transformation
- output verification and reconciliation
The Organization Mapping Agent must query authoritative master data before assigning an organization ID. It may reason about translations, abbreviations, legacy labels, and semantic equivalents, but it cannot invent an ID.
The frontend is built with Next.js 15, React, and TypeScript.
Both the ADK backend and frontend are deployed on Google Cloud Run, with Gemini accessed through Vertex AI.
Challenges we ran into
The hardest problem was deciding where AI should have authority.
For example, 01/04/1990 can mean April 1st or January 4th. Allowing a model to choose automatically could silently change employee data.
Organization mapping has a similar problem: a value can be semantically related to an organization without actually representing that organization.
We therefore separated semantic reasoning from safety policy.
Gemini interprets. Deterministic logic decides what is safe. Humans authorize ambiguity.
We also had to ensure that rejected data was never confused with lost data, so the workflow explicitly reconciles every source row.
Accomplishments that we're proud of
- Real CSV/TSV upload instead of a fixed demo-only dataset
- Full 7-stage agentic migration workflow
- Specialist Gemini agents instead of one general-purpose prompt
- Authoritative master-data grounding
- Human approval before unsafe transformation
- Structured controlled rejection reasons
- Zero silent data loss
- 30/30 source rows reconciled
- Idempotent safe replay
- Deterministic ADK safety evaluation
- Public frontend and backend deployment on Google Cloud Run
What we learned
The biggest lesson is that trustworthy enterprise agents need clear authority boundaries.
LLMs are excellent at semantic interpretation, but correctness-critical decisions should not depend only on model confidence.
A safer architecture combines:
- AI for semantic reasoning
- authoritative tools for grounding
- deterministic policy for safety
- humans for ambiguous decisions
- reconciliation for final proof
We also learned that rejected is not lost. A rejected row with an explicit reason is a valid and auditable migration outcome.
What's next for SchemaPilot
Next steps include:
- durable migration artifacts in cloud storage
- persistent migration jobs
- database and ERP connectors
- configurable source-to-target schemas
- larger-file streaming
- enterprise approval workflows
- audit dashboards
- expanded safety regression suites
The core principle will remain the same:
Automate what is safe. Escalate what is uncertain. Account for everything.
Log in or sign up for Devpost to join the conversation.