Jasper John Paitan
I build AI automation that runs without supervision: self-hosted n8n workflows, Make.com scenarios, and AI agents wired into the no-code tools a business already uses. A Computer Engineer who ships working systems, not demos.
About
I'm Jasper John Paitan, a Computer Engineering graduate from La Salle University, Ozamiz, Philippines. I build AI automation: the systems that take a workflow somebody is doing by hand every day and turn it into software that runs on its own.
Most of that work lives in no-code and low-code platforms, because that is where a business can actually see and own what it bought. I run a self-hosted n8n instance, author workflows as JSON and deploy them through n8n's own REST API, build Make.com scenarios that fan a single webhook out to Sheets, Slack and Airtable, and wire the whole thing to the tools a team already uses.
Where a platform stops, I keep going. The AI development side is mine too: tool-calling agents, multi-provider LLM routing with failover and key rotation, RAG, and local on-device models. My edge is that the engineering underneath is real, a Computer Engineering degree and systems work from Python to embedded C, so what I hand over is debugged, secured and maintainable, not prompt-and-pray.
La Salle University · Graduated June 20, 2026
- Maintained and updated proprietary client software: patches, version upgrades, and rollout coordination.
- Diagnosed and resolved software defects; validated system stability post-deployment.
- Produced technical documentation, change logs, and client-facing release notes.
- Collaborated with senior developers on feature integration, regression testing, and QA.
Projects
A security library that inspects text heading for an LLM and returns an explainable verdict on whether it is a prompt-injection or jailbreak attempt. Prompt injection is the top entry in the OWASP Top 10 for LLM Applications and it is unsolved, so most published guards ship a wall of patterns with no measurement attached. This one ships an evaluation harness and publishes the number that does not flatter it.
- Reports the honest number: 1.000 F1 on the corpus it was tuned against, and 0.350 recall on a held-out set it has never seen. The README leads with the second one, because a perfect score on your own test data measures fit, not skill.
- Explains every verdict: each result carries the detectors that fired and the exact text they matched, highlighted in place, so a decision can be argued with rather than trusted.
- Survives obfuscation: a normalization pass folds leetspeak, homoglyphs, zero-width characters, separator padding and letter spacing back to canonical text before matching.
- Written twice, kept in sync: the guard exists in Python and TypeScript, and a parity test runs the same corpora through both in CI, asserting identical metrics. Duplication becomes verified agreement rather than drift.
- Names its own blind spots: paraphrase, non-English and social-engineering attacks get through, and the README says so instead of hiding it.
A multi-agent team that runs on your own machine. You give one directive; a manager agent modelled on you turns it into a dependency graph of tasks and hands them to ten specialist workers. Every safety property is a precondition in code rather than an instruction in a prompt, because a model can decline to follow a prompt. Runs fully offline at zero cost, with a defined path to a cloud host once it has earned one.
- Plans, then executes: one directive becomes a validated task graph with cycle detection and a closed set of ten worker roles. An illegal plan is rejected by code, not corrected by a prompt.
- Survives a crash: the queue hands out work under lease, so a killed worker's task returns to the queue instead of vanishing.
- Fails closed on private data: anything marked personal is pinned to a local model, and an egress tripwire inspects the actual bytes before any outbound request leaves.
- One live truth: the knowledge store keeps exactly one live statement per subject, enforced by a partial unique index, so it can never hold two contradictory beliefs about you.
- 55 offline tests, each written against a bug that was reproduced first, including a queue deadlock that reported itself as idle.
An AI appointment setter that qualifies inbound leads in a chat window and books the call in the conversation itself, with no calendar link to bounce anyone out to. One workflow serves any number of businesses: each client's persona, offer, and pricing is a database row, so onboarding another is an insert rather than a copied workflow.
- The model returns state, not prose. Every reply satisfies a contract of reply, booked, and slot, so booking detection is a code path rather than an interpretation, which is what makes the numbers trustworthy.
- A deterministic fallback covers model failure. If the provider errors or returns something unparseable, a rules-based reply still goes out. A lead is never left on read because an API had a bad minute.
- The reply is sent before anything is written, so database writes never add latency to a live conversation.
- An unknown client is an error, not a default. History is read on client and lead together, so two businesses can never see each other's threads even when the same person messages both.
Small businesses send quotes and then never hear back, and nobody has time to chase them by hand. This reads open deals out of a HubSpot free portal and emails each customer at the steps the business sets in one YAML file, say day 3, day 7 and day 14, then stops the moment the customer replies or the deal is won or lost. HubSpot sells that automation inside a paid tier. This does it on the free one. It has been run end to end against a live portal, and that first run is where the interesting part is.
- At most one chase per quote and step, ever: the send is claimed in SQLite under
BEGIN IMMEDIATEbefore the email leaves, so a second run adds zero rows and a crash between the two is reported as unresolved rather than quietly retried at the customer. - It stops on a reply, without a lookup table: each chase goes out with a plus-addressed reply-to, so the deal id travels in the envelope and comes back in the reply. On the live run the customer who answered received exactly one chase and nothing after it.
- 260 passing tests did not catch three bugs the first live run found in ten minutes: HubSpot rejects the reserved
.exampledomain the seed data used, its list endpoints cap at 100 where search allows 200, and a stage lookup answeredNoneuntil something else loaded the pipeline, which would have reported a quiet zero. All three sat exactly where the tests replaced HubSpot with a fake. - The undo was built before the do: one command seeds a 24-deal demo board into a real portal and another takes back exactly what it wrote, matched on two marks it set itself, so nothing hand-made in that account is ever touched.
I run my own n8n rather than renting one, in Docker, community edition, at zero cost. The part worth hiring is how I build on it: I author workflow JSON and create, patch, and audit it through n8n's REST API, so a workflow is a reviewable file rather than a thing someone clicked together and cannot reproduce. Alongside it, a Make scenario handles lead routing into Google Sheets, Slack, and Airtable.
- Self-hosted n8n in Docker, community edition, data persisting in a named volume so stopping the container loses nothing. My instance, my data, no per-task pricing.
- Workflows deployed over the REST API, not assembled by hand. Authored as JSON, pushed, activated, and audited programmatically, which makes them diffable and repeatable.
- Credentials attached at push time from a node-to-credential map, because n8n's export omits credentials entirely and a naive push silently strips them off every node. That one cost me a broken deploy before I understood it.
- An error workflow on everything: any failure emails the workflow, the failed node, and a link to the exact execution. Silent failure is the thing I design against.
- Make scenario for lead routing: a webhook receives an enquiry, branches it, and fans out to Google Sheets, Slack, and an Airtable base whose formula field scores each lead on arrival.
A seven-table Airtable base for a staffing agency's pipeline, from clients and openings to applications and placements, kept fed by an n8n workflow that pulls live listings from a public jobs API. Both are built from one schema file, so the base and the workflow can never call a field by two different names. Every number below was read back from a real run, not taken from the design.
- Relational design, not a spreadsheet: Applications is the join between Candidates and Job Openings, and Placements links straight to each opening, because Airtable lookups only reach one hop and a client's fees still have to roll up.
- Dedup in code, keyed on the source's own id: the workflow reads what is stored once, splits new from seen, and updates instead of inserting. Run one created 2 records. Run two created 0 and updated the same 2.
- A failure you can see: pointed at a dead host, it retries three times, writes a Failed row with the real error, and marks the run failed in n8n. Nothing breaks quietly.
- Honest about Airtable's limits: it cannot enforce one placement per opening, so a formula flags a breach, and the README carries the Postgres schema with the unique constraint that would block it.
A single HTML file that behaves like a full AI coding agent, built for Roblox and game developers. It routes requests across three LLM providers with automatic failover, validates every piece of generated code before showing it to you, and stays fully portable, no build step, no server, just one file.
- Multi-provider failover: Groq, OpenRouter, and Cerebras with automatic key rotation.
- Artifact panel: generated scripts render in a live preview pane, separate from chat.
- Two-layer sandbox self-check: all generated code validated before it's shown.
- Multi-round tool calling: calls tools, reads results, keeps reasoning in one turn.
- Web search & image generation: integrated Tavily lookups plus AI images.
- Hardened against XSS: global output-escaping pass on rendered content.
Three production-grade demo websites for small businesses: a dental clinic, a boutique real estate agency, and a plumbing and aircon service. Each is a single hand-built file with its own complete design system and a lead-qualifying form, built as work samples for my web design and lead-response automation service.
- Lead-machine design: reply-time promises, qualifying forms (service, budget, urgency), and call CTAs placed where buyers decide.
- Vertical-specific persuasion: calm trust for dental patients, editorial luxury for property buyers, bold reliability for homeowners.
- Zero dependencies: hand-drawn SVG imagery, no frameworks, no stock photos, one file per site.
- Honest demos: fictional businesses, clearly labeled, with working demo forms.
A complete, local AI agent that acts as a second version of you. It knows your background, speaks in your voice, manages your email, searches and applies to jobs, maintains your GitHub portfolio, and grows smarter the more you use it. No subscriptions, no cloud APIs, everything on your own CPU.
- Chat AI Self: trained on your CV, notes, and Q&A pairs; corrections are remembered.
- Email assistant: summarises Gmail, drafts replies in your tone, scans for interviews.
- Job search & auto-apply: scrapes boards, scores 0 to 100, tailored cover letters.
- GitHub manager: creates repos, pushes code, writes READMEs, builds full projects.
- Knowledge manager: drop any file in
knowledge/, ingested in 30 seconds.
An autonomous agent that scrapes multiple Philippine job platforms, scores every listing 0 to 100 with an LLM for match quality and scam detection, writes a personalised cover letter per job, sends applications with your CV attached, and monitors Gmail for replies. It cut my own daily job search from 2 to 4 hours to under 10 minutes (self-measured).
- Scrapes Indeed PH, Jobstreet PH, and OnlineJobs.ph simultaneously with Playwright.
- Two-layer scam detection: keyword filter plus Claude deep analysis.
- Auto-applies at score 78+, flags 50 to 77 for approval, ignores the rest.
- IMAP scanner classifies replies as interview, assessment, rejected, or follow-up.
A computer vision system that classifies plastic bottles by resin type (PET, HDPE, LDPE, PP, UNCLASSIFIED) in real time and drives mechanical actuators to physically sort them. Runs entirely on a Raspberry Pi 5 with no cloud dependency: model training, embedded deployment, hardware integration, and prototype validation, end to end.
- Best Design Project awardee, conferred at graduation, La Salle University Ozamiz, June 20, 2026.
- MobileNet CNN trained with TensorFlow and Edge Impulse, greater than 90% validation accuracy across 5 resin types.
- Fully on-device inference on Raspberry Pi 5, no cloud round-trip.
- Servo actuators driven by model output for autonomous physical sorting.
The same autonomous job-hunting pipeline, rebuilt entirely on free, open-source, no-credit-card tools. Identical functionality with zero API subscription costs, a practical proof that real automation doesn't require expensive infrastructure.
- Identical core functionality: scraping, AI screening, cover letters, applying, inbox monitoring.
- Runs on free-tier services and open-source models, no billing, no lock-in.
- Demonstrates cost-efficient automation for clients on any budget.
A Python CLI tool that automatically classifies and organises files using zero-shot NLP and image scene recognition, no manual labeling, no predefined rules. Set it to watch mode and it reads documents, recognises images, detects duplicates, and files everything correctly.
- Classifies documents by content via
facebook/bart-large-mnli, zero training data. - Recognises image types with OpenCV scene recognition; skips duplicates via perceptual hashing.
- Runs on a schedule with
--watchmode; SQLite history prevents re-processing.
Skills
Filter by domain, then open any skill for what I actually built with it and how deep it goes.
Certificates
Hire Me
Let's automate
the boring part.
Available for remote AI automation, AI development and agentic-engineering work. Tell me the workflow somebody on your team is doing by hand every day, and I'll design, build and hand over the system that does it instead, documented, reliable, and yours to keep.