Job Board Component

Intro

The JobBoard is a versatile web component designed for job listings. This component can fetch and display job posts from a given endpoint and also allows for search functionality based on a variety of criteria.

3B Portals Compatibility

This component is fully compatible with 3B Portals. Simply drag and drop it in a portal page.

Set Up

From version 3.4+, a Job object must have a Job Boards multi-select field. We will only render jobs that match the Job Boards field value on the job. Furthermore, the options in the new multi-select field must match the Names of the Job Board (b3o__Job_Board__c) records in the system. So, if you set the Job Boards field with the options "Default", "Site 1" and "Site 2", you must also have three Job Board records named "Default", "Site 1" and "Site 2".

When creating a Job Board record in the system, please set the following fields:

  • Name - this is the name of the job board and must match one of the options defined on the Job Boards multi-select field on the job object
  • Job Post Link (b3o__Job_Post_Link__c) - this is a template link telling the Job Board component where to re-direct the user when they click on a Job Post. A valid value is https://.../JobPost?id={0}. The {0} param will be merged with either the Job Id or the Job Reference

Implementation

Portals

Drag and drop the Job Board component on any page.

Visualforce Pages

You can embed the component component in a Visualforce Page using the following syntax:

<script src="{!URLFOR($Resource.b3o__JobBoardResources, 'index.js')}" defer="true" type="module"></script>
 <body>
        <div class="container">
            <job-board 
                job-board-name="{!$Setup.b3o__Onboarding_Default_Settings__c.b3o__Default_Job_Board__c}"
                places-api-key="{!$Setup.b3o__Onboarding_Default_Settings__c.b3o__Google_API_Key__c}"
            ></job-board>    
        </div>
        <script> 
            window.performanceStart = new Date();
            const globals = {
                sessionId: '{!GETSESSIONID()}',
                siteUrl: '{!$Site.baseUrl}',
                useREST: false,
                router: b3o.GlobalRemotingRouter
            };
            window['globals'] = globals;
        </script>
    </body>

External Websites

You can embed the component component in a wordpress/custom sites using the following syntax:

<script src=".../b3o__JobBoardResources/index.js" defer="true" type="module"></script>

<job-board 
    job-board-name="Default"
    places-api-key="..."
></job-board>

<script> 
    const globals = {
        siteUrl: '.../Onboarding/',
        useREST: true
    };
    window['globals'] = globals;
</script>

Attributes

User and Job Board Settings

  • user-id: User's unique ID. Not required.
  • job-board-name: The name of the job board. Must match the Name field of the Job Board record created in Salesforce
  • portal-post-link: The link when embedded in 3B Portals which defines the Job Post page.

Customization and Overrides

  • places-api-key: Key for Google Places API, if using.
  • job-object-name: The API name of the job object (default is b3o__Job__c).
  • app-documents-link = '/b3o__JobDocuments' - this is the web page that is responsible for delivering the post-application document packs
  • theme-type: name of theme to apply by default
  • hide-theme-switch: hides the theme switched from the user

Search Parameters

  • search-radius-opts: Options for the search radius dropdown.

Field Paths for ATS Integration

These attributes define the field paths for specific pieces of data within your ATS (Applicant Tracking System). Defaults are provided, but can be overridden for customization:

  • places-api-key - not set by default
  • job-object-name = 'b3o__Job__c' - the job object name
  • job-app-schema = 'b3o__Application__c:b3o__Job__c:b3o__Candidate__c' - the app schema - Application Object Name : Job Object Name : Merge Field Name from App -> Job
  • site-coordinates-path = 'b3o__Site__r.b3o__Coordinates__c' - for radius search, this is the coordinates of the job
  • job-board-path = 'b3o__Job_Boards__c' - the job boards multi-select field
  • job-title-path = 'b3o__Job_Advert_Title__c'
  • job-short-path = 'b3o__Job_Post_Short_Description__c'
  • job-body-path = 'b3o__Job_Post_Body__c'
  • job-foot-path = 'b3o__Job_Post_Footer__c'
  • job-featured-path = 'b3o__Featured_Job__c'
  • job-posted-path = 'b3o__Date_Posted__c'
  • siteFieldPath = 'b3o__Site__c'
  • site-name-path = 'b3o__Site__r.b3o__Public_Name__c'
  • job-type-path = 'b3o__Job_Type__r.Name'
  • job-type-field-path = 'b3o__Job_Type__c'
  • employment-type-path = 'b3o__Employment_Type__c'
  • pay-info-path = 'b3o__Pay_Information__c'
  • job-ref-path = 'b3o__Job_ID__c'
  • job-expiry-path = 'b3o__Available_Until__c'
  • job-reg-form-path = 'b3o__Registration_Form__c'
  • job-app-form-path = 'b3o__Application_Form__c'
  • job-app-btn-label-path = 'b3o__Apply_Button_Text__c'
  • job-doc-pack-path = 'b3o__Document_Pack__c'

Note: for attributes that are not documented, please see the 3B Job object's fields.

Here's an example where the JobBoard component is linked to the Bullhorn Object Schema

<job-board 
    job-board-name="Default"
    places-api-key=""
    job-relationship-field="b3o__External_Job__c"
    candidate-relationship-field="b3o__Contact__c"
    job-object-name = 'b3o__External_Job__c';
    job-app-schema = 'b3o__External_Application__c:b3o__External_Job__c:b3o__Contact__c'
    site-coordinates-path = 'b3o__Site__r.b3o__Coordinates__c'
    job-title-path = 'b3o__Job_Advert_Title__c'
    job-short-path = 'b3o__Job_Post_Short_Description__c'
    job-body-path = 'b3o__Job_Post_Body__c'
    job-foot-path = 'b3o__Job_Post_Footer__c'
    job-featured-path = 'b3o__Featured_Job__c'
    job-posted-path = 'b3o__Date_Posted__c'
    job-board-path = 'b3o__Job_Boards__c'
    site-field-path = 'b3o__Site__c'
    site-name-path = 'b3o__Site__r.b3o__Public_Name__c'
    job-type-path = 'b3o__Job_Type__r.Name'
    job-type-field-path = 'b3o__Job_Type__c'
    emp-type-path = 'b3o__Employment_Type__c'
    pay-info-path = 'b3o__Pay_Information__c'
    job-ref-path = 'b3o__Job_ID__c'
    job-expiry-path = 'b3o__Available_Until__c'
    job-app-form-path = 'b3o__Application_Form__c'
    job-app-btn-label-path = 'b3o__Apply_Button_Text__c'
    job-doc-pack-path = 'b3o__Document_Pack__c'
></job-board>

URL Parameters

The JobBoard component can pre-populate filters using URL parameters. For example, to filter by employment type, location, job type, and keyword, the URL might look like:

.../JobBoard?employmentType=Contract&location=London&jobType=Vaccinator&keyword=blah

Setup & ATS Link

Default Setup (no ATS)
Portals Attribute Component Attribute Default Value Comments
Job Board Name job-board-name Default Must match the Name field on the Job Board record in the table Job Boards
Contact Id user-id --{-{-contactUser.Id-}-}--
Hide Theme Switch hide-theme-switch false true/false
Theme theme-type light light/dark
Label: No Jobs label-no-jobs No jobs found
Job Post Link portal-post-link #JobPost?jobId={0} The name of the page that hosts the Job Post component. Use # for portal pages
Google API Key places-api-key google places api key
Application Documents Link app-documents-link /b3o__JobDocuments The name of the page that hosts the Compliance component. Use # for portal pages
Job Object Name job-object-name b3o__Job__c Job object API name
Featured Path job-featured-path b3o__Featured_Job__c Checkbox indicating job is featured
Posted Path job-posted-path b3o__Date_Posted__c Date field
Jobboard Path job-board-path b3o__Job_Boards__c Multi-select, options must match the Name of the Job Board records created in the Job Boards table
Site Path site-field-path b3o__Site__c Lookup to 3B Site
Employment Type Path emp-type-path b3o__Employment_Type__c Drop down with employment type options
Job Type Path job-type-field-path b3o__Job_Type__c Lookup to 3B Job Type
Site Coordinates Path site-coordinates-path b3o__Site__r.b3o__Coordinates__c
Job Ref Path job-ref-path b3o__Job_ID__c This field can be used for the URL slug
Job App Schema job-app-schema b3o__Application__c:b3o__Job__c:b3o__Candidate__c Schema configuration - first string is the API name of the Application object. Second string is the API name of the field on the Application that links the application to a Job. Third string is the API name of the field on the Application that links the application to a Contact.
Job Title Path job-title-path b3o__Job_Advert_Title__c
Short Desc Path job-short-path b3o__Job_Post_Short_Description__c
Job Body Path job-body-path b3o__Job_Post_Body__c
Footer Path job-foot-path b3o__Job_Post_Footer__c
Site Name Path site-name-path b3o__Site__r.b3o__Public_Name__c
Job Type Name Path job-type-path b3o__Job_Type__r.Name
Pay Info Path pay-info-path b3o__Pay_Information__c Can be a text field or formula, effectively outputting pay info
Expirty Date Path job-expiry-path b3o__Available_Until__c Date field
App Form Path job-app-form-path b3o__Application_Form__c Lookup to Form. A form selected in this field must have a core object = Application
App Button Label Path job-app-btn-label-path b3o__Apply_Button_Text__c If any text is added, default button label will be overriden
Document Pack Path job-doc-pack-path b3o__Document_Pack__c Lookup to Document Pack. If a record is selected, user will be re-directed to the Compliance page
Registration Form Path job-reg-form-path b3o__Registration_Form__c Lookup to Form. A form selected in this field must have a core object = Contact
App Documents Page Params app-documents-params ?id={0}&dpId={1}&applicationId={2} do not change
Target Recruit Sample Setup
Portals Attribute Component Attribute TargetRecruit Value Comments
Job Board Name job-board-name Default
Contact Id user-id --{-{-contactUser.Id-}-}--
Hide Theme Switch hide-theme-switch true
Theme theme-type light
Label: No Jobs label-no-jobs No jobs found
Job Post Link portal-post-link #JobPost?jobId={0}
Google API Key places-api-key
Application Documents Link app-documents-link #Compliance
Job Object Name job-object-name AVTRRT__Job__c
Featured Path job-featured-path Featured_Job__c New checkbox field
Posted Path job-posted-path Date_Posted__c New date field
Jobboard Path job-board-path Job_Boards__c New multi-select field
Site Path site-field-path Site__c New lookup field to Site
Employment Type Path emp-type-path Employment_Type__c New drop down field
Job Type Path job-type-field-path Job_Type__c New lookup field to Job Type
Site Coordinates Path site-coordinates-path Site__r.b3o__Coordinates__c
Job Ref Path job-ref-path Name
Job App Schema job-app-schema AVTRRT__Job_Applicant__c:AVTRRT__Job__c:AVTRRT__Contact_Candidate__c Schema configuration
Job Title Path job-title-path AVTRRT__Job_Title__c
Short Desc Path job-short-path AVTRRT__Job_Summary__c
Job Body Path job-body-path AVTRRT__Job_Description_Rich__c
Footer Path job-foot-path AVTRRT__Internal_Notes__c Can be any other field
Site Name Path site-name-path Site__r.b3o__Public_Name__c
Job Type Name Path job-type-path Job_Type__r.Name
Pay Info Path pay-info-path Pay_Information__c New custom text field
Expirty Date Path job-expiry-path Available_Until__c New custom Date field
App Form Path job-app-form-path Application_Form__c New lookup to Form, form record with context object AVTRRT__Job_Applicant__c
App Button Label Path job-app-btn-label-path Apply_Button_Text__c
Document Pack Path job-doc-pack-path Document_Pack__c New lookup to Document Pack
Registration Form Path job-reg-form-path Registration_Form__c New lookup to Form with Contact context object
App Documents Page Params app-documents-params ?id={0}&dpId={1} Notice, no applicationid