// Select AI Tool
💼LinkedIn 🐙GitHub 📘Facebook 📸Instagram 𝕏X/Twitter
// Quick AI
🤖
JEM-BOT
Google Gemini · Online
// Claude is thinking…
// JAMES_OS v4.0 · MANILA_SHELL
JAMES_OS v4.0 · Malate Manila PH
Type "help" for commands.
james@manila:~$
Why Hire ⚡ Services About Experience Projects ⚡ Automation Skills 🤖 Ask James's AI Contact
💼 🐙 📘 📸 𝕏
▶ Hire Me
// SYSTEM ONLINE
RUNNER: JAMES_EARL_M
CLASS: AI_AUTOMATION_VA
LOC: MALATE.MANILA.PH
STATUS: OPEN_TO_WORK
TOOLS: N8N · ZAPIER · CLAUDE
BUILD: v5.0
Open to Work · Available Now · Contract ended May 2026 · Actively Applying
🕐 --:--:-- PHT
Hire Me

AI Automation VA · n8n · Zapier · Claude API
Currently building:

I build AI workflows that replace repetitive work — n8n pipelines, Zapier automations, Claude-powered agents, and Notion systems. Clients save 10–40 hours a week. Based in Manila, working globally.

▶ Hire Me 💼 LinkedIn
2+
Years Active
3
Companies
BS IT
Grad 2025
LLM
AI Analyst II
00 · For Recruiters

Why Hire James?

Hiring James means your team stops doing repetitive work manually. He maps your process, picks the right tools, builds the automation, and hands it over — running and documented.

He's shipped a production-grade AI support router in n8n (16 nodes, 3 AI providers, circuit-breaker resilience), a React + Supabase booking app, and an offline Flutter AI assistant — all from scratch. He doesn't just configure tools, he engineers systems.

Builds Real Automationsn8n workflows, Zapier zaps, Claude API integrations — production-ready, not just tutorials. Saves clients 10–40 hrs/week.
🤖
AI-Native, Not AI-AdjacentEngineered 200+ prompt templates at Innodata's LLM pipeline. Knows how to make AI do exactly what you need it to do.
🌏
Remote-Ready, Global HoursBased in Manila PHT — overlaps with US, AU, and EU business hours. Async-first, fast communicator, available now.
📋
Hands-Off DeliveryDelivers documented, tested automations your team can maintain. Not a black box — he explains what he built and why.
James Earl Medrano
James Earl Medrano
AI Ops Analyst · BS IT 2025
Open to WorkManila, PHLLM Specialist
Availability
Full-time positions
Remote & hybrid roles
Freelance contracts
Can start immediately
// Quick Facts
LocationMalate, Manila PH
DegreeBS Information Technology
SchoolPLM Intramuros · 2025
Latest RoleAI Analyst II (LLM)
EmailWorkwitheaaarl@gmail.com
Phone+63 976 318 9033
GitHubgithub.com/youngNwis31
01 · Services

What I Automate For You

These are the exact workflows I build for clients. Each one replaces hours of manual work with a system that runs itself.

📧
Email Triage & Auto-Response
Incoming emails classified by urgency, routed to the right person, and draft replies generated by AI — before you even open your inbox.
n8nClaude APIGmail
⏱ Saves 5–10 hrs/week
🎯
Lead Capture & CRM Routing
Form submissions, social DMs, or website leads automatically scored, enriched, and pushed to your CRM — with a Slack alert for hot leads.
ZapierAirtableSlack
⏱ Saves 8–15 hrs/week
📊
Report Generation Pipeline
Weekly performance reports written by AI from raw data — pulled from Sheets or Airtable, formatted, summarised, and emailed to stakeholders automatically.
n8nClaude APIGoogle Sheets
⏱ Saves 4–8 hrs/week
✍️
Content Creation Pipeline
Topic idea → AI drafts blog post, social captions, and newsletter — all in one workflow. Your content calendar runs on autopilot with human review built in.
n8nClaude APINotion
⏱ Saves 6–12 hrs/week
🔗
App-to-App Data Sync
Keep your tools in sync without copy-pasting. Notion ↔ Airtable, Shopify → Sheets, Typeform → CRM. Real-time or scheduled, with error handling and retry logic.
Zapiern8nWebhooks
⏱ Saves 3–6 hrs/week
🚀
Client Onboarding System
New client signs contract → welcome email sent, Notion workspace created, onboarding tasks assigned, kick-off call booked — all within 2 minutes, zero manual steps.
n8nNotionCalendly
⏱ Saves 2–4 hrs/client
// My Tool Stack
n8n
Workflow engine
🔗
Zapier
App integrations
🤖
Claude API
AI engine
🧠
OpenAI
GPT fallback
📋
Notion
Databases & docs
📊
Airtable
Structured data
📈
Google Sheets
Reports & data
✉️
Gmail / Slack
Comms layer
Ready to automate your workflow?
Available for freelance projects, part-time VA roles, and full-time remote positions. PHT timezone, overlaps US/AU/EU hours. Available immediately.
✓ Freelance projects ✓ Part-time VA ✓ Full-time remote
▶ Let's Talk
01 · Profile

About
James Earl

I'm James Earl Medrano, a BS IT graduate from Pamantasan ng Lungsod ng Maynila with expertise spanning AI operations, IT infrastructure, and financial technology.

My career spans cybersecurity environments, international financial IT operations, and cutting-edge LLM development — a uniquely versatile skill set for modern tech roles.

Driven by the intersection of AI and practical IT — building systems that are both intelligent and reliable, from Manila to wherever the work takes me.

📌 Current status: Left Innodata Knowledge Services in May 2026 after contract completion. Actively interviewing for AI operations, LLM, and IT roles. Available to start immediately.

// Connect on LinkedIn, GitHub, or any social below.
Prompt EngineeringLLM EvaluationData Annotation Technical SupportPower BIAdvanced Excel CRM SystemsNetwork OpsCybersecurityAI QA
0
Years Experience
0
Companies
2025
IT Graduate
LLM
AI Analyst II
// Skill Radar
02 · Career

Work Experience

Jan 2026 – May 2026Most Recent
A.I. Analyst II (LLM)
Innodata Knowledge Services · Mandaue City, Cebu
  • Engineered and iterated on 200+ prompt templates weekly, improving LLM output accuracy and reducing hallucinations flagged during QA cycles.
  • Delivered high-quality data annotation and side-by-side model comparisons for supervised fine-tuning pipelines used in production LLM training.
  • Identified and documented model vulnerabilities during adversarial testing, with findings directly incorporated into model behavior improvements.
  • Maintained top-tier annotation quality scores across all evaluation batches, consistently meeting client accuracy benchmarks.
LLM OptimizationPrompt EngineeringData AnnotationAI QA
Jan 2025 – Jan 2026IT Operations
IT Support & Case Resolution
Alorica Teleservices · Cyberpod Centris, Makati
  • Resolved IT-driven cases for an international credit card company's Asia-Pacific operations, handling sensitive financial data for thousands of cardholders.
  • Executed user account security actions (tracing, freezing, data deletion) in compliance with data privacy regulations, reducing exposure risk for compromised accounts.
  • Built Power BI dashboards and Advanced Excel reports that surfaced operational trends, adopted by the team for weekly performance reviews.
  • Maintained and updated CRM records to ensure audit-ready data privacy compliance across all case resolutions.
Power BIAdvanced ExcelCRMData Privacy
Feb 2024 – Jul 2024Cybersecurity
Jr. Technical Support
BESPOKE IT Project Corp. · GC Corporate Plaza, Makati
  • Deployed and configured end-to-end secure environments — workstations, POS systems, servers, and firewalls — for enterprise clients in Makati's CBD.
  • Diagnosed and resolved hardware and software incidents with fast turnaround, directly reducing client downtime and escalations.
  • Authored technical documentation and troubleshooting runbooks that standardized procedures across the support team, cutting repeat issue resolution time.
CybersecurityServer ConfigFirewallPOS Systems
03 · Projects

Ongoing
Builds

🎾
CourtBook — Tennis Court Booking App
// Full-Stack Web App · React + Supabase

A full-stack booking platform for tennis courts across Metro Manila. Browse 18 real courts on an interactive map, book a 1-hour slot, and get AI-powered playing tips, smart price alerts, and personalized court recommendations — all in Filipino or English.

Live18 Real CourtsAI-PoweredFIL/EN
User Flow — How It Works

A player opens the app, browses or searches courts by city, surface, or distance, taps a court to see live time-slot availability, picks a date and hour, adds optional equipment, then confirms the booking — all backed by Supabase auth and row-level security so each user only ever sees and manages their own reservations.

CourtBook.fig — Real Theme Colors100%
1Home
Find your perfect court
Search by name, location...
AllHard
Real emerald-teal gradient hero, dark navy background
2Detail
Rizal Memorial Tennis Center
Malate, Manila
AI Playing Tips
Real purple "AI Playing Tips" card matching the live page
3Weather
Rain expected
AI Availability Heatmap
Live weather card + busy/quiet heatmap, real colors
4Booking
9:00 AM
10:00 AM
11:00 AM
12:00 PM
Two-column hourly slot grid exactly as on the live site

// Colors pulled directly from the live deployed app, not approximated

What It's Built With
React 19TypeScriptViteTailwind CSS v4React Router v7Supabase (Postgres)Supabase Auth + RLSLeaflet.jsOpen-Meteo APINetlify
AI court recommender quiz + smart price alerts
Google OAuth + email auth, row-level security
Dark mode, achievement badges, player matchmaking
GPS distance sorting + court comparison tool
What I Learned

The hardest part wasn't the tech — it was designing for real-world messiness: courts with inconsistent data, users who book then no-show, and a map that needs to feel fast on low-end Android devices. I learned that Supabase row-level security needs to be planned from day one (retrofitting it is painful), and that shipping a real live demo beats a perfect prototype every time. I'd add server-side caching for court availability next.

🏍️
Arangkada AI — Rider Road Assistant
// Offline-First Mobile App · Flutter + 3-Tier AI

A Flutter navigation app built for Filipino motorcycle riders on Grab, Angkas, FoodPanda, JoyRide, MoveIt, and Lalamove — fully offline-capable maps, a 3-tier AI assistant, hands-free voice commands, a trip-worth fare estimator, and live flood alerts, all built on a ₱0 budget using free and open-source tools.

v0.05Offline-First3-Tier AI₱0 Budget
User Flow — How It Works

A rider opens the app to a live map with weather and flood markers, then searches a destination or taps the mic for a voice command. From there it's turn-by-turn navigation with flood-zone warnings, with the AI assistant on hand for anything about routes, traffic rules, or earnings — and the fare estimator ready before accepting a trip, to confirm it's actually worth taking.

Arangkada.fig — Malate Street Style (Real Theme)100%
1Home
map + flood pins
Saan ka pupunta, rider?
START NAVIGATION
Real neon mint #00FF94 primary button, dashed offline-tile map style
2Fare
Distance
4.2 km
Fuel cost
₱18.50
SULIT!
Real SULIT/PUWEDE NA/LUGI verdict badge in neon mint
3AI Chat
Knowledge Baseoffline
Gemini AIonline
Local AIon-device
Real 3-tier source badges: cyber cyan, neon mint, electric amber
4Safety
Laging mag-helmet at safety gear
SEND SOS
Real hazard-red #FF3D3D SOS button, Taglish safety copy

// Colors pulled directly from malate_colors.dart in the real source code

3-Tier AI Fallback Architecture
1. Knowledge Base — 100+ PH rider topicsInstant · Offline
↓ no match
2. Gemini Flash — cloud AI responseBest Quality · Online
↓ offline / rate-limited
3. On-device LLM — Qwen2.5-0.5BStreaming · Offline
↓ not downloaded
4. Rule-based fallbackAlways Works
What It's Built With
Flutter / DartOpenStreetMapflutter_mapOSRM RoutingNominatimSQLite (sqflite)Gemini 2.0 FlashQwen2.5-0.5B GGUFspeech_to_textOpen-Meteo API
Offline-first: maps, search, and AI work with zero signal
Voice commands for nav, ride logs, hazards, earnings
3 flood severity levels with live map markers
Storage optimized from ~2.1GB down to ~280MB total
What I Learned

Building a 3-tier AI fallback chain from scratch taught me that graceful degradation is a first-class feature, not an afterthought. Compressing 2.1GB of offline map data to 280MB required deep work on tile pyramid math and SQLite optimization — skills I didn't expect to need for an AI project. The biggest lesson: users in low-signal areas don't care about AI sophistication, they care about reliability. That constraint made the architecture stronger.

// Case Study · Flagship Build

Arangkada AI

An offline-first AI co-pilot for Filipino motorcycle ride-hailing riders — built solo on a ₱0 budget, with a three-tier AI brain that keeps answering even with no signal, in the rider’s own Taglish.

The problem

Motorcycle ride-hailing riders work long hours on thin margins — yet the tools they use are generic, English-first, and useless the moment the mobile signal drops (which, on Metro Manila roads, is often). There was no single app that could tell a rider whether a trip is even worth taking, track real earnings against fuel cost, warn about floods and checkpoints, and answer questions in the language they actually speak — all without burning data.

The approach

One Flutter app that puts the rider’s whole workday in their pocket and assumes the connection will fail. A live map with weather, a SULIT / PUWEDE NA / LUGI fare verdict before they commit to a trip, earnings & fuel tracking, one-tap hazard reporting that syncs when back online, ride-history hotspot analysis, one-tap SOS safety — and an AI assistant that routes each question to the cheapest tier that can answer it, falling all the way back to a model running on the phone itself.

Why it matters

This isn’t tool-configuration — it’s end-to-end product engineering with applied AI: model routing, on-device inference, offline sync, and localization, shipped as a 15-screen, ~14.5K-line app by one person for zero budget. The same three-tier routing pattern — knowledge base → cloud LLM → local fallback — is exactly how I design cost-aware AI automations for clients.

RoleDesigned & built solo
TypeOffline-first mobile app
PlatformFlutter / Dart
Scale15 screens · 63 files · ~14.5K LOC
AIGemini FlashQwen 0.5BKnowledge base
Routing / MapsOSRM · Open-Meteo
Budget₱0
StatusRunning build (v0.05)
// The 3-tier AI assistant
Each question is routed to the cheapest tier that can answer it — and the last tier needs no internet at all.
RIDER · TAGLISH
“Magkano kita ko?”
Voice or chat, in Tagalog-English
route
TIER 1
Knowledge Base
Instant · free · offline
fallback
TIER 2
Gemini Flash
Cloud · complex questions
no signal
TIER 3
On-device LLM
Qwen 0.5B (~200MB) · works fully offline
3-tier
AI routing: knowledge base → cloud → on-device fallback
100% offline
on-device LLM + 6MB offline Metro Manila maps
~14.5K LOC
15 screens, 63 Dart files — shipped solo
₱0
budget — built end to end at zero cost
Need a cost-aware AI system like this? I architect and build them.
Let’s talk →
Live App Walkthrough

Arangkada AI — See It In Action

Real screens from the running app, plus a screen-recorded demo. Every shot below is the actual build — no mockups, no placeholders.

v0.05
Version
15
Screens
63
Dart Files
~14.5K
Lines of Code
₱0
Budget
Arangkada AI — Screen Recording
// Live screen recording of the actual running build, not a concept video
1Home — Live Map
Arangkada AI — Home — Live Map screen
Home — Live Map
Full-screen map with live weather widget (Open-Meteo), scrollable POI chips, and one-tap Start Ride. Mic FAB for hands-free voice commands.
2Search & Set Route
Arangkada AI — Search & Set Route screen
Search & Set Route
Destination search with Filipino place-name support, quick POI categories, and popular Metro Manila destinations for fast one-tap routing.
3Fare Estimator
Arangkada AI — Fare Estimator screen
Fare Estimator
Pickup and destination inputs feed the SULIT / PUWEDE NA / LUGI verdict engine — auto-fetches the route via OSRM before a rider commits to a trip.
4Hazard Reporting
Arangkada AI — Hazard Reporting screen
Hazard Reporting
8 hazard types including 3 flood-severity levels — LUBAK, BAHA BABAW/TUHOD/LUBOG, CHECKPOINT, AKSIDENTE, SARADO, GAWA — one tap, GPS auto-attached, syncs when back online.
5Dashboard
Arangkada AI — Dashboard screen
Dashboard
Today's net profit, ride count, and time on the road at a glance, plus a 4-tile quick-access grid to Fuel Calculator, Hotspots, Rider Safety, and the AI Assistant.
6Earnings
Arangkada AI — Earnings screen
Earnings
Today / Week / Month period tabs, a net-profit hero number, gross-vs-fuel-cost breakdown, and a scrollable per-ride log.
7Fuel Calculator
Arangkada AI — Fuel Calculator screen
Fuel Calculator
Quick-distance chips (5–30km) or custom trip distance, gas price and fuel efficiency pulled from Settings, instant liters-needed and total-cost estimate.
8Booking Hotspots
Arangkada AI — Booking Hotspots screen
Booking Hotspots
Ride-history analysis surfaces the best pickup spots by time of day and day of week — Morning, Midday, Afternoon filters with data-driven recommendations.
9Settings
Arangkada AI — Settings screen
Settings
Theme toggle, live connection and GPS-interval status, and feature tiles for Offline Maps (Metro Manila, 6MB) and the on-device AI Model (Qwen 0.5B, ~200MB).
10Rider Safety
Arangkada AI — Rider Safety screen
Rider Safety
One-tap SOS with live GPS coordinates, up to 3 emergency contacts, a ride timer with fatigue reminders every 2 hours, and rotating Taglish safety tips.
11AI Assistant
Arangkada AI — AI Assistant screen
AI Assistant
The 3-tier AI in action — Knowledge Base, Gemini Flash, and on-device LLM — with quick prompts like "Magkano kita ko?" and full Taglish conversation support.
04 · Skills

Core Skills

01
AI Workflow Automation
n8n pipelines, Zapier zaps, Claude/OpenAI API integrations, multi-step workflows with error handling.
n8n Workflows90%
Zapier / Make.com85%
Claude / OpenAI API92%
Webhook & API Calls88%
02
📋
Notion & Knowledge Systems
Notion workspace builds, CRM databases, content calendars, SOPs, client portals, and Airtable bases.
Notion Databases88%
Airtable Bases82%
SOP Documentation90%
Process Mapping85%
03
🤖
AI Prompting & Content
Prompt engineering, AI content pipelines, chatbot building, automated report writing and summarisation.
Prompt Engineering92%
AI Content Pipelines87%
Chatbot Building85%
Google Sheets / Excel88%
// Live Demo

Try My Work Right Now

Don't take my word for it — describe any business problem below and get a real Claude-powered automation blueprint in seconds. This is the same kind of system I build for clients.

Automation Consultant — Powered by Google Gemini
Live · Describe any manual process · Get a real workflow blueprint
● ONLINE
Powered by Google Gemini · No setup needed · ~5 seconds
// By The Numbers

Real Numbers, Real Work

Every number below comes from actual projects — not estimates, not goals.

200+
Prompt templates
engineered at Innodata
weekly · production LLM
43
Hours of manual work
automated per week
across all 6 service workflows
43
Total n8n nodes
built & shipped
16 (router) + 27 (pipeline)
3
AI providers
integrated in prod
Claude · OpenAI · Gemini
2
Production n8n
workflows shipped
with circuit breaker + self-heal
~67%
LLM cost saved
via smart routing
Haiku vs always-Sonnet
0
Leads dropped
in prod pipeline
dead-letter + self-heal
3
Companies in
2 years of work
AI · BPO · Cybersecurity
// Career Lessons

What 3 Jobs Taught Me

Every role left me with a principle I still use. Here they are, unfiltered.

James Earl Medrano
James Earl Medrano
AI AUTOMATION VA · N8N · ZAPIER · CLAUDE API
● Available Now PHT · Works US/AU/EU Hours Malate, Manila PH
Available for freelance, part-time VA, or full-time remote. Rates shared on request — let's talk first.
▶ Contact James
🛠️
BESPOKE IT Project Corp.
Feb – Jul 2024 · Makati · Jr. Technical Support
Lesson 01
"Documentation isn't for you — it's for the next person."

I wrote technical runbooks and troubleshooting guides that the team was still using after I left. That taught me something most junior engineers miss: the work that compounds isn't the work you do — it's the work you leave behind in a form others can use. Every automation I build now ships with documentation.

How it shows up now
Every n8n workflow I ship includes a setup doc, a schema spec, and a replay checklist.
🔒
Alorica Teleservices
Jan 2025 – Jan 2026 · Manila · IT Support & Case Resolution
Lesson 02
"Data privacy isn't a checklist. It's a habit you build under pressure."

Handling sensitive financial data for thousands of cardholders across Asia-Pacific operations meant one wrong step had real consequences. Compliance stopped being abstract — it became something I thought about on every action, every day. I learned to ask "what happens if this goes wrong?" before "will this work?"

How it shows up now
My automations never store secrets in code, always validate inputs, and always fail-open rather than silently corrupt data.
🤖
Innodata Knowledge Services
Jan – May 2026 · Cebu · AI Analyst II (LLM)
Lesson 03
"LLMs are only as good as the words you give them."

Writing 200+ production prompt templates for supervised fine-tuning pipelines taught me that AI precision is really language precision. The difference between a prompt that works and one that hallucates is often one sentence. I learned to write for machines the way a good editor writes for readers — with no room for ambiguity.

How it shows up now
Every AI node I build runs at temperature 0 with an XML-structured system prompt, validated output schema, and typed error codes.
// Proof of Learning

Certifications & Training

VA clients hire by tool familiarity. Here's the documented proof behind the skills.

🤖
Anthropic Prompt Engineering
Anthropic · Self-Study + Applied
APPLIED
Completed the full Anthropic prompt engineering documentation. Applied daily at Innodata — 200+ production prompt templates shipped to a supervised fine-tuning pipeline.
n8n Workflow Automation
n8n · Project-Based
SHIPPED
Self-taught via n8n docs, community, and hands-on builds. Shipped 2 production workflows: 16-node AI support router and 27-node self-healing lead pipeline — both with custom JS code nodes.
🔗
Zapier & API Integration
Zapier · Self-Study
LEARNING
Completed Zapier's official training on multi-step zaps, filters, formatters, and webhook triggers. Actively building Zapier-based client workflow templates.
📋
Notion System Design
Notion · Project-Based
APPLIED
Built Notion CRM databases, content calendars, project trackers, and client portals. Connected via API to n8n for real-time data sync and automated page creation.
🧠
OpenAI API & GPT Integration
OpenAI · Project-Based
SHIPPED
Integrated GPT-4o-mini as primary scoring model in the lead enrichment pipeline. Implemented as backup provider in the AI support router with response normalisation across 3 providers.
📊
BS Information Technology
PLM · 2025 Graduate
COMPLETED
Bachelor of Science in Information Technology, Pamantasan ng Lungsod ng Maynila. Graduated 2025. Foundation in software development, networking, database systems and IT management.
📌 Adding more soon: Currently working through the n8n official certification, Google AI Essentials, and Zapier Expert certification. Update this page when completed.
05 · Education

Education

🎓
BS IT
Graduate
2025
Pamantasan ng Lungsod ng Maynila · Intramuros, Manila
Bachelor of Science in
Information Technology
Graduated: 2025
BS ITPLM AlumniManila, PH
// Continuous Learning
Anthropic · Self-Study
Prompt Engineering Guide
Applied daily at Innodata — 200+ production prompts
Supabase · Project-Based
Backend & Auth Engineering
Postgres, RLS, Edge Functions — CourtBook
Google · Self-Study
Gemini API & On-Device AI
Gemini Flash + Qwen2.5 GGUF — Arangkada AI
06 · AI Automation

Workflows I've Built

Production-grade n8n automations with real cost-routing logic, circuit-breaker resilience, and multi-provider LLM orchestration. Not tutorials — actual systems built from scratch.

Modular AI Support Router v2
// n8n · Claude Haiku + Sonnet · OpenAI Fallback · Circuit Breaker
n8nClaude APIOpenAIJavaScriptCircuit Breaker

An enterprise-grade customer support pipeline that automatically triages incoming emails, routes them to the cheapest AI model that can handle them, and fails over to a backup provider if the primary goes down — all without human intervention.

Production-Ready 16 Nodes Cost-Optimized Circuit Breaker Multi-Provider
Live Workflow — 16-Node Canvas
TRIGGER Manual / Webhook SET Email Payload CLAUDE HAIKU Gateway Triage CODE Parse + Route SWITCH Cost Router cheap premium CLAUDE HAIKU Draft (cheap) CLAUDE SONNET Draft (premium) CODE Normalize + Cost SET PENDING_REVIEW HUMAN GATE Approval Wait ✉ Send Email error CODE Circuit Breaker IF Failover? HTTP OpenAI Backup true Dead-Letter ⚠ false rejoin → normalize Happy path Error / failover path Rejoin stream
How It Works — 3 Intelligent Layers
Layer 1 · Triage
Gateway Claude (Haiku)

Every inbound email hits Claude Haiku first. It scores sentiment (calm/frustrated/angry/panicked), urgency (critical→low), and structural complexity. Cost: fractions of a cent.

Layer 2 · Cost Routing
Smart Model Selection

Simple tickets (billing questions, plan inquiries) → Haiku at $1/M tokens. Complex/escalated tickets (API outages, multi-issue debugging) → Sonnet at $3/M tokens. Saves ~67% vs always-premium.

Layer 3 · Resilience
Circuit Breaker

429 rate limits, 529 overloads, 5xx errors → automatic failover to OpenAI backup. Hard failures (400/401 auth) → dead-letter queue with alert. Zero dropped tickets.

Impact Metrics
~67%
Cost saved vs
always-premium
16
n8n nodes
orchestrated
3
AI providers
supported
0
Dropped tickets
on failure
9+14
Unit tests
passing
What I Learned

The hardest engineering decision was the safe-expensive default — when the gateway is genuinely unsure about complexity, route to Sonnet anyway. A wrong cheap route costs more in human rework than a right expensive one. I also learned that circuit-breaker logic needs to live at the code layer, not the n8n retry layer, because you need to distinguish retryable transient errors (429, 529, 5xx) from hard failures (400/401 auth) that a failover won't fix. Building 23 unit tests before wiring the n8n canvas saved hours of debugging.

What It's Built With
n8n — 16-node workflow canvas with error output routing
Claude Haiku (gateway triage) + Claude Sonnet (premium drafting)
OpenAI GPT-4o-mini as backup provider via circuit breaker
Custom JS: cost router, circuit breaker, response normalizer (3 providers)
XML-structured system prompt with 5 scoring rules + self-check
23 unit tests across cost-router.js and circuit-breaker.js
🎯
Self-Healing Lead Enrichment Pipeline v3
// n8n · OpenAI · Airtable · Slack · Circuit Breaker · Self-Healing Replay
n8nOpenAIAirtableSelf-HealingERR_* Taxonomy

A production-grade lead qualification engine that ingests raw form submissions, uses an LLM at temperature 0 to extract firmographics and score intent, routes high-value leads instantly to a priority queue with a Slack alert — and self-heals: any failed submission is captured in a dead-letter store and automatically replayed every 15 minutes, with a bounded 3-attempt retry ceiling that escalates to a human before giving up. Zero leads are ever dropped.

Production-Ready 27 Nodes Self-Healing Zero Lead Loss ERR_* Taxonomy
Architecture — 2-Path Pipeline
INBOUND PATH — real-time scoring WEBHOOK Lead Form LLM CHAIN Lead Scorer CODE Validate+Norm IF Score ≥ 70? HIGH Priority Queue Slack Alert LOW HITL Staging 200 + Score ERR_* errors CODE Classify Error DEAD LETTER retry_count=0 Safe 200 SELF-HEALING LOOP — scheduled replay every 15 min CRON 15 min AIRTABLE Fetch Failed CODE Prep Replay LLM CHAIN Re-Score CODE Validate IF Score ≥ 70? AIRTABLE Mark Recovered Slack ✓ Classify Error commit counter GATE count ≥ 3? ⚠ Escalate YES NO Requeue polls dead letter Happy path Error / ERR_* path Recovery / healed Airtable store
How It Works — 3 Business Problems Solved
Problem 1 · Speed
Hot leads go cold in minutes

Webhook receives the form → LLM scores it at temperature 0 → high-value leads hit the Priority Queue + Slack alert in under 3 seconds. Sales reps get notified before the prospect closes another tab.

Problem 2 · Reliability
API errors silently drop leads

Every error path — rate limits, malformed JSON, missing fields, out-of-range scores — gets an ERR_* triage tag and a safe 200 response. Not one lead is dropped. The dead-letter store captures everything.

Problem 3 · Recovery
Failed records pile up forever

A Cron fires every 15 minutes, fetches pending_retry rows, and re-runs the full scoring pipeline. 3-attempt ceiling with idempotent counter — if it can't recover after 3 tries, a human is escalated automatically.

Impact Metrics
0
Leads
ever dropped
27
n8n nodes
orchestrated
<3s
Webhook to
Slack alert
15min
Replay
cadence
7
ERR_* triage
codes
3
Max retries
before escalate
What I Learned

The hardest part was the idempotent counter design — the retry_count is only committed at the terminal Airtable update nodes, never mid-flight. This means an interrupted replay run leaves the row's persisted count unchanged, so the next Cron poll retries cleanly without double-counting. I also learned to run the LLM at temperature 0 and validate every output field with typed ERR_* throws — because a scoring pipeline where the AI sometimes returns prose instead of JSON is worse than no pipeline at all.

What It's Built With
n8n — 27-node workflow with 2 independent triggers (webhook + cron)
OpenAI GPT-4o-mini at temperature 0 for deterministic lead scoring
Custom JS: validate-and-normalize, classify-error, prepare-replay (ERR_* taxonomy)
Airtable — 3 tables: Priority Queue, HITL Staging, Dead Letter store
Slack — real-time high-value alert + recovery notification
XML-structured system prompt with rubric-based scoring rules
🚀
Automated Client Onboarding & Portal Provisioning Engine
// Zapier · Notion · Stripe · OpenAI + Claude Failover · Idempotent · Fail-Open
ZapierNotionStripeJavaScriptIdempotent

A production RevOps pipeline that converts a completed Stripe payment into a fully provisioned Notion client portal — with idempotent duplicate protection, dual-provider AI failover, tier-banded onboarding paths, and a Slack Ops error lane. The customer is always served. Ops is always alerted. Nothing is ever silently dropped.

Production-Ready 9 Steps · Zapier Idempotent Fail-Open Dual AI Failover RevOps
Architecture — 9-Step RevOps Pipeline
STRIPE Checkout Done FILTER paid + amount > 0 halt CODE Normalize · Tier mint provisioningId NOTION Find by Provisioning ID exists → skip AI FAILOVER LANE OpenAI GPT-4o primary Claude Anthropic fallback tier-default CODE Notion Property Mapper NOTION Create Client Record NOTION Provision Portal Page PATHS Tier Gate Enterprise·Growth·Boutique Slack #enterprise White-glove · Named CSM Slack + Gmail kickoff Self-serve email only SLACK OPS ERROR LANE — any _errors[] → #revops-alerts Collect ERR_* codes ERR_AI_MALFORMED · ERR_NOTION_WRITE… FILTER _errors exists? ⚠ Slack #revops-alerts provisioningId · tier · triage codes Customer always served Ops always alerted · fail-open design Happy path Error / ERR_* lane Recovery / success Tier gate / filter
3 Enterprise Problems Solved
Problem 1 · Reliability
Webhooks fire twice, creating duplicate clients

A deterministic provisioningId derived from the Stripe session ID is minted before any write. Notion is queried first — if the record exists, the Zap halts silently. Same session replayed 10 times = one client record. Always.

Problem 2 · AI Uptime
AI provider outage kills the whole onboarding

The AI call lives inside a fetch + try/catch Code node — not a native Zapier app step that hard-fails. OpenAI primary → Claude secondary → tier-default roadmap. The client always gets provisioned, even with both providers down.

Problem 3 · Observability
Errors fail silently for days before anyone notices

Every Code node accumulates structured ERR_* triage codes. A trailing Slack Ops lane fires if any errors exist — with provisioning ID, tier, and exact codes. Ops knows what failed before the client even notices.

Tier System — Derived From Deal Value
Enterprise · ≥$10,000
Named CSM · 30-day SLA
Live kickoff · security review · SSO/SAML · priority Slack channel · quarterly business reviews
Growth · ≥$2,000
Group kickoff · 14-day SLA
Standard kickoff sequence · group onboarding call · Slack #onboarding alert
Boutique · <$2,000
Self-serve · 7-day SLA
Welcome email + portal link · async support only · no live kickoff
Impact Metrics
0
Duplicate clients
ever created
9
Zapier steps
orchestrated
2+1
AI providers
+ tier-default
3
Tier-banded
onboarding paths
6
ERR_* triage
codes tracked
100%
Fail-open
customer served
What I Learned

The most important architectural decision was moving the AI call inside a Code node using fetch + try/catch instead of using Zapier's native OpenAI app step. When a native app step fails in Zapier, the whole Zap crashes. Inside a Code node, I can genuinely catch the error, try a secondary provider, and continue — the customer gets provisioned regardless. That single architectural choice is what separates a production RevOps pipeline from a "Zap demo." I also learned that idempotency has to be designed upfront — you can't retrofit duplicate protection after the fact, because by then you've already written the bad data.

What It's Built With
Zapier — 9-step multi-path pipeline with Filter, Paths, and Code by Zapier nodes
Custom JS Code node: payload normalizer + dual-provider AI failover + Notion property mapper
OpenAI GPT-4o (primary) → Claude Sonnet (secondary) → tier-default roadmap (fail-open)
Notion — client CRM database + child portal pages provisioned from markdown blocks
Stripe webhook trigger — checkout.session.completed with idempotent provisioningId
Slack — tier-specific kickoff alerts (#enterprise-onboarding, #onboarding) + #revops-alerts Ops lane
XML system prompt with tier-aware, JSON-only output spec for the AI roadmap generator
🛡️
Multi-Source Threat Intelligence & Automated SOAR Engine
// Pipedream · n8n · Zapier · SHA-256 Dedup · 4-Channel Dispatch · RFC1918 Classification
SOARPipedreamSHA-256JavaScriptRFC1918

A serverless Security Orchestration, Automation & Response pipeline that ingests raw network security logs over webhooks, normalizes and AI-scores each event, and fans out deduplicated incident payloads to Jira, PagerDuty, Slack, and Twilio — with zero alert storms and three routing lanes: human review, standard ticket, and emergency auto-dispatch.

Production-Ready SOAR Pipeline SHA-256 Dedup 4-Channel Fan-Out Zero Alert Storms RFC1918 Classified
High-Level Architecture — Linear Stateless Pipeline
WEBHOOK Security Log Forwarder STAGE 1 enrichment _node.js sanitize · IP resolve RFC1918 · truncate ai_payload STAGE 1.5 Threat Analysis LLM risk-scorer → risk_score + conf verdict STAGE 2 conditional _router.js conf < 0.7 → review score ≥ 7.5 → emergency 🔍 Review Lane — Human-in-loop conf < 0.7 🎫 Standard Lane — Jira only score < 7.5 score≥7.5 STAGE 3 emergency _dispatch.js SHA-256 dedup_key 4-channel fan-out SHA-256 dedup_key (32c) 🎯 Jira P1 Incident 🔔 PagerDuty Events API v2 💬 Slack Block Kit 📱 Twilio SMS <160 chars Security stages (left → right): Stage 0: Ingest raw webhook Stage 1: Normalize · IP · RFC1918 · truncate Stage 1.5: AI risk-score → verdict Stage 2: Route → review / standard / emergency Emergency path only: Stage 3: SHA-256 dedup_key minted Fan-out → Jira P1 + PagerDuty trigger + Slack Block Kit + Twilio SMS Identical events: dedup_key collapses → 1 alert
Key Technical Challenges Solved
Challenge 1 · Hardened Type Coercion
Volatile LLM response strings

LLMs return risk scores as "8.2/10", "$7.5", or "82%" — never cleanly as numbers. A naive parseInt silently returns NaN and misroutes critical incidents to the standard lane. The toFloat() function strips leading noise then uses parseFloat — correctly reading 8.2 from "8.2/10" without merging digits across delimiters. Confidence values also fold 0–100 percentage scale down to 0–1 automatically.

Challenge 2 · Alert-Storm Suppression
Duplicate incidents flooding 4 channels

Network forwarders often emit the same event multiple times — one attacker IP can generate hundreds of duplicates. A naive pipeline alerts Jira, PagerDuty, Slack, and Twilio for each. The fix: a deterministic 32-char SHA-256 hash over source_ip|timestamp|exception_code generates a stable dedup_key. Identical events always produce the same key — allowing Jira, PagerDuty, and Slack to idempotently collapse duplicates at the API layer.

Challenge 3 · Proxy Chain Parsing
Spoofable IP headers in webhook chains

Webhook payloads pass through proxies that append IPs to X-Forwarded-For — resulting in values like "203.0.113.5:51234, 10.0.0.1, proxy2". Trusting the rightmost IP returns an internal proxy. The enrichment node resolves the true client by reading the left-most syntactically valid IPv4 token, stripping port suffixes, with X-Real-IP and socket-level fallbacks — then classifies it against a strict RFC1918 regex for internal vs. external routing.

Impact Metrics
4
Alert channels
fan-out
3
Routing lanes
review·std·emrg
0
Duplicate alerts
per incident
4000
Max chars
token protection
32
SHA-256 dedup
key chars
0.7
Confidence floor
for auto-dispatch
What I Learned

The most underestimated problem in security automation is alert fatigue — not the detection itself. Getting the SHA-256 dedup right required me to think carefully about what makes an event truly unique: using a timestamp-based key would make every replay a new alert, while using only the IP would collapse distinct incidents. The compound key over source_ip|timestamp|exception_code hits the right balance. I also learned that LLM output coercion needs to be paranoid by default — the model will return a number as a string, a percentage, a fraction, or wrapped in prose, and your code has to handle all of them without throwing.

What It's Built With
Pipedream (primary) · n8n · Zapier Code — multi-platform JS exports with named functions for unit testing
enrichment_node.js — spoof-resistant IP resolution, RFC1918 classification, 4000-char log truncation
conditional_router.js — hardened toFloat() coercion, confidence normalization, 3-lane routing
emergency_dispatch.js — SHA-256 dedup_key, Jira ADF, PagerDuty Events API v2, Slack Block Kit, Twilio SMS
LLM threat-analysis node (pluggable) — consumes ai_payload, emits risk_score + confidence verdict
Zero secrets in code — routing keys and project keys injected from environment at runtime
// Try it yourself
Want to see how these automations actually work?

Let’s play a quick mini-game. In the Automation Playground you build real AI automations by wiring nodes together — and learn exactly how each piece works, no code required.

07 · Ask My AI

Ask James's AI

This chat is powered by Google Gemini with James's full profile as context. Ask anything — skills, availability, salary, fit for a role. It answers as if James is right there.

🤖
James's AI Assistant
Google Gemini · Online
Powered by Google Gemini
🤖
Hi! I'm James's AI assistant. I know everything about his background, skills, and availability. Ask me anything — I'm here to help you decide if James is the right fit for your team.
// How this works — engineering notes

This chat calls the Google Gemini API through a Netlify serverless function, so the API key stays secure on the server and is never exposed to the browser.

James's full profile — roles, skills, projects, salary target, availability — is injected as the system prompt, so every answer is grounded in his real background rather than generic AI responses.

System prompt excerpt: "You are an AI assistant for James Earl Medrano's portfolio. Answer based on his real background: AI Analyst II (LLM) at Innodata, IT Support at Alorica, Jr. Technical Support at BESPOKE IT…"

Note for technical reviewers: The API key is currently exposed client-side — this is intentional for a portfolio demo but would be moved to a serverless function (e.g. Netlify Functions) in a production deployment.

08 · Contact

Contact

Let's Build Something
Open to full-time, freelance, and remote roles. Connect on any platform.
// Send Message via Gmail

Fill in the fields below → clicking the button opens your Gmail with the message pre-filled. Or email directly: Workwitheaaarl@gmail.com

Overview
📊About This SectionLive
AI Tools I Built
🎯Job Fit Analyzer
🎤Interview Coach
📧Cold Email Builder
💬AI Chat
Automation ConsultantNew
James Earl Medrano
James Earl Medrano
AI Analyst · Open
AI Tools I Built
Live AI-Powered Demos
4 working tools · Built with Google Gemini API · Try them now
What This Shows HR
Why this section exists

This section demonstrates that James can actually build AI-powered products — not just talk about AI. Each tool below calls the Claude API in real-time and returns useful output in seconds. Try one.

Built with vanilla HTML, CSS, JS — no frameworks
Google Gemini API — live, real responses
James's full profile injected as context — personalized output
Zero dependencies, deploys instantly on any static host
Career Timeline
Professional journey
2024 · Feb–Jul
Jr. Technical Support
BESPOKE IT Corp. · Makati
2025 · Jan–2026 Jan
IT Support & Case Resolution
Alorica Teleservices · Makati
2026 · Jan–May
A.I. Analyst II (LLM)
Innodata · Cebu — AI & prompt engineering
🎯 Job Fit Analyzer → TRY IT
Paste your JD → fit score + the automation I'd build for you

Paste any job description and Claude returns a recruiter-ready brief: fit score, why James matches, honest gaps, and — the part that lands — the exact automation he'd build for your team in week one. Personalized to your role and his real experience.

🎤 Interview Coach → TRY IT
Practice with real STAR-method answers

Select any interview question and Claude generates a model answer using STAR method, grounded in James's real experience — not generic filler.

📧 Cold Email Builder → TRY IT
Generate targeted outreach emails in seconds

Enter a company name and angle. Claude writes a compelling subject line and email body under 200 words, referencing James's AI and LLM background specifically.

💬 Chat with James's AI → TRY IT
Ask anything about James's background

Free-form chat powered by Claude. Ask about skills, experience, availability, projects, or salary expectations. James's full profile is the context.

AI Tool 01 / 05
Job Fit Analyzer
Paste your job post — get a fit read AND the automation James would build for your team
AI Tool 04 / 05
Live AI Chat
Ask anything about James — for HR, recruiters, and collaborators
AI Tool 02 / 05 · 🎤
Interview Coach
Pick or type any interview question — get a STAR-method model answer grounded in James's real experience
AI Tool 03 / 05 · 📧
Cold Email Builder
Enter a company and your angle — get a ready-to-send outreach email in seconds
AI Tool 05 / 05 · ⚡
Automation Consultant
Describe any business problem — get a concrete n8n/Zapier/Claude automation blueprint
James Earl Medrano · AI Automation
⚡ Automation Playground

Each puzzle is a real workflow I’ve built. Tap a cyan ▶ output, then a purple ◀ input. Hover a node to learn what it does. Stuck? Hit Hint or Watch it build.

Trigger
Something happens
🤖
Automation
Steps run by themselves
Result
Done — no one lifts a finger
For example A customer emails → AI reads & sorts it → the right person is pinged in seconds. A form is submitted → details are enriched & scored → a hot lead lands in the CRM. The clock hits 9am → yesterday’s sales are tallied → a summary is waiting in your inbox.

That’s all an automation is: a trigger, a few steps, and a result. Build a few below and watch them run — no code required.

📖 Automation 101 — what each building block doestap to expand
Trigger
Kicks the whole thing off when something happens.
🔗Webhook
Catches data from another app the instant it arrives.
Schedule
Runs on a timer — hourly, daily, whenever you like.
🤖AI step
Claude reads, decides, scores, drafts, or classifies.
🔀Router
Splits the flow down different paths based on a rule.
Filter
Lets only the items you care about continue.
🔧Transform
Reshapes or cleans the data into the format you need.
👤Human approval
Pauses for a person to approve before it acts.
✉️Action
Sends an email or pings Slack so the outside world hears about it.
Wired 0/0
0:00
Tap a cyan ▶ output to start.
// How this automation works — steps light up as you wire them
✅ Automation running
🏆 You built all four