AI engineer and builder
Trevor Grafton
- Voice agents, local agent teams, ML and games.
- ~$20K/yr projected savings from Alex, a phone agent that files real tickets.
Computer science student with a service desk
Who I am
- BS Computer Science, Wentworth Institute of Technology, expected May 2027.
- Service Desk Analyst Co-op, then part-time IT Specialist, at BXP.
- I build AI systems where small action surfaces and measured costs matter.
The problem
Alex: a phone line that files tickets
- Routine service-desk calls tie up staff who should be solving hard cases.
- Alex answers a real phone number, says it is an AI, and gathers the details.
- When the call ends, plain Python files a complete incident in ServiceNow.
- Alex answers up to three calls at once, with overflow to the help desk.

Architecture
Alex: how a call becomes a ticket
| Step | What happens |
|---|---|
| Caller dials in | Azure Communication Services answers the call |
| Live conversation | Azure OpenAI Realtime (gpt-realtime-2.1-mini), speech to speech |
| Caller hangs up | gpt-5-mini, with no tools, extracts the ticket fields from the transcript |
| Ticket filed | Plain Python creates the incident through the ServiceNow Table API |

Security
Alex: a jailbreak has nothing to reach
- The action surface is 3 verbs: talk, transfer to a human, hang up.
- 906 automated tests in the Alex repository.
- The live model has no ServiceNow tools; the post-call model has no tools at all.
- ServiceNow access is narrow: Python files the ticket after the call; the one read is a verified caller's own ticket status.
- Credentials never enter a prompt, and Alex does not store call audio.
- Operator console with mandatory TOTP and role-based access.
Cost
Alex: what it costs
| Measure | Value |
|---|---|
| Per call minute, all-in | ~$0.05/min (measured from Azure billing) |
| Projected run cost | under $1K/yr |
| Projected savings | ~$20K/yr (a projection, not realised savings) |
| Median turn latency | 390 ms over 141 turns (resume) |
In development: OpenClaw and Discord
JARVIS: a local agent team
- A boss agent hands work to Research, Coder and QA agents.
- Runs locally on ollama/qwen2.5:7b, controlled from Discord through OpenClaw.
- 44 tool definitions make prompt processing the bottleneck on a CPU (from my posts).
- Gateway bound to loopback; the bot token lives in an environment variable (from my posts).
- No public source and no latency benchmarks yet.
In development: Built and Planned
RAG research
- Built: a 16-chapter FastAPI, PostgreSQL and React learning playbook, re-run with 9, then 11, then 14 tests.
- Built: tests ran on SQLite and fakeredis; the Postgres-only SQL was never run on a live server.
- Planned: one PostgreSQL database for referrals that arrive by fax, phone and email.
- Planned: hybrid search and a reranker for monthly reporting, with a local embedding model and LLM.
- The referral system is a design only. No results are claimed.
Channel access: method only
Networked ML and RL algorithm
- Five strategies in the code: slotted-ALOHA baseline, Q-learning, adaptive step size, a hybrid of the two, and a UCB bandit.
- Each device sets its own transmit probability; plots compare the strategies with the 1/e slotted-ALOHA line.
- A fairness term nudges devices on long success streaks to back off.
- No measured results are published, and there are no automated tests.
Full stack
Restaurant app
- Flask and MySQL restaurant database with CRUD screens.
- Face-recognition sign-in using OpenCV; it matches one known staff face only.
- A console chatbot answers questions about the data; its read-only rule is enforced by its prompt, not by database permissions.
- No automated tests. Demoed on video.
Luau with professional tooling
Roblox games
- Riposte: a 1v1 melee duel built on parry and step-out timing.
- Pet Cafe Tycoon: a multi-floor tycoon in development, with a public repository: https://github.com/graftonatwit/pet-cafe-tycoon
- Both are built with Rojo, with Lune or TestEZ tests on the pure logic.
- Steal a Dinosaur: in development, not launched; source private.
- Riposte has not been playtested by a human yet.
Raspberry Pi 5
Homelab
- File-backed: a system dashboard (psutil and Flask) that asks a local Ollama model for analysis on manual refresh; the AI-System-Monitor repo is public.
- From my post only: Pi-hole DNS filtering and a local AI outfit check fed by a Tapo camera.
- Plans only: a redundant storage array and a backup target.
Key numbers
Impact
| Claim | Value |
|---|---|
| Alex savings | ~$20K/yr (projected) |
| Alex cost per call minute | ~$0.05/min (measured) |
| Alex action surface | 3 verbs (code-verified) |
| Fewer tokens querying the map first (one test) | ~76% (measured) |

Beyond the featured work
More projects
- MLB game predictor: Elo, calibrated logistic regression and XGBoost in a daily pipeline; about 57% test accuracy against a 52.9% home-team baseline (June 2026 notes); the market still beats the model alone.
- Clinic Referral Tracker: Scrum Master and Product Owner on a three-person course team; requirements done, app not built yet.
- Personal finance tracker: a Python command-line app with SQLite, pandas and matplotlib.
- Earlier builds: ten small public repos (routers, servers, games, labs) linked on the site.
Watch them run
Demo videos
- Restaurant management app demo: https://youtu.be/mkLY7o9TAsI
- West End Redevelopment VR demo: https://youtu.be/Cj0fLZzFD_E
- The deck cannot play video; both links open on YouTube.
Let's talk
Contact
- trevorjgrafton@gmail.com
- https://www.linkedin.com/in/trevor-grafton-85941533b/
- github.com/graftonatwit
- Greater Boston
- Spring 2027: seeking a co-op (January to May or June)
- Summer 2027: seeking part-time work (May to August)
- Fall 2027: seeking full-time roles (September start)
- Resume: download the PDF from the site.
Slide 1 of 16: Trevor Grafton
1 / 16
Use the left and right arrow keys; Home and End work once focus is in the deck.