---
title: "Installation"
manual: "Job board"
version: "main"
permalink: "https://docs.typo3.org/permalink/jweiland/jobboard:installation@main"
source: "Installation/Index.rst"
rendered: "2026-10-22T13:15:25+00:00"
---

# Installation {#installation}

## Requirements {#installation-requirements}

-   TYPO3 13.4 LTS ([`typo3/cms-core`](https://packagist.org/packages/typo3/cms-core) 13.4.34 or higher)
-   PHP 8.2 or higher with the PHP extension `intl`
-   [`friendsoftypo3/tt-address`](https://packagist.org/packages/friendsoftypo3/tt-address): job locations are addresses
    (required dependency, installed automatically)
-   [`bithost-gmbh/pdfviewhelpers`](https://packagist.org/packages/bithost-gmbh/pdfviewhelpers): renders the PDF version of a
    job (required dependency, installed automatically)
-   Optional: [`jweiland/maps2`](https://packagist.org/packages/jweiland/maps2) shows the job locations on a map

The extension can only be installed with Composer.

## Install the extension with Composer {#installation-composer}

**Install the development version**

```bash
composer require jweiland/jobboard:dev-main
```

> [!NOTE]
> There is no tagged release of the extension yet. Until the first
> release, install the branch `dev-main`. As soon as a release is
> available, use `composer require jweiland/jobboard`.

Then set up the extension. This creates the database tables of the job
board and adds the column `import_key` to the table `tt_address`:

**Set up the extension and its database tables**

```bash
vendor/bin/typo3 extension:setup
```

## Add the site sets {#installation-site-set}

The extension does not provide static TypoScript templates. Add the site
set **Jobboard - Main** (`jweiland/jobboard`) to your site,
either in the backend module **Site Management > Sites** (tab
**Sets**) or in the site configuration file.

The PDF export of a job uses the TypoScript of EXT:pdfviewhelpers. Add its
site set **EXT:pdfviewhelpers** (`bithost/pdfviewhelpers`)
as well:

**config/sites/\<site-identifier>/config.yaml**

```yaml
base: 'https://example.org/'
dependencies:
  - jweiland/jobboard
  - bithost/pdfviewhelpers

```

The set `jweiland/jobboard` loads the set
`jweiland/jobboard-pdf` automatically. See
[Site sets](https://docs.typo3.org/permalink/jweiland/jobboard:configuration-site-sets@main) for details.

## Create a storage folder {#installation-storage-folder}

1.  Create a page of type **Folder** in the page tree, for example
    "Job board". All records of the job board are stored here: jobs,
    occupational fields, positions, salary grades, benefits and the
    addresses of the job locations.
1.  Set the site setting [jobboard.storagePid](https://docs.typo3.org/permalink/jweiland/jobboard:confval-jobboard-storagepid@main) to the UID of this
    folder (**Site Management > Settings**, category
    **Jobboard > Pages**):

    **config/sites/\<site-identifier>/settings.yaml**

    ```yaml
    jobboard:
      storagePid: '23'
      pidOfApplicationForm: 51

    ```

    The default value `'0'` means that no jobs are found.

## Import the route enhancer {#installation-routing}

For speaking URLs of the detail view, import the shipped route enhancer in
your site configuration. See [Speaking URLs (route enhancer)](https://docs.typo3.org/permalink/jweiland/jobboard:configuration-routing@main).

## Optional: show job locations on a map {#installation-maps2}

The map is optional. If you want to show the job locations on a map,
install EXT:maps2:

**Install EXT:maps2**

```bash
composer require jweiland/maps2
vendor/bin/typo3 extension:setup
```

If EXT:maps2 is installed, the site set `jweiland/jobboard`
automatically loads the sets `jweiland/maps2-default` and
`jweiland/maps2-googlemaps`. The address records of the job
locations get an additional field for the map location. The map is shown
as soon as at least one listed job has an address with a map location.
Configure EXT:maps2 as described in its
[documentation](https://docs.typo3.org/p/jweiland/maps2/main/en-us/).

> [!WARNING]
> **Attention**
>
> With EXT:maps2, the job board uses **Google Maps**. You need a Google
> Maps API key, and visitors' browsers load the map from Google. Check
> the privacy information and the consent handling of your site.

Without EXT:maps2, the job board works the same, but shows no map and the
addresses have no map location field.

## First steps {#installation-first-steps}

1.  Flush all caches: `vendor/bin/typo3 cache:flush`.
1.  Create the records in the storage folder, see [For editors](https://docs.typo3.org/permalink/jweiland/jobboard:editor@main).
1.  Insert the content element "Job board" on a page, see
    [Insert the content element "Job board"](https://docs.typo3.org/permalink/jweiland/jobboard:editor-content-element@main).
1.  If you migrate from EXT:jobfair2, run the upgrade wizards, see
    [Upgrade wizards](https://docs.typo3.org/permalink/jweiland/jobboard:upgrade@main).
