Skip to content

Extension samples for the Bullhorn ATS using Novo Elements

License

Notifications You must be signed in to change notification settings

bullhorn/extension-samples

Repository files navigation

Bullhorn Extension Samples

Bullhorn provides customization of the user experience with custom tabs, custom cards, custom actions and more. In this repo are several examples for getting started building custom apps using Novo Elements.

Sample Name Description Readme
1.HelloCard The hello world of custom cards that shows the data passed from Bullhorn. View
2.HelloTab The hello world of custom tabs that shows the data passed from Bullhorn. View
3.HelloRecordAction The hello world of custom record actions that shows how to connect to AppBridge as an action and see the data passed from Bullhorn. View
4.HelloListAction The hello world of custom list actions that shows how to connect to AppBridge as an action and see the data passed from Bullhorn, which can include multiple entities selected from the list. View
5.HelloMenuItem A placeholder for the hello world of custom menu items. View
6.ComparisonCard A sample card for Job records that shows the current job compared to other jobs in a scatter plot. View
7.ForecastCard A sample card for Job records that shows the current job compared to other jobs in a line chart forecasting into the future. View
8.ScoreCard A sample card for Job records that shows the current job's score, a contrived score that is calculated by some scoring criteria as well as an expander and a list view. View
9.RelatedJobsTab A sample tab for Job records that shows all jobs in the same state in a list view with the preview slideout and open window calls to jump to another job. View
10.CandidateEditTab A sample tab for Candidate records that shows an edit form for specific fields as well as custom toasts and modal dialogs. View

Prerequisites

  • NodeJS - version 10

  • Host File Hack (One Time Only)

    In order to dev test the custom action that is running locally from within Bullhorn (which is running at https://bullhornstaffing.com) we must run a local server with https and match the domain.

    Add the following line to your host file:

    127.0.0.1    localhost    local.bullhornstaffing.com
    

For Windows Users

  • Because this repo reuses the same shared files for each example project, symlinks are used to avoid duplication. See this guide for configuring your windows machine to allow unix symlinks.
  • Alternatively, you can copy/paste the files from the shared folder to a sample extension, replacing the symlinks where needed.

Viewing the App

Each extension can be locally served for development testing.

Since we are matching the secure https:// protocol of http://bullhornstaffing.com, we need to allow Chrome to open our app.

In a new browser card, navigate to https://local.bullhornstaffing.com:4201 and when the page "Your connection is not private" is displayed, click the "Advanced" button.

Chrome Privacy Warning

On the advanced page, click "Proceed to local.bullhornstaffing.com" to allow the browser to open the app.

Chrome Advanced Page

You can now view your locally running custom extension from within Bullhorn. In a window outside of a Bullhorn extension, you should see a screen that looks like this, since we check to see if Bullhorn has passed in query parameters to the extension.

Cannot Connect Extension App Screen

Adding to Bullhorn

To integrate the custom card on any record, login to www.bullhornstaffing.com as an admin user and go to Main Menu -> View Layout.

For non Novo enabled users, it looks like this:

S-Release View Layout

For Novo enabled users, it looks like this:

Novo View Layout

On the View Layout screen, select your entity of choice, then select your custom extension type of choice and click the Add New button.

Here is what it looks like for Custom Cards:

Add a New Custom Card

Here is what it looks like for Custom Tabs:

Add a New Custom Card

Select "Add New" and fill in the following details for a Custom Card:

Title: Custom Card Dev (can be any name you like)

URL: https://local.bullhornstaffing.com:4201

User Types: (Novo Only) Include all user types that should have access to this card.

Fill Out Custom Card

Or for a Custom Tab:

Fill Out Custom Tab

For Custom Tabs Only: you may need to create an individual custom tab for each track (ex: Job 1 - Job V) in order to get the custom tab to show up on different entity tracks.

For more information on adding custom tabs and menu actions, see the guide here.

Deploying

If using firebase, then the package.json deploy script is a handy way to build and deploy to firebase hosting in a single step. In order to do this, firebase hosting must first be setup for this project, by Creating A Firebase Project.

npm run deploy

Enabling for Customers

In order to enable customers to use your new extension, follow the same steps to add a new custom extension for a customer's instance of Bullhorn, and change the URL to the location of the deployed web app.