06, Work
Lead Data Architect, AI Product & Systems, Insaito, Inc. (operating brand Automatan) · Jan–Mar 2026. Everything below is what I actually built, debugged and shipped, the detail a CV line can't hold. No proprietary code, prompts, client data or business figures appear below; what's shown is the engineering and process, in the same spirit as the rest of this site.
Automatan's product scrapes target-company websites against a set of criteria, scores the results with an LLM, and generates outreach material from those scores. Before this role, exactly one vertical worked end to end. The job was to replicate that pipeline for new markets, each defined by criteria written by non-technical product and sales staff, not engineers, while the inherited system underneath had unresolved reliability problems: duplicate scrape targets, unreliable failure counts, and, discovered mid-tenure, a systematic LLM hallucination pattern in the scoring stage itself.
I extended the pipeline to four production verticals (E-commerce, Consulting, Business-Coach and Recruitment, alongside the pre-existing Speaker vertical), while root-causing and fixing the data-integrity and model-reliability bugs underneath all of them.
Ingestion & Data Integrity
Canonical-domain deduplication fix (http/https and www variants were silently counted as separate scrape targets). Fixed a progress-tracker that double-counted the same failed site across multiple report files. Built a new tool classifying every scrape failure by HTTP status code and network-error type, to separate "the target is genuinely unreachable" from "our pipeline is broken."
LLM Inference & Scoring
Refactored a Pub/Sub-driven, Triton-based inference server to fix a timestamp bug and a crash on the failure path. Root-caused a scoring bug where the parser checked for a field the prompt never produced. Separately traced a recurring hallucination pattern to a direct contradiction between the system prompt (forbidding extra keys) and the user prompt (demanding fields outside that schema), diagnosed against production logs, then shipped the fix.
Evaluation Methodology
Designed a two-stage evaluation methodology distinguishing whether the model answered a criterion correctly from whether the downstream parser interpreted that answer correctly, with a gold-labeled test-set plan and per-criterion confusion-matrix tracking. Cross-checked scoring outputs against a second reviewer's independently, surfacing concrete reasoning contradictions the model itself had missed.
Schema & Architecture
Led the migration from prose-described JSON output to OpenAI's enforced strict: true JSON Schema across four scoring and generation workflows, eliminating a whole class of parsing errors. Refactored the output router into per-market modules sharing a common base, and implemented a previously-empty email-publishing function end to end, with matching per-part output structure.
Integrations & Tooling
Built an OAuth2 self-refreshing token client and field-mapping pipeline to migrate lead data from Streak into Zoho CRM. Added ThreadPoolExecutor-based concurrency to the email-generation stage. Wrote a small monitoring utility for checking pipeline task status without switching between server tabs, and shared it with the team.
Cross-Functional QA
Acted as the technical bridge between engineering and the non-technical product/sales teams who wrote the scraping criteria: reviewing prompt specifications for internal contradictions before they hit production, debugging output errors end to end, and auditing AI-generated outputs against ground truth. Authored the internal runbooks colleagues used for scraping and CRM operations.
Every figure below is quantified against a specific fix, run, or log, not a general impression.
AI-assisted, honestly. Cursor was my standing development tool from day one of the role. AI-assisted coding was the working method throughout, not an exception applied to a few files, I don't have file-by-file attribution of what the agent generated versus what I wrote by hand, and I'd rather say that plainly than imply more precision than I have.
Debugging as the day job. Most of the depth above came from tracing production failures back to a root cause, a contradiction in a prompt schema, a double-counted CSV row, an off-by-one in a progress tracker, rather than from designing a system from a blank page. The existing architecture (GCP-native, Pub/Sub-driven) was inherited; my job was to extend it reliably and fix what didn't hold up at scale.
What this page leaves out, deliberately. No prompts, scoring criteria, source code, client or target-company names, or business figures appear anywhere on this page, only the engineering problem, the method, and the measured outcome.