Inspiration

Allergies (and the problems they cause) are something that Vlad, Carlos, and I (Erik) have all interacted with. Vlad has allergies, and struggles to differentate between his allergies acting up and an actual sickness. Similarly, the same problem causes Erik's younger brother struggles to accuratly dose his allergy induced asthma medication. In response, we have created Pollen Cast, becouse the difference between allergies and sickness shouldn't be a guessing game.

What it does

Pollen Cast is a web app which uses biometric data and pollen level data to determine if your symptoms are allergy induced or another sickness , removing the uncertainty so many experiance every allergy season. The app give you the probability that you are sick, and if you are sick, the probability of its being caused by allergies.

For patients, the app provides a first-line self-assessment tool that filters likely-allergy cases, reducing unnecessary GP visits.

For the healthcare system, the app becomes a clinical decision aid generating structured symptom history and medication data to share with healthcare workers: improving the accuracy and speed of diagnosis. As Pollen Cast grows, its anonymised, aggregated data becomes a powerful public health asset. A live, crowd-sourced epidemiological map that enables public health officials to track the spread of sickness and allergy in real time.

For society, we reduce the number of unnecessary sick days and tackle presenteeism. Lowering the hidden economic loss where allergies truly costs society and businesses the most.

This app is special becouse the more a user interacts with Pollen Cast, the smarter it gets. As the model accumulates individual symptom history, voice patterns, and eye scan data over time, it learns the unique ”allergy fingerprint” of each user.

How we built it

Google's APIs are the core intelligence layer of Pollen Cast without them, we'd have a symptom checker; with them, we have a diagnostic engine.

We used Google Map's Pollen API to pull real-time, location-specific pollen forecasts (tree, grass, and weed pollen levels mapped to Google's Universal Pollen Index). This live environmental context is a critical input: knowing that oak pollen is "High" in a user's exact location radically changes the interpretation of their runny nose. For clinical biomarkers, we implemented a specialized Python/FastAPI microservice that uses librosa to perform MFCC and spectral analysis on voice recordings, detecting nasality as an indicator of congestion. In regards to vision analysis, we integrated Gemini 2.5 Flash for markers like redness, discharge, and whether symptoms were bilateral All of this data, the pollen forecast, acoustic features extracted from the user's voice recording, and visual signals from their eye photo is then passed to the Gemini API as a structured, multi-modal prompt. Gemini acts as the reasoning layer, synthesising these disparate data points into a coherent clinical assessment. We engineered the prompt carefully to ensure Gemini maintains clinical safety standards (for example, treating unilateral eye redness as a high-risk flag regardless of pollen levels) while keeping the allergy probability mathematically consistent with the overall sickness probability. Several iterations of prompt engineering were needed to get Gemini to reason about these probabilities reliably and safely.

Challenges we ran into

One of our primary technical hurdles was the orchestration of a hybrid backend that bridged two very different environments: a Node.js server for data flow and a Python microservice for specialized signal processing. We encountered significant friction when attempting to process compressed audio formats like Apple’s .m4a and .mp3 files in memory; the librosa library initially struggled with these formats without a physical file path for decoding. We resolved this by implementing a robust temporary file-handling system on the server, ensuring that the acoustic features could be accurately extracted regardless of the user's device. Additionally, fine-tuning the Gemini AI prompt to maintain clinical safety—such as prioritizing unilateral redness as a high-risk indicator—while keeping the allergyProbability mathematically consistent with the overall sicknessProbability required several iterations of prompt engineering.

Accomplishments that we're proud of

We are particularly proud of building a truly multi-modal diagnostic engine that moves beyond simple text-based symptom checkers. By successfully integrating MFCC (Mel-Frequency Cepstral Coefficients) and spectral centroid analysis into a mobile-friendly workflow, we were able to turn a simple voice recording into a clinically relevant data point for nasal congestion. Seeing the system correctly identify the difference between a natural voice and a congested one, and then watching Gemini synthesize that "invisible" acoustic data with "visible" eye redness and real-time Google Pollen API data, was a major breakthrough. We managed to create a sophisticated, end-to-end diagnostic pipeline that feels seamless to the user but is technically complex under the hood.

What we learned

This project was a deep dive into the intersection of Digital Biomarkers and Generative AI. We learned how to extract mathematical signatures from human speech to identify physiological changes, moving from raw audio waves to spectral features that indicate health status. On the infrastructure side, we gained significant experience in cross-language service communication and managing session persistence with Supabase in a React Native environment. We also learnt how to backtest our data and how to make a secure database for user information.

What's next for Pollen Cast

We would like to do more tests to ensure even higher accuracy and long term we would like to expand to other diseases such as being able to early diagnose asthma. Alongside that, we will bring our product to hospitals, at home users and insurance companies to help make healthcare more accesible.

Built With

Share this project:

Updates