Product Design · Healthcare Technology · AI Tooling

Clockwork: an AI-assisted scheduling system for ABA care teams.

I designed a scheduling system that replaced three disconnected tools with one AI-assisted platform. In the first three months, the team reported ~32% more appointments booked than they had in the same period the prior year.

~32%
appointment lift in
the first 3 months
vs. same period prior year
Client
Easter Seals Northern CA — Catalight
Track
Product Designer, AI-assisted scheduling team · Easter Seals care scheduling team for the first year
Timeline
5 months — shipped · Iteration ongoing
My role
End-to-end product design from discovery through launch
Core outcomes

→ ~32% lift in appointments booked vs. prior year same period

→ Reduced schedule-creation time from 4+ hours per week to under 30 minutes

→ Coordination errors dropped substantially across all three care team tiers

→ Practitioners report higher confidence finding availability and managing client conflicts

Children's care plans, held together by three disconnected tools.

ABA therapy — Applied Behavior Analysis — is therapy for autistic children. ABA care isn't a single weekly appointment, it's a layered program: clinical supervision from BCBAs, mid-level case management, and direct therapy from RBTs. A child's plan typically requires all three. In a specific ratio, weekly, for months or years.

The teams running these schedules were using three tools that didn't talk to each other. That meant manually cross-referencing a client's authorizations, qualifications and availability, and so much more, tab by tab, before they could make any match. Scheduling could take all of Tuesday morning. And the wrong match — or a missed one — could delay a child's care by weeks.

What was at stake wasn't operational efficiency. A single change in therapy coverage could mean the difference between a child hitting developmental milestones or not.

The three tools, before Clockwork
📊 Practitioner_Schedule_AUG_FINAL_v3.xlsx
Week of Aug 5
Aug 12
Master List
Practitioner
Mon 8/5
Tue 8/6
Wed 8/7
Thu 8/8
Fri 8/9
Notes
Amy J.
Direct 9-3
Direct 9-3
HOLD??
Direct 9-3
check w/ Sarah re: Wed
Breanne J.
PTO
PTO
UNSCHEDULED — 0 hrs!
Caty F.
Direct 9-1
HOLD 2pm
Direct 9-3
confirmed per voicemail
Skylar R.
Sup. 10-12
Sup. 10-12
Sup. 10-12
Sup. 10-12
Last edited by jamie.styles@catalight.org · 2 days ago ⚠ 3 unresolved conflicts
📧 Outlook — Inbox (47 unread)
RE: RE: RE: RE: Jackie Jones — Schedule Confirmation??
Jamie Styles Today 2:34 PM
Brent — can you confirm if you're still available Wed 2-3:30? Jackie's auth expires Friday and I still don't have a match for her Mid hours. Skedulo isn't showing your availability correctly again.
Brent Hiltop Today 11:12 AM
I think I'm free but I have that Truckee client Tuesday so it depends on drive time. What's the authorization end date? And which tier is she again — Direct or Mid?
Jamie Styles Yesterday 4:51 PM
She needs Direct AND Mid. Auth ends Aug 10. I'm also trying to find someone for High level — Maggie is over capacity per the spreadsheet but I'm not sure it's up to date. CC'ing Rebecca.
▸ 6 earlier messages — Rebecca Freeman, Skylar Raven, +2 others
🗓 Skedulo — Resource Dispatch
Jobs
Resources
Schedule View
Reports
Region: Northern CA ▾
Job Type: ABA ▾
⚠ Sync error — data may be stale
Amy Janes
BI · Active
Jones 9:00–11:00
Thomas 2:00–4:00
UNCONFIRMED
Brent Hiltop
RBT · Active
No jobs assigned (last synced 3d ago)
Skylar Raven
PS · Active
Supervision 10-12
capacity unknown
⚠️ Authorization data not available in this view. Cross-reference Salesforce for client eligibility before confirming any assignment.
The core tension: Three tools, none aware of the others. Authorization status lived in Salesforce. Availability lived in a spreadsheet someone maintained manually. Confirmation lived in email. Every match required a coordinator to hold all three in their head — at once.

The match was happening in the scheduler's head — every time, from memory.

The surface problem was fragmentation. The real problem was tribal knowledge. In this match process, a client's needs and a practitioner's qualifications, availability, and preferences were happening invisibly, in the scheduler's head, every time.

Jamie Styles, Admissions Manager
Primary user surface
"I spend half my week playing phone-tag with practitioners, digging through Salesforce, looking for confirmation — and also somehow managing a caseload of 40+ families." The surface problem was her job. She needed the system to stop making her do all the coordination in her head — or worse, in email.
Rebecca Freeman, Director of Client Services
Strategic decision-maker
Rebecca sat one layer above the surface. She was responsible for the whole system — who got matched, how quickly, whether the care was right. Clockwork was the tool that would make her decisions visible and reproducible, rather than locked in one coordinator's head.

The match was happening in the scheduler's head — every time.

The scheduling problem was fragmentation. The real problem was that every match relied on someone holding an enormous amount of context in working memory — which practitioners were available, who had the right qualifications, what a client's specific needs were, and which constraints overlapped.

When I started having conversations with the team, that pattern came up over and over. "I just know who to call." But when that person left, or was out sick, or was managing a caseload that was too large — the whole system slowed down. Families waited. Care was delayed.

Clockwork's job wasn't to replace that judgment. It was to give that judgment somewhere to live — so it could be shared, reviewed, and scaled across a whole team.

Five decisions that shaped the product.

01
Smart Match recommends, it doesn't auto-book.
The fastest version of this product auto-books — Calendly-style — roughly 130–150% of the time. But a scheduling system that learns slowly and builds trust handles mismatch situations much better. Clockwork surfaces top matches with confidence scores, explains the reasoning, and lets coordinators make the final call. Getting a match slightly wrong in ABA therapy has downstream consequences for a child's care. The system needed to inform decisions, not make them.
02
Show imperfect matches with warnings. Don't filter them out.
Which filter criteria matter most changes daily — a coordinator might override a preference conflict because a practitioner's relationship with a family is strong. So Clockwork shows imperfect matches with a clear explanation: "Outside client time preferences" or "Approaching capacity." Coordinators can decide what to override. The system records those overrides. Over time, that's how it learns what matters in practice.
03
The Schedule Offer form is structured around how ABA care is actually delivered.
ABA care has a very specific BCBA supervision structure. The Offer form maps to how care is actually authorized and delivered — High Level, Mid Level, Direct Care — not a generic scheduling tool's abstraction of "sessions." That specificity isn't complexity for its own sake. It's the system speaking the team's language, which is what creates trust and adoption. A system that feels foreign never gets used.
04
Operational truth lives next to the decision that depends on it.
At every point a coordinator needs to make a decision, the information that enables that decision is present — not in another tab, not in a sidebar modal, not a click away. Practitioner capacity, client authorization status, current session conflicts, expiring authorizations — all visible in context. This sounds obvious, but the previous system required 4–5 tabs for a single match. That's where the risk lived.
05
Two surfaces for two users.
Jamie and Rebecca had fundamentally different jobs. I built two primary surfaces: the Schedule Grid, which is action-oriented and optimized for rapid coordination tasks — adding sessions, spotting conflicts, responding to urgent gaps; and the Offers flow, which is slower and more deliberate, designed for reviewing care plans and sending formal authorization offers to families. The same information, structured for two different modes of work.

Four screens, four decisions made visible.

Sun
Mon
Tue
Wed
Thu
Fri
Alice R.
Direct 5h
Direct 6h
Direct 6h
HOLD CONFLICT
Direct 6h
PTO
Amy J.
Direct 6h
Direct 6h
Direct 6h
Direct 6h
Direct 6h
N/A
Breanne J.
Direct 1h
N/A
N/A
N/A
PTO
N/A
Caty F.
Bereavement
N/A
HOLD 30m
N/A
N/A
N/A
Schedule Grid
Week-at-a-glance across all practitioners, with conflict detection built in. HOLD sessions that overlap Direct sessions surface as CONFLICT badges automatically — no manual checking required.
PRACTITIONERS
Caty F.
Mid Level
Alice R.
Clin. Manager
Amy J.
Behavior Int.
Caty Freemont
TUESDAY, 16TH
Connie T. – Parent Led ABA · 9:00–10:20am
Meal Time · 10:30–11:00am
Robert K. – Chat · 11:00am–1:00pm
Supervision · Caregiver Training
Capacity
Weekly
75%
Monthly
60%
Practitioner Detail
A sidebar panel surfaces the full picture of a single practitioner — day timeline, case load, capacity bars — alongside the week grid. Context lives next to the decision that needs it.
Current Offer Details
Pending Acceptance ⓘ
Authorization Details · Tier 1
Service Types
Parent Led ABA
Funder
Kaiser Permanente
High Level Optimal Hrs
60
Mid Level Optimal Hrs
60
Service Location
💻 Telehealth · 1234 Ventura Ct. CA
🏠 Client's Home · 1234 Ventura Ct. CA
Cancel
Save and Send
Schedule Offer Form
The offer form is structured around how ABA care is actually authorized and delivered. High Level, Mid Level, Direct Care tiers map to real authorization categories — not generic calendar abstractions. The system speaks the team's language.
Smart Match Results — Jackie Jones
Mid Level Hours
60%
Skylar Raven · Program Supervisor
Mondays · 1:00pm–2:00pm · Recurring
*Outside prefs
40%
Jenna Mayfield · Program Supervisor
Thursdays · 1:00pm–2:00pm · Recurring
*Outside prefs
Direct Level Hours
100%
Brent Hiltop · RBT
Mondays · 2:00pm–3:30pm · Recurring
Within prefs ✓
Other Matches
Accept Full Schedule +
Smart Match Results
Smart Match surfaces ranked practitioners with confidence scores, availability slots, and explicit flags for preference conflicts. Coordinators see the reasoning — and choose whether to act on it. Imperfect matches are shown, not filtered out.

Assist. Don't replace. Show the work.

Smart Match is the only place AI lives in Clockwork. The team asked: "what if we just auto-assigned?" I ran that option alongside the current design. Auto-assignment would have suppressed the signal that coordinators needed most — knowing when a match was imperfect, and why.

This made the constraint legible. The decision was to build a system that made the reasoning visible, not just the output.

The AI consults, it doesn't decide. Every Smart Match result surfaces the match percentage and reason. A coordinator can override a 40% match if they know the family. The system records that decision and gets smarter over time.
Imperfect matches are never hidden. Clockwork shows matches outside client preferences with an explicit flag: "Outside client time preferences." Coordinators decide what tradeoffs are acceptable — the system doesn't decide for them.
The UI is configurable. The Smart Match form pre-fills from the client's authorized care plan. Coordinators adjust preferred days, times, and appointment type — recurring vs. single — before running the match. The system adapts to the work, not the other way around.

Mentioned the spreadsheet.

In a follow-up conversation three months post-launch, one coordinator said: "I forgot we used to use a spreadsheet for this." That was the signal.

~32%
appointment lift
vs. prior year same period
4h → 30m
weekly schedule creation
time reduction
↓ errors
coordination errors across
all three care team tiers

But the outcome I care most about isn't the ~32% lift. It's that coordinators stopped working nights. They stopped maintaining a private spreadsheet of practitioner quirks and client constraints. That knowledge is now in the system — visible, reviewable, and shareable with anyone who joins the team next.

What I'd do differently.

I'd run a deeper co-design pass with direct-care practitioners — the RBTs and BIs who were affected by scheduling decisions but rarely had input into them. The coordinator surface got thorough research. The practitioner surface got less. That imbalance shows up in parts of the schedule grid that feel slightly over-engineered for the coordinator and under-considered for the person receiving the schedule.

I'd also invest earlier in the data model for override tracking. The system records that a coordinator overrode a low match — but doesn't yet surface patterns across overrides. That's where the most useful learning would come from: not what Clockwork recommended, but what coordinators chose instead, and why.