diff --git a/Classes/Controller/JoblistController.php b/Classes/Controller/JoblistController.php
index 19418c4315762ecb1bc39057ede505474f3cdf66..fa79eff828ba1434564b4ad08333098213db2c44 100644
--- a/Classes/Controller/JoblistController.php
+++ b/Classes/Controller/JoblistController.php
@@ -123,15 +123,28 @@ class JoblistController extends ActionController {
 		$this->jobRepository = $jobRepository;
 	}
 
+	/**
+	 * Initialize the indexAction to set the currentPageBrowserPage parameter
+	 *
+	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\InvalidArgumentNameException
+	 */
+	public function initializeIndexAction() {
+		$currentPageBrowserPage = (int) GeneralUtility::_GP('tx_sgjobs_pagebrowser')['currentPage'];
+		if ($currentPageBrowserPage > 0) {
+			$this->request->setArgument('currentPageBrowserPage', $currentPageBrowserPage);
+		}
+	}
+
 	/**
 	 * Show all job offers and options to manage them
 	 *
 	 * @param array $filters
 	 * @param int $jobId
+	 * @param int $currentPageBrowserPage
 	 * @return void
-	 * @throws \InvalidArgumentException
+	 * @throws \TYPO3\CMS\Core\Context\Exception\AspectNotFoundException
 	 */
-	public function indexAction(array $filters = [], $jobId = NULL): void {
+	public function indexAction(array $filters = [], int $jobId = NULL, int $currentPageBrowserPage = 0): void {
 		if ($filters) {
 			$this->view->assign('selectedCountry', $filters['filterCountry']);
 			$this->view->assign('selectedCompany', $filters['filterCompany']);
@@ -167,7 +180,6 @@ class JoblistController extends ActionController {
 		} else {
 			// pagination logic
 			$offset = 0;
-			$currentPageBrowserPage = (int) GeneralUtility::_GP('tx_sgjobs_pagebrowser')['currentPage'];
 			if ($currentPageBrowserPage && $jobLimit) {
 				$offset = $currentPageBrowserPage * $jobLimit;
 			}
@@ -203,16 +215,15 @@ class JoblistController extends ActionController {
 	/**
 	 * Renders the application form with an optional job
 	 *
-	 * @param JobApplication $applyData
+	 * @param JobApplication|null $applyData
 	 * @param string $error
 	 * @param int $jobId
+	 * @throws \TYPO3\CMS\Core\Context\Exception\AspectNotFoundException
 	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\InvalidArgumentNameException
 	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException
-	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException
-	 * @throws \TYPO3\CMS\Core\Context\Exception\AspectNotFoundException
 	 */
-	public function applyFormAction(JobApplication $applyData = NULL, $error = NULL, $jobId = NULL): void {
-		if ($error !== NULL && $error !== '') {
+	public function applyFormAction(JobApplication $applyData = NULL, string $error = '', int $jobId = NULL): void {
+		if ($error !== '') {
 			$this->view->assign('internalError', $error);
 			$this->request->setArgument('error', NULL);
 		}
@@ -302,7 +313,6 @@ class JoblistController extends ActionController {
 	 * @return void
 	 * @throws NoSuchArgumentException
 	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException
-	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException
 	 */
 	protected function initializeApplyAction(): void {
 		try {
@@ -333,17 +343,14 @@ class JoblistController extends ActionController {
 	 * @param string $folderName
 	 * @return void
 	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException
-	 * @throws \RuntimeException
-	 * @throws \InvalidArgumentException
-	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException
-	 * @throws \TYPO3\CMS\Core\Resource\Exception\ResourceDoesNotExistException
 	 */
 	protected function submitApplicationFiles(JobApplication $applicationData, $folderName): void {
 		$resourceFactory = $this->objectManager->get(ResourceFactory::class);
 		$newName = \date('Ymd-His') . '_' . $applicationData->getJobId() . '-' . $applicationData->getFirstName()
 			. '-' . $applicationData->getLastName();
 		$storage = $resourceFactory->getStorageObject(1);
-		$applicationFilePath = Environment::getPublicPath() . '/' . $storage->getConfiguration()['basePath'] . 'JobApplication/' . $folderName .
+		$applicationFilePath = Environment::getPublicPath() . '/' . $storage->getConfiguration(
+			)['basePath'] . 'JobApplication/' . $folderName .
 			'/' . $newName . '.csv';
 		$this->writeApplicationFile($applicationData, $applicationFilePath);
 	}
@@ -363,9 +370,7 @@ class JoblistController extends ActionController {
 			$applyData->setPid($GLOBALS['TSFE']->id);
 			$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 || $applyData->getJobId() === NULL) && $applyData->getCompany() !== NULL) {
 				$applyData->setJobId($applyData->getCompany()->getJobId());
 			}
 
@@ -378,7 +383,6 @@ class JoblistController extends ActionController {
 			$this->moveTmpFolder($folderName);
 			$this->submitApplicationFiles($applyData, $folderName);
 
-			/** @noinspection PhpMethodParametersCountMismatchInspection */
 			$mailService = $this->objectManager->get(
 				MailTemplateService::class, 'application_mail', 'sg_jobs',
 				$this->getApplicationMailMarkers($applyData)
@@ -426,8 +430,11 @@ class JoblistController extends ActionController {
 
 			$redirectPageUid = (int) $this->settings['redirectPage'];
 			if ($redirectPageUid) {
-				$url = $this->configurationManager->getContentObject()->getTypoLink_URL($redirectPageUid);
-				$this->redirectToUri($url);
+				$contentObject = $this->configurationManager->getContentObject();
+				if ($contentObject) {
+					$url = $contentObject->getTypoLink_URL($redirectPageUid);
+					$this->redirectToUri($url);
+				}
 			}
 
 			$this->redirect('applyForm');
@@ -448,7 +455,7 @@ class JoblistController extends ActionController {
 	 * Assign filter values
 	 *
 	 * @param int $rootPageId
-	 * @throws \InvalidArgumentException
+	 * @throws \TYPO3\CMS\Core\Context\Exception\AspectNotFoundException
 	 */
 	protected function assignFilterValues($rootPageId): void {
 		$countries = $this->companyRepository->getAllCountries($rootPageId);
@@ -473,7 +480,7 @@ class JoblistController extends ActionController {
 	 * @param JobApplication $applyData
 	 * @return array
 	 */
-	protected function getApplicationMailMarkers($applyData): array {
+	protected function getApplicationMailMarkers(JobApplication $applyData): array {
 		$location = '';
 		if ($applyData->getCompany() !== NULL) {
 			$location = $applyData->getCompany()->getCity();
@@ -499,13 +506,36 @@ class JoblistController extends ActionController {
 	 *
 	 * @param JobApplication $data
 	 * @param string $filePath
-	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException
 	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException
-	 * @throws \InvalidArgumentException
-	 * @throws \RuntimeException
-	 * @throws \TYPO3\CMS\Core\Resource\Exception\ResourceDoesNotExistException
 	 */
 	protected function writeApplicationFile(JobApplication $data, $filePath): void {
+		$coverLetter = '';
+		$coverLetterObject = $data->getCoverLetter();
+		if ($coverLetterObject) {
+			$coverLetterObject = $coverLetterObject->getOriginalResource();
+			if ($coverLetterObject) {
+				$coverLetter = $coverLetterObject->getPublicUrl();
+			}
+		}
+
+		$cv = '';
+		$cvObject = $data->getCv();
+		if ($cvObject) {
+			$cvObject = $cvObject->getOriginalResource();
+			if ($cvObject) {
+				$cv = $cvObject->getPublicUrl();
+			}
+		}
+
+		$certificate = '';
+		$certificateObject = $data->getCertificate();
+		if ($certificateObject) {
+			$certificateObject = $certificateObject->getOriginalResource();
+			if ($certificateObject) {
+				$certificate = $certificateObject->getPublicUrl();
+			}
+		}
+
 		$dataToInsertArr = [
 			$data->getJobId(),
 			$data->getFirstName(),
@@ -520,9 +550,9 @@ class JoblistController extends ActionController {
 			$data->getNationality(),
 			$data->getPhone(),
 			$data->getEmail(),
-			$data->getCoverLetter() === NULL ? '' : $data->getCoverLetter()->getOriginalResource()->getPublicUrl(),
-			$data->getCv() === NULL ? '' : $data->getCv()->getOriginalResource()->getPublicUrl(),
-			$data->getCertificate() === NULL ? '' : $data->getCertificate()->getOriginalResource()->getPublicUrl(),
+			$coverLetter,
+			$cv,
+			$certificate,
 			$data->getMessage()
 		];
 
@@ -583,7 +613,7 @@ class JoblistController extends ActionController {
 	/**
 	 * If for any reason something goes wrong, delete the tmp upload folder
 	 *
-	 * @return string|void
+	 * @return void
 	 * @throws NoSuchArgumentException
 	 */
 	public function errorAction() {
diff --git a/Classes/ViewHelpers/PageBrowserViewHelper.php b/Classes/ViewHelpers/PageBrowserViewHelper.php
index dd46580760627f5b47b7527ff5997dca115c324e..4679093d30963c032d04d03400ae310c0499bfb7 100644
--- a/Classes/ViewHelpers/PageBrowserViewHelper.php
+++ b/Classes/ViewHelpers/PageBrowserViewHelper.php
@@ -28,26 +28,32 @@ namespace SGalinski\SgJobs\ViewHelpers;
 
 use TYPO3\CMS\Core\TypoScript\TypoScriptService;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Extbase\Object\ObjectManager;
 use TYPO3\CMS\Fluid\View\StandaloneView;
-use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
 use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
 
 /**
  * View helper that renders a page browser based upon the pagebrowse extension.
  *
  * Example:
- * {namespace sg=SGalinski\SgJobs\ViewHelpers}
+ * {namespace sg=SGalinski\SgNews\ViewHelpers}
  * <sg:pageBrowser numberOfPages="" />
  */
 class PageBrowserViewHelper extends AbstractViewHelper {
+	/**
+	 * Specifies whether the escaping interceptors should be disabled or enabled for the render-result of this ViewHelper
+	 *
+	 * @see isOutputEscapingEnabled()
+	 *
+	 * @var boolean
+	 */
+	protected $escapeOutput = FALSE;
 
 	/**
-	 * Register the ViewHelper arguments
+	 * Initialize the ViewHelpers arguments
 	 */
 	public function initializeArguments() {
 		parent::initializeArguments();
-		$this->registerArgument('numberOfPages', 'int', 'The number of pages', TRUE);
+		$this->registerArgument('numberOfPages', 'int', 'The number of pages to browse', TRUE);
 	}
 
 	/**
@@ -57,27 +63,31 @@ class PageBrowserViewHelper extends AbstractViewHelper {
 	 * @throws \UnexpectedValueException
 	 */
 	public function render(): string {
+		/** @var TypoScriptService $typoScriptService */
 		$typoScriptService = GeneralUtility::makeInstance(TypoScriptService::class);
-		$configuration = $typoScriptService->convertTypoScriptArrayToPlainArray($GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_sgjobs.']);
+		$configuration = $typoScriptService->convertTypoScriptArrayToPlainArray(
+			$GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_sgjobs.']
+		);
 		$view = GeneralUtility::makeInstance(StandaloneView::class);
 		$view->setRenderingContext($this->renderingContext);
-		$view->setTemplate('PageBrowser/Index');
 		$view->setTemplateRootPaths($configuration['view']['templateRootPaths']);
 		$view->setPartialRootPaths($configuration['view']['partialRootPaths']);
 		$view->setLayoutRootPaths($configuration['view']['layoutRootPaths']);
-		$pageBrowserVars = GeneralUtility::_GP('tx_sgnews_pagebrowser');
+		$view->setTemplate('PageBrowser/Index');
+
+		$currentPage = 0;
+		$pageBrowserVars = GeneralUtility::_GP('tx_sgjobs_pagebrowser');
 		if (isset($pageBrowserVars['currentPage']) && (int) $pageBrowserVars['currentPage'] > 0) {
 			$currentPage = (int) $pageBrowserVars['currentPage'];
-		} else {
-			$currentPage = 1;
 		}
 
 		$pageLinks = [];
-		$start = \max($currentPage - 1, 1);
+		$start = \max($currentPage - 2, 0);
 		$end = \min($this->arguments['numberOfPages'], $currentPage + 2);
 		for ($i = $start; $i < $end; $i++) {
 			$pageLinks[] = [
-				'number' => $i,
+				'number' => $i + 1,
+				'page' => $i,
 				'isCurrentPage' => $i === $currentPage,
 			];
 		}
@@ -88,7 +98,7 @@ class PageBrowserViewHelper extends AbstractViewHelper {
 				'enableMorePages' => 1,
 				'pageLinks' => $pageLinks,
 				'currentPage' => $currentPage,
-				'prevPageExist' => $currentPage > 1,
+				'prevPageExist' => $currentPage >= 1,
 				'showLessPages' => ($currentPage - 1) > 1,
 				'showNextPages' => ($currentPage + 2) < $this->arguments['numberOfPages'],
 				'nextPageExist' => $currentPage < $this->arguments['numberOfPages'] - 1,
diff --git a/Resources/Private/Templates/PageBrowser/Index.html b/Resources/Private/Templates/PageBrowser/Index.html
index 90600cdca33bb71c504dd2d4ac04ae7874fe3d7d..fbc785d413113b7a4e9628bfcece2cdbd05c78b4 100644
--- a/Resources/Private/Templates/PageBrowser/Index.html
+++ b/Resources/Private/Templates/PageBrowser/Index.html
@@ -1,6 +1,6 @@
 {namespace sg=SGalinski\SgJobs\ViewHelpers}
 
-<f:layout name="PageBrowser" />
+<f:layout name="PageBrowser"/>
 
 <f:section name="main">
 	<nav>
@@ -8,8 +8,8 @@
 			<f:if condition="{prevPageExist}">
 				<f:then>
 					<li class="tx-pagebrowse-prev">
-						<f:variable name="prevPage" value="{currentPage - 1}" />
-						<f:link.action additionalParams="{tx_sgnews_pagebrowser: {currentPage: prevPage}}"
+						<f:variable name="prevPage" value="{currentPage - 1}"/>
+						<f:link.action addQueryString="1" additionalParams="{tx_sgjobs_pagebrowser: {currentPage: prevPage}}"
 									   additionalAttributes="{aria-label: 'Previous'}">
 							&laquo;
 						</f:link.action>
@@ -28,8 +28,8 @@
 
 			<f:if condition="{enableLessPages} && {showLessPages}">
 				<li>
-					<f:variable name="lessPage" value="{currentPage - 2}" />
-					<f:link.action additionalParams="{tx_sgnews_pagebrowser: {currentPage: lessPage}}">
+					<f:variable name="lessPage" value="{currentPage - 2}"/>
+					<f:link.action addQueryString="1" additionalParams="{tx_sgjobs_pagebrowser: {currentPage: lessPage}}">
 						...
 					</f:link.action>
 				</li>
@@ -49,7 +49,7 @@
 					</f:then>
 					<f:else>
 						<li class="tx-pagebrowse-page">
-							<f:link.action additionalParams="{tx_sgnews_pagebrowser: {currentPage: pageLink.number}}">
+							<f:link.action addQueryString="1" additionalParams="{tx_sgjobs_pagebrowser: {currentPage: pageLink.page}}">
 								{pageLink.number}
 							</f:link.action>
 						</li>
@@ -59,8 +59,8 @@
 
 			<f:if condition="{enableMorePages} && {showNextPages}">
 				<li>
-					<f:variable name="morePage" value="{currentPage + 2}" />
-					<f:link.action additionalParams="{tx_sgnews_pagebrowser: {currentPage: morePage}}">
+					<f:variable name="morePage" value="{currentPage + 2}"/>
+					<f:link.action addQueryString="1" additionalParams="{tx_sgjobs_pagebrowser: {currentPage: morePage}}">
 						...
 					</f:link.action>
 				</li>
@@ -69,8 +69,8 @@
 			<f:if condition="{nextPageExist}">
 				<f:then>
 					<li class="tx-pagebrowse-next">
-						<f:variable name="nextPage" value="{currentPage + 1}" />
-						<f:link.action additionalParams="{tx_sgnews_pagebrowser: {currentPage: nextPage}}"
+						<f:variable name="nextPage" value="{currentPage + 1}"/>
+						<f:link.action addQueryString="1" additionalParams="{tx_sgjobs_pagebrowser: {currentPage: nextPage}}"
 									   additionalAttributes="{aria-label: 'Next'}">
 							&raquo;
 						</f:link.action>