diff --git a/src/Network/AWS/Wolf/Act.hs b/src/Network/AWS/Wolf/Act.hs
--- a/src/Network/AWS/Wolf/Act.hs
+++ b/src/Network/AWS/Wolf/Act.hs
@@ -25,7 +25,9 @@
   ks <- listArtifacts
   forM_ ks $ \k -> do
     traceInfo "get-artifact" [ "key" .= k ]
-    getArtifact (dir </> textToString k) k
+    let file = dir </> textToString k
+    touchDirectory file
+    getArtifact file k
 
 -- | Upload artifacts from the store output directory.
 --
diff --git a/src/Network/AWS/Wolf/File.hs b/src/Network/AWS/Wolf/File.hs
--- a/src/Network/AWS/Wolf/File.hs
+++ b/src/Network/AWS/Wolf/File.hs
@@ -5,6 +5,7 @@
 --
 module Network.AWS.Wolf.File
   ( findRegularFiles
+  , touchDirectory
   , dataDirectory
   , storeDirectory
   , inputDirectory
@@ -23,6 +24,7 @@
 import           Data.Yaml                hiding (encode)
 import           Network.AWS.Wolf.Prelude hiding (find)
 import           System.Directory
+import           System.FilePath
 import           System.FilePath.Find
 import           System.IO                hiding (readFile, writeFile)
 
@@ -31,6 +33,12 @@
 findRegularFiles :: MonadIO m => FilePath -> m [FilePath]
 findRegularFiles =
   liftIO . find always (fileType ==? RegularFile)
+
+-- | Create parent directory of file if missing.
+--
+touchDirectory :: MonadIO m => FilePath -> m ()
+touchDirectory =
+  liftIO . createDirectoryIfMissing True . takeDirectory
 
 -- | Determine path to data directory and create it.
 --
diff --git a/wolf.cabal b/wolf.cabal
--- a/wolf.cabal
+++ b/wolf.cabal
@@ -1,5 +1,5 @@
 name:                  wolf
-version:               0.3.4
+version:               0.3.5
 synopsis:              Amazon Simple Workflow Service Wrapper.
 description:           Wolf is a wrapper around Amazon Simple Workflow Service.
 homepage:              https://github.com/swift-nav/wolf
