Job Board Component: Difference between revisions

From 3B Knowledge
Jump to navigation Jump to search
No edit summary
No edit summary
Line 20: Line 20:
=== Visualforce Pages ===
=== Visualforce Pages ===
You can embed the component component in a Visualforce Page using the following syntax:<syntaxhighlight lang="html">
You can embed the component component in a Visualforce Page using the following syntax:<syntaxhighlight lang="html">
<!-- Load Supporting Components and Global Functions -->
<script src="{!URLFOR($Resource.b3o__GeneralUtils, 'index.js')}" defer="true" type="module"></script>
<!-- This Component -->
<script src="{!URLFOR($Resource.b3o__JobBoardResources, 'index.js')}" defer="true" type="module"></script>
<script src="{!URLFOR($Resource.b3o__JobBoardResources, 'index.js')}" defer="true" type="module"></script>
<script src="{!URLFOR($Resource.b3o__JobPostResources, 'index.js')}" defer="true" type="module"></script>
<body>
 
        <div class="container">
<job-board  
            <job-board  
    job-board-name="Default"
                job-board-name="{!$Setup.b3o__Onboarding_Default_Settings__c.b3o__Default_Job_Board__c}"
    places-api-key="{!$Setup.Onboarding_Default_Settings__c.Google_API_Key__c}"
                places-api-key="{!$Setup.b3o__Onboarding_Default_Settings__c.b3o__Google_API_Key__c}"
></job-board>
            ></job-board>  
 
        </div>
<script>  
        <script>  
    const globals = {
            window.performanceStart = new Date();
        sessionId: '{!GETSESSIONID()}',
            const globals = {
        siteUrl: '{!$Site.baseUrl}',
                sessionId: '{!GETSESSIONID()}',
        useREST: false,
                siteUrl: '{!$Site.baseUrl}',
        router: b3o.GlobalRemotingRouter
                useREST: false,
    };
                router: b3o.GlobalRemotingRouter
    window['globals'] = globals;
            };
</script>
            window['globals'] = globals;
        </script>
    </body>
</syntaxhighlight>
</syntaxhighlight>


=== External Websites ===
=== External Websites ===
You can embed the component component in a wordpress/custom sites using the following syntax:<syntaxhighlight lang="html">
You can embed the component component in a wordpress/custom sites using the following syntax:<syntaxhighlight lang="html">
<!-- Make sure to point the beginning of the URL to your guest site endpoint -->
<!-- Load Supporting Components and Global Functions -->
<script src=".../b3o__GeneralUtils/index.js" defer="true" type="module"></script>
<!-- This Component -->
<script src=".../b3o__JobBoardResources/index.js" defer="true" type="module"></script>
<script src=".../b3o__JobBoardResources/index.js" defer="true" type="module"></script>
<script src=".../b3o__JobPostResources/index.js" defer="true" type="module"></script>


<job-board  
<job-board  
Line 72: Line 64:
=== User and Job Board Settings ===
=== User and Job Board Settings ===


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


=== Customization and Overrides ===
=== Customization and Overrides ===


* <code>default-search-radius</code>: Sets the default search radius (default is <code>10</code>).
* <code>places-api-key</code>: Key for Google Places API, if using.
* <code>places-api-key</code>: Key for Google Places API, if using.
* <code>job-object-name</code>: The API name of the job object (default is <code>b3o__Job__c</code>).
* <code>job-object-name</code>: The API name of the job object (default is <code>b3o__Job__c</code>).
* 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 Parameters ===
Line 88: Line 82:
=== Field Paths for ATS Integration ===
=== 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:
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:
* default-search-radius - defaults to 10
* places-api-key - not set by default
* places-api-key - not set by default
* job-object-name = 'b3o__Job__c' - the job object name
* job-object-name = 'b3o__Job__c' - the job object name
Line 112: Line 105:
* job-app-btn-label-path = 'b3o__Apply_Button_Text__c'
* job-app-btn-label-path = 'b3o__Apply_Button_Text__c'
* job-doc-pack-path = 'b3o__Document_Pack__c'
* job-doc-pack-path = 'b3o__Document_Pack__c'
*


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

Revision as of 07:50, 10 June 2024

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 component on any page. You can customize the component properties from the Traits Manager.

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