Amplify Verify Snippet Integration Guide (Partners)
The Amplify Verify snippet enables Amplify Verify to collect behavioral and session-level data from candidates as they complete a job application. By embedding the snippet in your job application framework, you establish a trust session that is validated at the point of submission, helping protect your customer's application pipeline from fraudulent or automated submissions. No personally identifying information is collected.
You should ensure that your privacy policy is current and that visitors understand that non-identifiable data is being collected during the application process and that this data may be used for detection of fraudulent behaviors.
If you are a Bullhorn customer integrating Amplify Verify into your company's job application website, see Amplify Verify Snippet Integration Guide (Customers).
Step 1: Import the Snippet
Import the Amplify Verify snippet like any standard JavaScript file. Add the <script> tag to the <head> or the bottom of the <body> on your job application page:
<script src="https://trust-snippet.bullhornstaffing.com/trust-snippet.min.js"></script>
Step 2: Start a Trust Session
Once the snippet is loaded, initialize a trust session by calling window.Trust.start(). Call this as early as possible when the page loads — ideally on DOMContentLoaded — so the session is established before the candidate submits.
window.Trust?.start({
// Optional: Bullhorn candidate ID (if available)
candidateId: "123",
// Required: One of the following two
customerId: "8035", // Either Bullhorn corporation ID
corpToken: "12frrd" // Or Bullhorn corporation token
});
Step 3: Send the Trust Session ID on Apply
When the candidate submits their application, include the trust session ID as a query parameter (trustSessionId) in your call to the Bullhorn REST Public Apply endpoint or authenticated REST API call:
const trustSessionId = window.Trust?.sessionId ?? "";
const applyUrl = `/apply/<jobOrderId>/raw?trustSessionId=${trustSessionId}`;Always use optional chaining (?.) when accessing sessionId to gracefully handle cases where the snippet has not yet fully initialized.
Supported Bullhorn endpoints
You can send the Trust Session ID to any of the supported Bullhorn endpoints then Verify will automatically identify the session with the Candidate, Job and Submission. The API endpoints which support the trustSessionId parameter are:
/apply/<jobOrderId>/raw?trustSessionId=${trustSessionId}/entity/JobSubmission?trustSessionId=${trustSessionId}/entity/Candidate?trustSessionId=${trustSessionId}
Complete Integration Example
The following shows all three steps combined in a typical job application page:
<!-- 1. Import the snippet -->
<script src="https://trust-snippet.bullhornstaffing.com/trust-snippet.min.js"></script>
<script>
// 2. Start the trust session on page load
document.addEventListener('DOMContentLoaded', function () {
window.Trust?.start({
customerId: "8035" // Your customer's Bullhorn corp ID
});
});
// 3. Include the session ID when the candidate submits
async function submitApplication(applicationData) {
const trustSessionId = window.Trust?.sessionId ?? "";
const applyUrl = `https://<your-rest-url>/apply/<jobOrderId>/raw
?trustSessionId=${trustSessionId}`;
await fetch(applyUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(applicationData)
});
}
</script>FAQ
When should I call start()?
Call start() as early as possible when the application page loads — not at submission time. This gives Amplify Verify enough time to establish a valid session and collect browser data before the candidate submits. Hooking into DOMContentLoaded is a reliable pattern.
What if the candidate ID isn't available?
The candidateId parameter is optional and can be omitted in most job application flows. Only include it if the Bullhorn Candidate ID is otherwise known at page load time.
What if sessionId is undefined?
window.Trust?.sessionId is null until the session has been established - i.e. until the Promise returned by start() resolves. Seeing null/undefined usually just means start() hasn't finished yet (or hasn't been called). The ?? "" fallback sends an empty trustSessionId, so the application proceeds without trust correlation.
If you would rather capture the ID directly than read Trust.sessionId later, start() resolves to it:
const sessionId = await window.Trust.start({ customerId: "8035" });If sessionId stays undefined indefinitely, the snippet may have failed to load - check the snippet URL is correct and the <script> tag is present.
Does this affect non-Bullhorn Apply flows?
The Amplify Verify snippet only applies to applications submitted via the Bullhorn REST Public Apply or specific authenticated REST API endpoints. It does not affect other application flows or third-party ATS integrations.
Support
For questions or issues with this integration, contact your Marketplace Partner Representative.