Eat Greater Des Moines’ food rescue app has attracted hundreds of volunteers — now it needs more food to move

Jordan Sellergren/Little Village

Eat Greater Des Moines partnered with grocery stores, gas stations and the community to make sure unwanted food in Central Iowa doesn’t have to go to waste. Their food rescue app launched back in June, and in its first four months, has successfully helped increase food assistance while decreasing local food waste, Eat Greater Des Moines told Little Village.

Eat Greater Des Moines is a team of two nonprofit organizations that work to make feeding people easier by giving the community a hassle-free way to donate extra food that would otherwise be wasted. Anyone can donate, including individuals, wholesale distributors, grocery stores, convenient stores, hotels, event centers, farmers and restaurants. A volunteer will pick it up and deliver it to either a food pantry, other nonprofits, daycares, schools, people, churches, libraries, community fridges — wherever people are.

Noticing there was a gap between technology and food rescue in the metro area, Eat Greater teamed up with students at Simpson College who already had experience developing a hunger-fighting app. ChowBank, still in operation, was created to connect those in need of food with prospective donors.

“It’s actually really great because it allows donations to go [through the app]. The challenge, though, was the transportation,” Eat Greater Executive Director Aubrey Alvarez said of ChowBank. “Making it easy to donate is one thing but being able to move the product is another.”

After being selected for a food recovery accelerator program, Eat Greater decided to bring a version of the Pittsburgh-based Food Rescue Hero app to Des Moines.

“It made more sense to just purchase and use their technology that was working, than try to recreate something,” Alvarez said.

The app helped them work out a longtime kink in their food rescue process: transportation.

In 2018, Eat Greater hired WesleyLife drivers to pick up food from restaurants, stores and other businesses that would otherwise be thrown away. Eventually, that became too expensive, costing them about $1 per pound of food to pay the drivers.

An advertisement for Eat Greater Des Moines’ food rescue app. — Courtney Guein/Little Village

“My initial hope was that they [the businesses donating food] would see the value in it, and they would invest in keeping it going,” Alvarez said. “Well, after four years, that didn’t happen. So, we had to take another path. And so, that’s really where this technology and being able to really rely on volunteers, again, has been really successful.”

People who download the Food Rescue app can offer to donate food, transport it and request it. Donors can make food pick-up requests on a one-time or a recurring weekly basis. Volunteers receive pick-up and drop-off instructions, how many boxes/bags they’ll be collecting, who to contact, and where the delivery is going. An in-app GPS will guide them to the food donor and the rescue recipient.

Since launching the app in June, Alvarez said the organization has had over 600 people sign up to volunteer — more than enough to service their participating donors.

“I think our biggest challenge is we have all these people signed up who want to help, and we don’t have enough rescues happening to keep people engaged. That’s frustrating because the food is here. It’s just going in the garbage,” Alvarez said.

“We have more than enough food here to feed everybody. It’s just that it’s not being valued enough to make sure it gets somewhere when that business can’t sell it any longer.”

Part of this is due to the fact some businesses in the area have signed exclusivity agreements with food banks, Alvarez said, making them unable to donate additional items — even if they were destined for the trash.

Food rescues and food banks are different, Alvarez explained. Food banks store packaged food products and distribute them to community pantries, where people in need can find them. Food rescues specifically collect items that the owner doesn’t want or need and works to get them on someone else’s plate before they go to waste.

“Food rescue is highly perishable and needs to move quickly,” she said.

Despite Alvarez’s frustration with getting people and businesses on board with food rescue, she shouted out companies like Trader Joe’s and the Iowa Events Center for donating food waste, and the many volunteers who are ready to act on a moment’s notice when donors sign up.

“We need people,” Alvarez said. “We need this app [so that] when all of these places that have the food say yes, we’re ready to make it easy for them to get someone there to pick it up and safely transport it to where it can be consumed.”

This article was originally published in Little Village Central Iowa issue 008.

[gravityform id="17" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper your-village-form_wrapper' id='gform_wrapper_17' ><a id='gf_17' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_17' id='gform_17' class='your-village-form' action='/eat-greater-des-moines-food-rescue-app/#gf_17'> <div class='gform_body'><ul id='gform_fields_17' class='gform_fields top_label form_sublabel_below description_below'><li id='field_17_7' class='gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible' ><h3 style="font-weight:800; font-size:34px;">Let's get started</h3> <p style="font-size:18px;">Fill out this form and we'll contact you with information about marketing with Little Village!</p></li><li id='field_17_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' for='input_17_4_3' ></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gfield_trigger_change' id='input_17_4'> <span id='input_17_4_3_container' class='name_first' > <input type='text' name='input_4.3' id='input_17_4_3' value='' aria-label='First name' tabindex='2' aria-invalid="false" placeholder='First name'/> <label for='input_17_4_3' >First</label> </span> <span id='input_17_4_6_container' class='name_last' > <input type='text' name='input_4.6' id='input_17_4_6' value='' aria-label='Last name' tabindex='4' aria-invalid="false" placeholder='Last name'/> <label for='input_17_4_6' >Last</label> </span> </div></li><li id='field_17_5' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_5' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_17_5' type='text' value='' class='large' tabindex='6' placeholder='Company name' aria-required="true" aria-invalid="false" /></div></li><li id='field_17_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_3' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_3' id='input_17_3' type='text' value='' class='large' tabindex='7' placeholder='Your email address' aria-required="true" aria-invalid="false"/> </div></li><li id='field_17_8' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_' ><label class='gfield_label' for='input_17_8' >Phone</label><div class='ginput_container'><input name='input_8' id='input_17_8' type='text' value='' /></div><div class='gfield_description'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_17' class='gform_button button' value='SUBMIT' tabindex='8' onclick='if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; jQuery("#gform_17").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=17&amp;title=&amp;description=&amp;tabindex=1' /> <input type='hidden' class='gform_hidden' name='is_submit_17' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='17' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_17' value='WyJbXSIsIjlmNzc1YTEyZmZjNmYyODk5Mzk0NDM3ZjRlOGYyZDNmIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_17' id='gform_target_page_number_17' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_17' id='gform_source_page_number_17' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="224"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_17' id='gform_ajax_frame_17'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 17, '' );jQuery('#gform_ajax_frame_17').load( function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_17');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_17').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;if(is_form){jQuery('#gform_wrapper_17').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_17').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_17').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_17').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_17').val();gformInitSpinner( 17, '' );jQuery(document).trigger('gform_page_loaded', [17, current_page]);window['gf_submitting_17'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_17').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_17').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [17]);window['gf_submitting_17'] = false;}, 50);}else{jQuery('#gform_17').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [17, current_page]);} );} );</script><script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope","number_formats":[],"spinnerUrl":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 17) {if(typeof Placeholders != 'undefined'){ Placeholders.enable(); }} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [17, 1]) } ); </script>