Portfolio

Selected Work

These are systems I've designed, built, and shipped: real implementation work, real users, honestly described. Built at a large organization (not named, to keep the employer's internal details private). No invented metrics below: where I don't have a measured number, I say so rather than estimate one.


Case study 1

One System, Every Department

A shared system that turns scattered outreach and follow-up into one consistent, automatic process across departments.

Problem

A multi-team organization had outreach and follow-up spread across several internal groups, with coverage varying widely depending on who happened to be handling it that particular week, and no shared paid AI subscription for anyone on the team to fall back on when things got busy. That meant there was no consistent, team-wide way to draft replies, keep the tone genuinely on-brand, or reliably log what had already been sent and to whom, and when.

Approach

I built a custom AI chatbot trained on the team's own outreach playbook, using a no-cost, instruction-based setup rather than a paid integration, so every team member can use it without needing their own individual paid subscription or license. It draws on the same pre-approved messaging, tone guidelines, and reference links the team already used by hand, so replies stay consistent no matter who's actually sending them on a given day, and nothing goes out that hasn't already been reviewed and approved as genuinely on-brand. Before it ever touched a single live conversation, I tested it thoroughly against a full batch of realistic sample outreach scenarios, checking tone, accuracy, and formatting against the team's own internal standards, line by careful line, well before anyone on the team actually relied on it day to day.

It's paired with an automated pipeline, a lightweight web service plus a spreadsheet script, that routes each logged interaction automatically to the right internal group and tracking sheet, without anyone having to manually forward or re-enter anything by hand. It also sends a 7-day follow-up reminder entirely on its own, so nothing quietly falls through the cracks just because someone got busy and forgot to check back in on it days or weeks later than they'd originally planned to. That pipeline runs on the same structured data Case 2's chatbot already produces for every single reply, which is what makes the whole routing system possible in the first place, without any extra manual tagging, re-entry, or cleanup work from anyone else on the team, at any point in the process, now or later.

Outcome

Already in use internally across several teams, built directly on top of the reply-drafting foundation Case 2 established, so it didn't require starting the whole system over again completely from scratch on day one. It's new, and not yet battle-tested at real scale across the busiest weeks of the year, but it's real, deployed infrastructure already doing real, day-to-day work across multiple groups right now, not a demo sitting untouched in a folder somewhere, waiting for someday to finally show up and prove itself worth the investment of everyone's time and attention.

Recently finalized
Case study 2

On-Brand Replies, Every Time

A ready-made assistant that keeps outreach replies consistent, on-brand, and fast to send.

Problem

Outreach replies needed to stay consistent in tone, use pre-approved messaging, and include the right supporting links every time, but writing each one by hand was slow, repetitive, and inconsistent depending on who on staff happened to be handling that conversation on a given day, especially whenever volume unexpectedly spiked without much warning at all beforehand, which happened often enough to matter.

Approach

A custom AI chatbot trained on the internal outreach playbook and pre-approved messaging, with a reference document of links, so it drafts replies in the right tone and automatically pulls in the correct hyperlinks for whatever the conversation actually needs, instead of leaving that lookup work to whoever happens to be answering that day. It was built and tested against a batch of realistic sample conversations first, checking tone, accuracy, and link accuracy carefully line by line, before anyone on staff ever saw a real draft come out of it or actually relied on it for real outreach, day in and day out, week after week, across the whole team, consistently, reliably, and without exception, from the very first day it actually launched and went live for everyone involved on staff.

Beyond the reply itself, it also outputs a structured summary of each interaction, a fit classification and category tag, plus a partner or industry tag, so every conversation becomes usable data instead of a one-off email that disappears into an inbox somewhere and is never looked at again by anyone on the team. That structured output is what makes Case 1's downstream routing and tracking possible in the first place, without anyone having to re-enter the same information by hand a second time for a completely different system down the line, over and over again, week after week, indefinitely, for as long as either system keeps running day to day, without fail, ever, on either end of the pipeline itself, from the very start all the way to the very finish, with no exceptions at all.

Outcome

Drafts outreach replies for the team today, and the structured data it produces is what feeds Case 1's multi-team routing, tracking-sheet logging, and 7-day follow-up reminders directly, without any extra manual work in between the two systems on either side of the process. This assistant is the foundation that whole downstream system is actually built on top of, not a separate, disconnected piece of the puzzle running off quietly somewhere unrelated to everything else built up around it, piece by piece, over real time and real effort.

In active use
Case study 3

One Dashboard, Every Angle

A once-manual reporting slog, replaced by a live dashboard that updates itself every day.

Problem

A client-facing team relied on a system that emailed out interaction data in pieces, several separate spreadsheets a day, each holding part of the picture. Turning that into anything usable meant manually collecting, combining, and reformatting every single email by hand, work that ran to hours a week for one person and days or weeks a year across the whole team combined, every single year without fail.

Approach

I built a script that watches the inbox for those incoming reports around the clock, then automatically parses, combines, and reformats the data from each one into a single live Google Sheet, connected directly to a dashboard tool for real-time visualization that anyone on the team can open and check whenever they actually need it, without waiting on someone else to compile it by hand first thing every morning before the day even starts properly. It was tested against weeks of realistic sample reports first, checking for parsing errors and formatting mismatches carefully, before it ever touched a single real inbox or a real report from a real person, to make sure nothing broke on day one or any ordinary day after that, quietly, in the background, without drama or downtime.

That live sheet feeds a fully filterable dashboard, refreshed automatically every day without anyone having to trigger it manually or remember to run it themselves each morning before starting other work. It tracks activity trends, surges, and baselines across categories, cohorts, and staff type continuously, all day, every day, without interruption or gaps of any kind. It replaced what used to be a recurring manual chore with something that simply runs quietly in the background, day after day, and stays current whenever anyone actually goes to look at it, whether that's daily, weekly, or once a full quarter later on down the road, without anyone ever having to stop, wait, ask, follow up, or double-check the numbers by hand themselves ever again, for any reason at all, for as long as it keeps running.

Outcome

A fully filterable, live-updating dashboard, refreshed daily, that tracks activity trends, surges, and baselines across categories, cohorts, and staff type, broken out into an executive overview, a staff-workload view, and a demographic-analysis view for different audiences. It's used across the organization, from individual staff to senior leadership, for everything from performance reviews and year-end reporting to staffing decisions and making sure service reaches everyone equitably. All figures shown anywhere are aggregated and fully anonymized before anyone sees them.

Running in production
Case study 4

Never Miss a Renewal Again

A quiet safety net that catches expiring agreements before anyone has to remember to check.

Problem

A partnerships-focused team was tracking over 200 active partnership agreements by hand, in a shared spreadsheet, with expiration dates that depended entirely on someone remembering to look, scroll through the list, and catch the ones coming due before it was too late to act on them, week after week, quarter after quarter, without any real backup system in place if that person got busy or moved on.

Approach

An automation script tied directly to the team's existing tracking spreadsheet, watching every single agreement's expiration date continuously in the background, without anyone having to open the file or check it manually themselves. It reads the same spreadsheet the team already trusted and uses day to day, so there was nothing new to learn, migrate, or maintain separately going forward, and no second system to keep in sync with the first one over time as things changed and new agreements got added regularly. It was tested against a copy of the real spreadsheet first, checking the reminder logic and timing carefully, before it ever touched a live agreement or sent a single real reminder to anyone on the team involved in any of it at all, ever, under any circumstances.

It automatically sends reminder emails at 90, 30, 14, and 3 days out from each agreement's expiration date, to everyone who actually needs to act on it, not just one person who happens to remember to check that week. That way coverage doesn't depend on any single person's memory, schedule, or whether they happened to be paying attention that particular week when it mattered most for the team, whether that's a manager, a coordinator, or whoever owns the relationship day to day, across the whole partnerships group, without exception, regardless of who's out sick, on vacation, or simply swamped with other work that particular week, for whatever reason that happens to come up unexpectedly along the way each and every single time it does happen.

Outcome

Built and ready to go, currently in requirements-gathering with stakeholders ahead of a full rollout, so the reminder recipients and timing actually match how the team really works, day to day, before it goes live for everyone involved on the team. That step matters: a reminder system nobody trusts or tunes to their actual workflow gets ignored fast, and the whole point is that this one doesn't, from day one onward, quarter after quarter, without fail, for as long as it stays in active, everyday use across the whole team.

In progress
Case study 5

One Home for Every Resource

A single, always-current hub that replaced scattered documents with one place to browse and copy from.

Problem

Team members wanted quick, self-service access to ready-to-use client-facing materials, prewritten templates and boilerplate language they could drop straight into their own work, without digging through scattered documents, shared drives, and old email threads every single time they needed something, which happened constantly, across every part of the organization, week in and week out.

Approach

Built using agentic AI coding tools (Claude Code, running multiple coding agents in parallel to move faster than working through it one piece at a time by hand), it's an interactive hub of over 80 click-to-copy resources organized by category, so anyone can find exactly what they need in seconds rather than digging through folders scattered across different drives and inboxes. It was built, tested, and refined iteratively, checking layout, search, and copy behavior carefully against real usage patterns and real staff feedback, before it ever went live for the wider team to actually use day to day, week after week, without issue, and it's kept running smoothly ever since it first quietly launched for everyone to try out, start using, and depend on every single working day of the week.

It's embedded directly into the organization's existing internal site, so there's no new login, tool, or separate URL to remember, learn, or bookmark separately from everything else people already use day to day at work. Anyone who could already access the internal site could use it immediately from day one, with zero onboarding, training, or setup required on their end, which made adoption easy from the very start and kept the whole rollout simple for everyone involved, staff and leadership alike, right from the very first day it went live for the whole team to use, explore, and come to rely on going forward, day after day, without any friction at all getting in anyone's way, ever, on any device they happened to be using at the time, wherever they were sitting or standing that day.

Outcome

Adopted enthusiastically organization-wide since launch, well beyond the original team it was first built for, and leadership is now actively working to standardize it as a shared resource for the whole organization going forward. What started as a small internal convenience for one team turned into something people across departments now reach for by default, without being told to, simply because it saves real time every single day it's actually used by someone on staff, anywhere in the org, large team or small one.

Deployed

Process

Templates & Process

Beyond the case studies above, here's a preview of what you'd actually receive working with me, shown using made-up example data, not a real client's information.

Sample Readiness Report

See an actual example, written for a made-up small nonprofit, so you know exactly what lands in your inbox before you ever reach out.

Demonstration

How I Test Before I Trust It

A peek at how I try a workflow out on realistic examples first, so nothing goes live until it's actually been checked.

Demonstration

Exactly What You'd Receive

Blank versions of every document you'd get: the proposal, the readiness report, the build plan, the handoff guide. No surprises about the paperwork.

Demonstration

Risk & Rollback Plan

Every Build comes with a short, plain-English note on what could go wrong and exactly how to undo it, before anything touches your systems.

Demonstration

90-Day Check-In

About three months after handoff, I'll check in with a quick note on how it's holding up and whether anything needs a tweak.

Demonstration

Plain-Language Tool Briefing

A short, no-jargon rundown of which AI tools actually make sense for your situation, and which ones you can safely skip.

Demonstration