Available for remote work.

I build the systems that stop work falling through the cracks.

Forms, spreadsheets, APIs and voice tools, connected so information reaches the right place without anyone retyping it. Every project below shows what I built, what it measured, and what it still cannot do.

124 job listings filtered to 5 alerts in one recorded run

What you can hire me for

I take on small projects with a defined process and a result we can both check. Prices below are starting points, not quotes.

First call

Free, 20 minutes

A short call where you walk me through one process. I'll tell you whether it's worth automating, and I'll say so if it isn't.

Process teardown

From $80

I map the current steps, estimate the hours it costs you, name the risks I can see, and tell you what I'd do first. Written and sent back to you.

Fee credited toward a build if you book within 14 days.

One process, automated

From $300

One defined business process. One trigger, one main outcome, up to two connected tools. Includes testing, failure alerts, and handover notes. Usually delivered within 5-7 working days after access and scope are confirmed.

Additional workflows, dashboards and ongoing support are quoted separately.

Kept running

From $75/month

Changes and fixes when a connected API changes or the process does.

Two business day response.

The most common first project is lead intake and follow up. An enquiry arrives, gets cleaned, lands in your sheet or CRM, alerts you, and creates a follow up task if nobody has replied.

Third-party subscriptions are billed directly to you and remain in your name and control. I do not mark them up. Any expected software or usage costs will be confirmed before the project begins.

What I have built

Every project here is documented with what worked, what the numbers were, and what is not yet proven.

Academy prototype

Voice AI restaurant ordering prototype

A caller phones a fictional Nigerian restaurant and speaks to an AI assistant. The assistant takes the order, confirms the details back, and the workflow routes the fields into the right sheet. Orders, reservations and escalations each go to their own tab.

Still frame from the recorded test call
Watch a test call, 3 minutesOpens on Loom
Google Sheet of captured order rows, one row per call, with columns for the caller, the items ordered and the routing decision
The sheet the assistant writes to. Each row is one call, split into order, reservation and escalation tabs.

What the tests showed

A test call reached the n8n webhook and wrote order and reservation fields into Google Sheets in under two seconds. Where the assistant transcribed a caller name incorrectly, the record was routed to an escalation sheet instead of being confirmed.

n8n workflow canvas for the restaurant assistant, showing the webhook node branching into separate Google Sheets nodes for orders, reservations and escalations
The workflow behind the call. The webhook receives the fields, then routing sends each type of request to its own tab.
The transcript panel from one call. The assistant reads the order back and the caller confirms it.

What is not proven

This was built as a graded academy project around a fictional restaurant. It has run on test calls and sample data only. It has not handled a noisy line, an interrupted caller, or a real kitchen during service.

What I would do next

Add field level confirmation before an order is accepted, then test against noisy calls and incomplete orders before proposing any live pilot.

Vapi · n8n · Google SheetsRead the full case study
Running system

Automated job search and alert pipeline

A scheduled workflow that pulls remote job listings from three sources, normalises fields that none of them format the same way, filters against my criteria, removes duplicates it has already seen, and sends what is left to Telegram.

Telegram alert arriving on a phone, one message per job listing with the role title, company and a link
One alert as it arrives on the phone. One message per listing that survived the filters.

What one recorded run did

124 listings collected across three sources. Boolean and exclusion filters cut them to seven. Deduplication against previous runs left five. Five alerts arrived in Telegram.

  1. Collected from 3 sources124
  2. After filters7
  3. After removing duplicates5
  4. Sent to Telegram5

One recorded run. The workflow canvas below shows the same counts.

n8n workflow canvas for the job pipeline, with item counts printed along the connectors between the fetch, normalise, filter, deduplicate and Telegram nodes
The same run inside n8n. The numbers printed along the connectors are the counts passing between each step.

What is not proven

It runs from my own computer on a schedule, which means it stops when the machine sleeps. It has not been tested across weeks of unattended running, API outages, or source websites changing their response format.

What I would do next

Move it to hosting that does not depend on my laptop, then measure failure rate, duplicate handling and cost across repeated scheduled runs.

n8n · REST APIs · TelegramRead the full case study

More systems are in progress and will be added here as they are finished and tested.

Caleb Oke, photographed from the shoulders up against a plain background

About me

I am Caleb Oke. I am a Computer Science student in Nigeria and I build AI automations for creators and small service businesses.

I finished a three month AI and automation programme at TS Academy, and since then I have kept building with n8n, Vapi, Python, webhooks and REST APIs. The restaurant assistant on this page came out of that programme. The job pipeline is something I built for myself and still run.

I write up what I build, including the parts that fail, because a system that has never been tested against bad input is not finished. If you are weighing up whether a process on your team can be automated, the audit is the cheapest way to find out.

I document the work as I go on Instagram and TikTok as @tech_caleb_

Tell me what you do manually

Describe the task in a few sentences. I will ask follow up questions if I need them, and I will tell you if I think it is not worth automating.

I reply within two working days.