All guides
Ways to connect
Jobs widget
Put a live list of local jobs, apprenticeships, training and work placements on your own website. It is always current, needs no key and no developer, and fits itself to its content. Live
Install it
Paste these two lines where you want the list to appear:
<div class="opportunity-jobs" data-borough="southwark" data-limit="5"></div>
<script src="https://opportunityplatform.co.uk/embed/widget.js" async></script>The script turns every element with the class opportunity-jobs into the widget, so you can put several on one page with different filters and load the script once.
Signed-in developer and delivery partner accounts can also build a snippet with a live preview at Embed in your dashboard.
Examples
<div class="opportunity-jobs" data-scheme="pearl-yard" data-limit="10"></div>
<script src="https://opportunityplatform.co.uk/embed/widget.js" async></script><div class="opportunity-jobs"
data-borough="southwark"
data-type="apprenticeship"
data-theme="dark"
data-title="Apprenticeships in Southwark"></div>
<script src="https://opportunityplatform.co.uk/embed/widget.js" async></script><div class="opportunity-jobs" data-employer="Acme Construction"></div>
<script src="https://opportunityplatform.co.uk/embed/widget.js" async></script>Options
Every option is optional. Leave them all out for the newest roles across the platform.
| Attribute | Values | What it does |
|---|---|---|
data-scheme | A scheme's short name, for example pearl-yard | Only roles tied to that development. An unknown name shows the empty message, never every role. |
data-borough | A borough, as a short name (southwark) or in full (Southwark) | Only roles in that borough. |
data-type | job, apprenticeship, training or work_placement | Only that kind of opportunity. Anything else is ignored. |
data-employer | Part of an employer's name | Only roles from employers whose name contains it. |
data-lens | construction or end_use | Construction roles, or roles in the finished buildings (shops, offices, venues). |
data-limit | 1 to 50 (default 10) | How many roles to show, newest first. |
data-theme | light (default) or dark | Card style. |
data-title | Text | The frame title read out by screen readers. Default: Live opportunities. |
data-min-height | Pixels (default 320) | Height before the content has loaded. |
- Attribute
data-scheme- Values
- A scheme's short name, for example
pearl-yard - What it does
- Only roles tied to that development. An unknown name shows the empty message, never every role.
- Attribute
data-borough- Values
- A borough, as a short name (
southwark) or in full (Southwark) - What it does
- Only roles in that borough.
- Attribute
data-type- Values
job,apprenticeship,trainingorwork_placement- What it does
- Only that kind of opportunity. Anything else is ignored.
- Attribute
data-employer- Values
- Part of an employer's name
- What it does
- Only roles from employers whose name contains it.
- Attribute
data-lens- Values
constructionorend_use- What it does
- Construction roles, or roles in the finished buildings (shops, offices, venues).
- Attribute
data-limit- Values
- 1 to 50 (default 10)
- What it does
- How many roles to show, newest first.
- Attribute
data-theme- Values
light(default) ordark- What it does
- Card style.
- Attribute
data-title- Values
- Text
- What it does
- The frame title read out by screen readers. Default: Live opportunities.
- Attribute
data-min-height- Values
- Pixels (default 320)
- What it does
- Height before the content has loaded.
The script loads the widget from the site it came from. Loaded from one of our borough sites (https://<borough>.opportunityplatform.co.uk/embed/widget.js), the list is limited to that borough unless you set data-borough or data-scheme.
Without the script
If your site does not allow third-party scripts, use a plain iframe with the same options as query parameters. It keeps a fixed height, so pick one that suits your list.
<iframe src="https://opportunityplatform.co.uk/embed/jobs?borough=southwark&type=apprenticeship&limit=5"
title="Live opportunities" width="100%" height="600"
style="border:0" loading="lazy"></iframe>What visitors see and do
- Each card shows the title, the type, the employer, the location and the closing date.
- Choosing a card opens the full listing on our site in the same tab, where the resident applies. That is what records the application against your place.
- The list shows live roles posted on the platform. Filtered to an employer with
data-employer, it also shows that employer's roles from their own careers page or ATS once they have connected it and the connection is verified. Those open a short step on our site and then the employer's own apply page. - When nothing matches, it says so and links to every opportunity, rather than showing an error.
- Every platform role shown counts as a view from the widget, so employers and councils can see how many people a partner site reached.
How it fits itself
- The script adds an iframe for each
opportunity-jobselement, atdata-min-height. - The widget reports its height to your page whenever its content changes.
- The script resizes only that widget's frame, and only for messages from the site the script came from. Heights are held between 120 and 20,000 pixels.
Limits
- At most 50 roles per widget. For more, link to the full listing or use the partner API.
- The roles are read live on every load. The script itself is cached for up to an hour.
- The look is fixed apart from the light and dark styles. For your own design, use the partner API.
Troubleshooting
Nothing appears at all.
Check, in this order:
- The element has
class="opportunity-jobs"exactly. - Your site's Content Security Policy allows our script and frame: add
https://opportunityplatform.co.uktoscript-srcandframe-src. - Your page builder has not stripped the
<script>tag. If it does, use the iframe instead.
It says there are no live opportunities.
No live role matches every filter you set. Remove filters one at a time to see which one is excluding everything, and check the spelling of the scheme name.
There is a scroll bar inside the widget.
You are using the iframe, which has a fixed height. Use the script, which resizes, or raise the iframe height.
Do I need an API key?
No. The widget shows only public listings and needs no key.