Inspiration
Outdoor service businesses such as landscapers, lawn-care companies, exterior painters, roofers, and other field-service contractors build their schedules days in advance, but weather can make those plans obsolete very quickly.
The problem isn't simply knowing that rain is coming. A dispatcher has to determine which jobs are actually affected, which can still be completed safely, how long conditions may remain unsuitable, whether other work can be moved forward to preserve crew capacity, and which customers need to be contacted.
RainShift was inspired by the idea that this is a natural use case for an autonomous agent. Instead of giving a dispatcher another weather dashboard to watch, I wanted to build a system that could monitor conditions itself, understand the operational consequences, and prepare an actionable recovery plan.
What RainShift Does
RainShift is a weather-aware scheduling agent for outdoor service businesses.
It automatically monitors a live 72-hour weather forecast and evaluates scheduled jobs against task-specific operating rules. Different types of work have different tolerances: mowing may be affected by wet turf, pruning may still be feasible, chemical applications can have stricter weather requirements, and high heat can require additional crew recovery time.
When RainShift detects a meaningful operational impact, it can:
- Identify affected and unaffected work
- Recommend delays or flag jobs requiring human review
- Find opportunities to pull suitable work forward
- Rebuild the proposed crew schedule while protecting constraints such as lunch periods and existing commitments
- Account for high-heat recovery requirements
- Draft customer communications explaining proposed schedule changes
- Present consequential changes for operator approval before they are executed
RainShift also recognizes that weather does not always mean rain. The prototype demonstrates responses to high heat, moderate rain risk, heavy afternoon rain, and extended dry conditions.
How I Built It
RainShift combines autonomous monitoring, deterministic operational logic, and generative AI.
The backend is deployed on Google Cloud Run, while Google Cloud Scheduler automatically invokes the live weather-monitoring workflow each day. Live forecast data comes from Open-Meteo.
The agent workflow uses Google's Agent Development Kit (ADK) and Gemini 3.5 Flash through Vertex AI.
A key architectural decision I made was not to let a language model decide whether a job is operationally feasible. Weather thresholds, task tolerances, schedule constraints, heat-recovery rules, and recovery actions are handled through deterministic domain logic. Gemini is used where generative AI is better suited, including reasoning, summaries, and customer-ready communications.
This gives RainShift the flexibility of an AI agent while keeping consequential operational decisions explainable and reproducible.
Customer communications are also approval-gated. The system can identify the issue and prepare the response automatically, while the operator remains in control of changes that directly affect customer commitments.
Challenges
One of the biggest challenges I faced was moving beyond a simple "rain means cancel" model.
Real scheduling decisions depend on the type of work, timing of the weather, previous conditions, drying time, crew availability, existing commitments, and whether unaffected work can be repositioned to recover lost capacity. Building useful recovery behavior required treating the schedule as an interconnected operational system rather than evaluating each job independently.
High heat presented another interesting challenge. I added crew-level heat exposure accounting so RainShift can track qualifying work during the hottest part of the day and recommend shade and hydration recovery without unnecessarily disrupting the rest of the schedule.
I also had to carefully separate the live operational workflow from repeatable demonstration scenarios. The live monitor uses real forecast data, while synthetic scenarios allow specific recovery behaviors to be demonstrated consistently without contaminating the live schedule state.
Finally, I wanted RainShift to be genuinely agentic rather than an application that only does something after a user clicks a button. The production workflow therefore uses Cloud Scheduler to initiate weather monitoring automatically. The manual live-check control in the demo invokes the same workflow so its behavior can be observed in real time.
What I Learned
The biggest lesson was that useful agentic systems do not necessarily need AI to make every decision.
For this use case, the strongest architecture was a hybrid one: deterministic logic for decisions that need consistency and explainability, and Gemini for tasks that benefit from language understanding and generation.
I also learned that weather-aware scheduling is fundamentally a recovery and optimization problem, not just a forecasting problem. The value is not in telling a contractor that it may rain. They can already get that from a weather app. The value is in determining what that weather means for upcoming work and preparing a practical response before the dispatcher has to intervene.
What's Next
RainShift is currently a focused prototype, but the same agentic approach could extend beyond landscaping to roofing, exterior painting, fencing, construction, and other weather-sensitive field-service industries.
Future versions could integrate directly with field-service management platforms, monitor forecasts more frequently as significant weather approaches, incorporate additional operational constraints, learn company-specific scheduling policies, and automatically coordinate approved changes with crews and customers.
The broader vision is simple: outdoor businesses should not have to continuously watch the weather and manually rebuild their operations every time the forecast changes. RainShift can watch it for them.
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for RainShift
Built With
- cloud-run
- cloud-scheduler
- gemini-3.5-flash
- google-adk
- google-cloud
- open-meteo-forecast
- python
- react
- resend
- typescript
- vertex
Log in or sign up for Devpost to join the conversation.