Skip to the work

Cyrus Osawaye

Automation systems, and the software they run on.

AI Automation & Voice Agent Engineer

Automation systems, and the software they run on.

Most automation people cannot build the application. Most developers do not do automation. I ship both: n8n and voice systems on one side, Django and Next.js applications on the other, and the systems below are the intersection.

17
automation systems

831 nodes across the library

8/17
with explicit error handling

onError branches, continueOnFail, stopAndError

~180k
lines in the OREE product

Django + three Next.js apps

100%
Upwork job success

Top Rated, 8 jobs completed

Selected work

13 of 13

VoiceLive in production
  1. CallerHi, can I move my Thursday appointment?

  2. 2,109 ms

    AgentSure - what day works instead?

  3. CallerFriday morning if you have it.

  4. 1,984 ms

    AgentFriday has 6 slots before 12:30. Earliest is 9:00.

Voice booking agent

Answers the phone, books into a real calendar, and hands the outcome to n8n over a signed webhook.

median turn
2,109 ms
offline tests
201
live intents
6
  • FastAPI on Modal
  • Neon Postgres
  • Claude Haiku 4.5
  • Deepgram Flux
  • Google Calendar
  • HMAC-SHA256

Turn latency is the measured median on clean audio; the model accounts for 554 ms of it. The exchange above illustrates the reschedule path.

ProductLive
The OREE product: an active-leads rail, signal scores for LinkedIn activity, company match and intent, an AI-drafted email at 72% personalisation, and an approvals tab.

OREE, the AI SDR platform I built the backend for. Scoring, drafting and the human approval gate in one frame.

OREE

An AI sales co-pilot I built the backend for. It started as 7 n8n workflows, and I rebuilt it as a product when the canvas stopped being the right tool.

lines of code
~180,000
Django models
56+
nodes in the n8n original
228
  • Django + DRF
  • PostgreSQL + pgvector
  • Celery + Redis
  • Gmail API
  • Next.js x3
  • Docker
ProductPrivate - client work
private - client work
A per-tenant operations view: posts today, posts this month, total posts, pipeline active, a seven-slot daily content queue with times and typed categories, and a per-tenant configuration panel.

The per-tenant operations view. Client identifiers are cropped or redacted.

Content pipeline and operations dashboard

An n8n publishing pipeline and the Next.js screen the client runs it from. One engagement, both halves.

posts published
456
per month
180
slots per day
7
  • n8n
  • Next.js
  • FastAPI
  • Meta Graph API
  • Multi-tenant
AutomationPrivate
An n8n canvas: a WhatsApp trigger feeding an intents router, which fans out into colour-coded book, reschedule/cancel, get-message and general branches, each with calendar and sheets tools, plus a scheduled reminder flow.
Error -> Stop and Error

WhatsApp booking agent

A WhatsApp trigger into an intent router, four booking branches, and an error path that stops rather than passing bad data on.

nodes
53
intent branches
4
systems with error handling
8/17
  • n8n
  • WhatsApp
  • Google Calendar
  • Google Sheets
  • OpenAI

Opened from exported workflow files in my own instance - credentials do not travel with an export. The warning icons are missing keys, not broken nodes.

AutomationPrivate
An n8n canvas titled OREE Lead pipeline, Bucket 1, Ingestion and Enrichment, Dedupe First. Four parallel lanes each run a client-limit check, a monthly lead count, a daily limit gate and a counter increment, then call a dedupe service and an enrichment step, before converging on a single spine that validates, upserts and calls the research and content generation workflows.

OREE lead ingestion

Four lead sources running as parallel lanes, each gated by a per-tenant quota and deduplicated before a penny of enrichment is spent.

nodes across 7 workflows
228
lead sources, parallel
4
dedupe service, shared
1
  • n8n
  • Apollo
  • PostgreSQL
  • Webhooks
  • Multi-tenant

Opened from exported workflow files in my own instance - credentials do not travel with an export. The warning icons are missing keys, not broken nodes.

AutomationPrivate
An n8n canvas for a RAG file ingestion pipeline: a webhook receives an upload, validates it, downloads the file, routes by type between PDF and DOCX, extracts text, then chunks at 1000 characters with 200 overlap, creates OpenAI embeddings and stores them in PGVector. A separate purple group handles errors, logging download and extraction failures and marking the document failed.
Error handling - failed documents marked in the database

RAG document ingestion

Tenant documents into a vector store: routed by file type, chunked, embedded, and with a failure path that records what broke.

chunk size / overlap
1000 / 200
with Cohere rerank
PGVector
logged failure paths
2
  • n8n
  • PGVector
  • OpenAI embeddings
  • Cohere
  • PostgreSQL

Opened from exported workflow files in my own instance - credentials do not travel with an export. The warning icons are missing keys, not broken nodes.

AutomationPrivate
An n8n canvas: build a Renderly payload, start video generation, extract the job id, wait 120 seconds, check job status, evaluate it, and loop back if it should continue polling. On completion an is-success branch splits into formatting the success and calling the auto-post workflow, or formatting a failure.
Is Success? - false goes to Format Failure

Async video publishing

Rendering takes minutes, so this polls for the result and branches on failure instead of hanging and hoping.

poll interval
120s
networks published to
6
outcomes, both handled
2
  • n8n
  • Claude Sonnet 4.5
  • Renderly
  • Supabase
  • upload-post

Two node subtitles are blurred because they carried a server address. Opened from exported workflow files in my own instance - credentials do not travel with an export. The warning icons are missing keys, not broken nodes.

AgentPublic on PyPI

~/project $ axion -p "Find and fix the bug in auth.py"

  • $ pip install axion-code
  • $ axion login one time, saved to ~/.axion/credentials/
  • $ axion -m opus pick the model
  • $ axion --budget 1.00 cap the spend
  • $ axion --resume latest

Axion-Code

An autonomous coding agent that runs in the terminal, reads a codebase, writes code and runs commands.

model providers
5
licence
MIT
published
PyPI
  • Python 3.11+
  • Anthropic
  • OpenAI
  • xAI
  • Ollama
APIPublic
POST/api/video/generate/
202
{
  "job_id": "8f2c1a94-…",
  "status": "pending",
  "message": "Video generation started",
  "estimated_time_seconds": 240
}

Renderly

A Django REST API that renders video: Vertex AI Veo 3 for the B-roll, a HeyGen avatar composited over it.

job states
5
accepted, then poll
202
schema published
OpenAPI
  • Django REST
  • Vertex AI Veo 3
  • HeyGen
  • Celery
  • drf-spectacular
Code
APIPublic
GET/api/opportunities/
200
[{
  "id": "3b91f0c2-…",
  "title": "Software Engineering Intern",
  "type": "internship",
  "status": "open",
  "requirements": ["Python", "Git"],
  "required_documents": ["CV", "Transcript"],
  "application_deadline": "…",
  "applications_count": 0
}]

AspireBridge

A mentorship and internship platform for YABATECH - a Next.js frontend against a Django REST API, with real users.

API modules
5
repos, one product
2
schema published
OpenAPI
  • Next.js
  • Django REST
  • PostgreSQL
  • JWT
  • drf-spectacular
APIPublic
GET/api/chemical/
200
[{
  "id": "7d40ab19-…",
  "name": "Acetone",
  "quantity": 2.5,
  "molecular_formula": "C3H6O",
  "reactivity_group": "…",
  "chemical_state": "…",
  "hazard_information": "…",
  "location": "Store A",
  "expires": "…"
}]

Chemoventry

Chemical inventory management, where the domain model is the work: hazard data, reactivity groups, physical state and expiry.

fields per chemical
9
repos, one product
2
log on every change
Audit
  • Next.js
  • Django REST
  • PostgreSQL
  • JWT
AgentPublic

~/code-review-agent $ python src/main.py

  • $ git clone https://github.com/cypher125/code-review-agent.git
  • $ pip install -r requirements.txt
  • $ cp sample.env .env
  • $ python src/main.py serves the UI and the MCP server

Code review agent

Reviews a repository for quality, security and performance - and exposes itself as an MCP server so another model can call it.

languages analysed
15+
callable as a tool
MCP
layer architecture
4
  • Python
  • Gradio
  • MCP
  • GitHub API
Code

Skills

each links to its proof

Automation systems

17 systems, 831 nodes. The library, not a tool list.

Voice and conversational AI

The least contested lane I can actually deliver, and it is live.

Backends

The half most automation people cannot build.

Products

Applications people log into, not scripts.

RAG and knowledge systems

Chunking, embeddings and reranking - plus what happens when a document will not ingest.

AI engineering

Model picked per task, not one model for everything.

Contact

Tell me what you are trying to automate, or what you need built. Include the tools you already run on if you know them - it saves a round trip.

is the fastest way to reach me.