-
-
First screen of onboarding
-
Description of what FieldHand does
-
Third screen of onboarding
-
Fourth screen of onboarding
-
Fifth screen of onboarding
-
Build a safety plan where you enter information about your region
-
Completed safety plan for Manteca
-
Other info on the page with weather and what to do
-
Ask a question where Llama answers the question.
-
Basic workflow
Inspiration
California's farmworkers pick grapes, tomatoes, and almonds through triple-digit heat, wildfire smoke seasons, and freezing mornings. Cal/OSHA has rules to protect them, but those rules are buried in long legal pages, mostly in English, that can be difficult to navigate in the middle of a field. We wanted to build a tool that workers and crew leads can open on a phone, in English or Spanish, to quickly understand what precautions to take and what workplace protections may apply.
What it does
- A safety plan in seconds: Enter a crop, temperature, and smoke level; describe conditions in a text-like format (e.g., "grapes, Manteca, 98°F, smoke 165"); or retrieve available weather information for a town. FieldHand provides practical precautions, warning signs, emergency guidance, and links to official sources.
- Every hazard counts: Heat, cold, and smoke are assessed separately, so one hazard cannot automatically hide another. A hot, smoky day can display both heat precautions and smoke-related guidance.
- AI-powered answers: FieldHand integrates Llama 3.3 through Cloudflare Workers AI to explain safety information in plain language. It distinguishes official-rule answers from general guidance. Live AI availability depends on the deployed service being correctly configured.
- Reminders: Water and cool-down reminders, plus planting reminders with dates and notes. Reminders currently work while the app is open.
- Your rights: Find information about workplace protections and how to file a Cal/OSHA complaint.
- Crew lead checklist: Review key precautions and share a text version of the safety plan with the crew.
How we built it
FieldHand uses Cloudflare Workers, Cloudflare Workers AI, HTML, CSS, JavaScript, and Open-Meteo for weather and air-quality information.
Our core principle is: the rules decide the facts, and the AI only writes.
Safety thresholds and hazard classifications are handled by application code. Heat, cold, and smoke are assessed independently and combined into one plan:
$$ \text{hazards} = H(T) \cup S(\mathrm{AQI}) $$
The current heat/cold classification is:
$$ H(T)=\begin{cases} \text{high heat} & T \geq 95^\circ F \ \text{heat} & 80^\circ F < T < 95^\circ F \ \text{cold} & T < 50^\circ F \ \varnothing & \text{otherwise} \end{cases} $$
The app uses AQI ≥ 101 as an early smoke-risk advisory threshold. This is an app-defined warning, not the legal trigger for Cal/OSHA's wildfire-smoke standard, which generally applies to covered workplaces at a PM2.5 AQI of 151 or higher, subject to its scope and exceptions.
The AI generates a short summary using structured output. The server validates it and rejects summaries that add unsupported numbers, omit detected hazards, exceed the expected length, or violate the required format. If the summary fails validation or AI is unavailable, the app falls back to the rule-based safety plan.
We also compare sentence similarity to help identify repetitive content:
$$ J(a,b) = \frac{|A \cap B|}{|A \cup B|} \geq 0.6 \Rightarrow \text{potential duplicate} $$
Weather information is labeled by its source and retrieval time when available. Manually entered conditions are identified as user-provided rather than live measurements.
AI assistance: Claude, ChatGPT, and OpenAI Codex assisted with implementation, UI iteration, debugging, and testing. Our team directed the concept and design, reviewed changes, and worked on testing and integration. We adapted existing prototype code where applicable.
Challenges we ran into
- One hazard hiding another: An early version let smoke override heat, causing hot, smoky conditions to lose their cool-down guidance. We changed the logic so hazards are assessed independently and added tests for overlapping conditions.
- Keeping the AI honest: The model could generate unsupported thresholds, repeat itself, or answer beyond the available rules. We added server-side validation, constrained the output format, and made the rule-based plan the fallback.
- Honest data labels: Manually entered temperatures could look like live forecasts. We improved labels to distinguish examples, user-entered conditions, and available weather-service readings.
- Venue Wi-Fi and deployment: Package installation was unreliable, so we created a deployment script to simplify deploying the app to Cloudflare.
- Privacy: We removed the externally hosted font dependency to reduce third-party requests. The user's town name is not sent to the AI model. The app does not require accounts or use tracking cookies, and its Privacy Policy describes its data handling.
Accomplishments that we're proud of
- Built a bilingual English-and-Spanish safety companion for agricultural work conditions.
- Created independent hazard checks so overlapping heat and smoke risks appear together.
- Separated safety logic from AI-generated wording, with server-side validation and a rule-based fallback.
- Built distinct screens for safety plans, AI questions, reminders, resources, settings, Terms and Conditions, and Privacy Policy.
- Included source links to help users find official workplace-safety guidance.
- Developed automated checks for safety logic, navigation, language behavior, and AI failure states across mobile, tablet, and desktop layouts.
The development test suite reported 42 server checks and 185 browser checks passing against the configured test environment. These results do not independently confirm live Cloudflare AI inference or every external service in production.
What we learned
- Safety rules belong in code, not just in a prompt. AI can make guidance easier to understand, but its output must be checked.
- A safety tool must remain useful when AI is unavailable.
- Accurate source links and clear labels are essential when translating technical rules into everyday guidance.
- Supporting two languages means making the entire experience understandable, not just translating individual words.
What's next for FieldHand
- Have native Spanish speakers review the translations and test the app with real agricultural crews.
- Integrate official AirNow smoke readings alongside forecast estimates.
- Explore reminders that work when the app is closed and text alerts for crews without smartphones.
- Add more languages spoken by California farmworkers.
Our Team
Avyukth Sateesh, Umair Shaik, Krish Patel, and Rishan Gurbani
Built With
- chatgpt
- claude
- claudeopus5.5
- cloudflare
- codex
- farmers
- field
- llama
- workersai
Log in or sign up for Devpost to join the conversation.