We develop an optimization procedure for assisting decision-makers in the allocation of resources for cleaning up a specific oil spill. The objective function is to minimize a weighted combination of spill-specific response and damage costs. Inputs to this problem include information about the outflow of oil, availability and performance of spill cleanup equipment, as well as costs of equipment transported and on-scene operation. A general (albeit separable) damage function is assumed. The algorithm is deterministic and is based on a dynamic program within which a series of 0-1 knapsack problems are solved repeatedly. Although this algorithm is approximate, its worst-case performance is quantified and we argue that under realistic inputs the procedure can be expected to produce solutions very close to optimality. Under prescribed conditions we prove that the algorithm produces optimal solutions. A realistic example based on the Argo Merchant oil spill is presented to provide insight into the structure of this problem. Finally, we discuss possible uses of this model within the existing and alternative operational and policy environments.