Inspiration

What it does

Inspiration

The idea behind OneTap is simple: during a busy shift, it is easy to lose track of where the time actually went. I wanted a way to record workload without adding another complicated task, so the basic interaction is just tapping the activity you are doing.

For this hackathon, I wanted to go one step further. Instead of only showing a report after the shift, I added a background agent that can look at the workload data over time and decide whether there is enough evidence to suggest a small experiment, evaluate an earlier experiment, or simply do nothing when the data is too weak.

What it does

During a shift, the user records activities such as direct patient care, documentation, coordination, administrative work and breaks.

When the shift ends, OneTap first creates the normal workload report. The calculations are deterministic: Python handles durations, percentages, baselines, thresholds and comparisons.

A background Workload Agent is then started automatically. It can:

  • review the completed shift;
  • compare it with recent comparable shifts;
  • check whether a workload experiment is already active;
  • create a small measurable experiment;
  • evaluate an existing experiment; or
  • defer when there is not enough reliable information.

The agent does not receive patient names, diagnoses, medications, clinical notes or medical records.

How I built it

The main application is built with Python and Streamlit and runs on Google Cloud Run. Firestore stores the workload data and agent jobs.

After a shift is completed, Pub/Sub sends the background job to a separate private Cloud Run worker. That worker runs a Google ADK agent with Gemini 3.5 Flash.

The agent only works through a small set of controlled tools. Those tools expose privacy-safe workload aggregates and keep the numerical decisions in deterministic Python code.

Challenges

The hardest part was making the background workflow reliable without changing the existing shift-reporting system. I also had to handle retries safely and make sure a failed agent job could never damage or replace the doctor's original report.

Another challenge was keeping a clear boundary between what Gemini can reason about and what should always be calculated by normal code.

What I learned

The main thing I learned is that an agent does not need to control everything to be useful. In OneTap, Gemini decides what action makes sense, but the calculations and safety checks stay in deterministic code.

I also learned a lot about connecting ADK, Pub/Sub, Cloud Run and Firestore into one background workflow.

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for OneTap Workload Agent

Built With

  • docker
  • fastapi
  • gemini-3.5-flash
  • google-adk
  • google-cloud-firestore
  • google-cloud-pub-sub
  • google-cloud-run
  • google-identity-platform
  • python
  • streamlit
  • vertex-ai
Share this project:

Updates

Submission history