diff --git a/Classes/Controller/JoblistController.php b/Classes/Controller/JoblistController.php
index 28ddd74ecbd92e7e2884a89c87753421cec397f6..f971c6d811ebde918604d34e15cab83814e0ac28 100644
--- a/Classes/Controller/JoblistController.php
+++ b/Classes/Controller/JoblistController.php
@@ -33,6 +33,7 @@ use SGalinski\SgJobs\Property\TypeConverter\UploadedFileReferenceConverter;
 use SGalinski\SgJobs\Service\FrontendFilterService;
 use SGalinski\SgMail\Service\MailTemplateService;
 use SJBR\StaticInfoTables\Domain\Repository\CountryRepository;
+use TYPO3\CMS\Core\Resource\Exception\FolderDoesNotExistException;
 use TYPO3\CMS\Core\Resource\FileReference;
 use TYPO3\CMS\Core\Resource\ResourceFactory;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
@@ -222,19 +223,19 @@ class JoblistController extends ActionController {
 
 		$typeConverter1 = $this->objectManager->get(UploadedFileReferenceConverter::class);
 		$typeConverter1->setAllowedFileExtensions($this->settings['allowedFileExtensions']);
-		$typeConverter1->setUploadFolder('1:/JobApplication/' . $uniqueFolderName);
+		$typeConverter1->setUploadFolder('1:/JobApplication/temp/' . $uniqueFolderName);
 		$typeConverter1->setTargetUploadFileName('coverLetter');
 		$propertyMappingConfiguration->forProperty('coverLetter')->setTypeConverter($typeConverter1);
 
 		$typeConverter2 = $this->objectManager->get(UploadedFileReferenceConverter::class);
 		$typeConverter2->setAllowedFileExtensions($this->settings['allowedFileExtensions']);
-		$typeConverter2->setUploadFolder('1:/JobApplication/' . $uniqueFolderName);
+		$typeConverter2->setUploadFolder('1:/JobApplication/temp/' . $uniqueFolderName);
 		$typeConverter2->setTargetUploadFileName('cv');
 		$propertyMappingConfiguration->forProperty('cv')->setTypeConverter($typeConverter2);
 
 		$typeConverter3 = $this->objectManager->get(UploadedFileReferenceConverter::class);
 		$typeConverter3->setAllowedFileExtensions($this->settings['allowedFileExtensions']);
-		$typeConverter3->setUploadFolder('1:/JobApplication/' . $uniqueFolderName);
+		$typeConverter3->setUploadFolder('1:/JobApplication/temp/' . $uniqueFolderName);
 		$typeConverter3->setTargetUploadFileName('certificate');
 		$propertyMappingConfiguration->forProperty('certificate')->setTypeConverter($typeConverter3);
 	}
@@ -255,7 +256,8 @@ class JoblistController extends ActionController {
 		$newName = date('Ymd-His') . '_' . $applicationData->getJobId() . '-' . $applicationData->getFirstName()
 			. '-' . $applicationData->getLastName();
 		$storage = $resourceFactory->getStorageObject(1);
-		$applicationFilePath = PATH_site . $storage->getConfiguration()['basePath'] . 'JobApplication/' . $folderName .
+		$applicationFilePath = PATH_site . $storage->getConfiguration(
+			)['basePath'] . 'JobApplication/temp/' . $folderName .
 			'/' . $newName . '.csv';
 		$this->writeApplicationFile($applicationData, $applicationFilePath);
 	}
@@ -278,7 +280,8 @@ class JoblistController extends ActionController {
 			$job = $applyData->getJob();
 
 			// look for a configured default job, in case of unsolicited application
-			if (($job === '' || $job === NULL || $applyData->getJobId() === NULL) && $applyData->getCompany() !== NULL) {
+			if (($job === '' || $job === NULL || $applyData->getJobId() === NULL) && $applyData->getCompany(
+				) !== NULL) {
 				$applyData->setJobId($applyData->getCompany()->getJobId());
 			}
 
@@ -344,6 +347,14 @@ class JoblistController extends ActionController {
 
 			$mailService->sendEmail();
 
+			// Move uploaded files & csv fo real folder and delete the tmp folder
+			/** @var ResourceFactory $resourceFactory */
+			$resourceFactory = $this->objectManager->get(ResourceFactory::class);
+			$storage = $resourceFactory->getStorageObject(1);
+			$tempFolder = $storage->getFolder('/JobApplication/temp/' . $folderName);
+			$storage->copyFolder($tempFolder, $storage->getFolder('/JobApplication/'));
+			$this->deleteTmpFolder($folderName);
+
 			$redirectPageUid = (int) $this->settings['redirectPage'];
 			if ($redirectPageUid) {
 				$url = $this->configurationManager->getContentObject()->getTypoLink_URL($redirectPageUid);
@@ -353,6 +364,7 @@ class JoblistController extends ActionController {
 			$this->redirect('applyForm');
 
 		} catch (\Exception $exception) {
+			$this->deleteTmpFolder($folderName);
 			$job = $applyData->getJob();
 			$jobId = $job !== NULL ? $job->getUid() : NULL;
 			$this->request->setArgument('folderName', $folderName);
@@ -496,4 +508,35 @@ class JoblistController extends ActionController {
 
 		return TRUE;
 	}
+
+	/**
+	 * Delete uploaded files in tmp folder
+	 *
+	 * @param string $folderName
+	 */
+	private function deleteTmpFolder($folderName) {
+		/** @var ResourceFactory $resourceFactory */
+		$resourceFactory = $this->objectManager->get(ResourceFactory::class);
+		$storage = $resourceFactory->getStorageObject(1);
+		try {
+			$tempFolder = $storage->getFolder('/JobApplication/temp/' . $folderName);
+			$storage->deleteFolder($tempFolder, TRUE);
+		} catch (FolderDoesNotExistException $exception) {
+			// folder is already deleted for some reason
+		}
+	}
+
+	/**
+	 * If for any reason something goes wrong, delete the tmp upload folder
+	 *
+	 * @return string|void
+	 */
+	public function errorAction() {
+		if ($this->request->hasArgument('folderName')) {
+			$folderName = $this->request->getArgument('folderName');
+			$this->deleteTmpFolder($folderName);
+		}
+
+		parent::errorAction();
+	}
 }