Duplicate checks

Have a question about Bullhorn's HTTP based APIs? You've found the right place.

API Update [posted on December 13, 2012]:

This version of the Bullhorn APIs should no longer be used.

All new work should be done using Bullhorn's REST or Web Services APIs. For more information please visit: http://developer.bullhorn.com/documentation

Bullhorn REST API provides a simpler and faster way for developers to build applications that interact with the Bullhorn platform and is used by Bullhorn Inc. to develop features of the Bullhorn ATS/CRM application.

Of the BullhornSTAFFING HTTP API interfaces listed below, our analysis shows that the following are most commonly used by developers:

Resume Parsing API
Published Job Data (XML)
The interface to these will continue to work as is because Bullhorn will replace the back end to use REST API. The URLs for these 2 specific APIs may change in the 2nd half of 2013; developers may require to update their applications to use the new URLs.

Moderators: StaffingSupport, s.emmons

Locked
Guest

Duplicate checks

Post by Guest » Mon Aug 27, 2007 9:15 pm

Is there any mechanism/API to check the Candidate/Client for duplicacy?

kevin
Bullhorn Employee
Posts: 118
Joined: Wed Dec 31, 1969 8:00 pm

Post by kevin » Tue Aug 28, 2007 8:42 am

Yes, Bullhorn App does duplicate check when a user is added. The check is based on name and email.
Last edited by kevin on Fri Nov 16, 2007 9:45 am, edited 1 time in total.

jhealthcare
User
Posts: 8
Joined: Wed Dec 31, 1969 8:00 pm

Post by jhealthcare » Fri Nov 09, 2007 6:17 pm

I've used the HTML form provided by the Candidate Capture API. I complete the form twice, using the same email, same lastname, and Bob and Bobby as firstnames. Using the ProfileLookupAPI, I then enter my privateLabelID, encryption key, and the email. Sure enough, I find the two candidates there.

So, does Bullhorn API really do duplicate checking? If so, what am I doing wrong?

If the API doesn't, then is there another Capture API that allows us to perform the HTTP Request ourselves? I'd like to do duplicate checking before the info is sent off to the API.cfm, preferably once they click the Submit button.

cseibert
Bullhorn Employee
Posts: 392
Joined: Wed Dec 31, 1969 8:00 pm

Post by cseibert » Tue Nov 13, 2007 11:27 am

The API itself doesn't do any duplicate checking. You could certainly use the profile lookup API to do that. As you say, you will need to intercept the "submit" button and do the dupe checking before you send the new contact request.

This could be as simple as an Ajax call to check for that email address in Bullhorn. You would likely over-ride the submit button via a onClick() action on the button.

cdubois
User
Posts: 12
Joined: Wed Dec 31, 1969 8:00 pm

Post by cdubois » Thu Nov 15, 2007 8:18 pm

So does Kevin's comment apply only within Bullhorn and not with regards to the APIs?

Is there any way to create a new candidate using the same HTTP Request that we use for WorkHistory updates, for example? Ie. Can we just url encode and append privateLabelID, encryptionKey, firstname, lastname, etc. to https://cls2.bullhornstaffing.com/Bullh ... lesAPI.cfm or something similar?

My issue is that I already wrote code for checking that stuff and I can't access it from javascript because it's in C#, and I need to make the form be an asp form, rather than one that only goes to your API cfm script when submitted.

cseibert
Bullhorn Employee
Posts: 392
Joined: Wed Dec 31, 1969 8:00 pm

Post by cseibert » Fri Nov 16, 2007 10:10 am

Correct, Kevin was talking about inside the application. As for creating candidates, take a look at the Candidate Capture API. The parameter format will likely be different from the work history API.

Also, you should be using www.bullhornstafffing.com for the URL.

cdubois
User
Posts: 12
Joined: Wed Dec 31, 1969 8:00 pm

Post by cdubois » Fri Nov 16, 2007 2:26 pm

So the AddWorkHistoryAPI takes just pid, key, and xmlData. For the Candidate Capture, all I am aware of is the auto-creation of the capture form. If I have xmlData in BHXML format for a new candidate, can I send that to the Candidate Capture API? Does it achieve the same as the autogenerated form? (eg. Does it trigger email responses?)

cseibert
Bullhorn Employee
Posts: 392
Joined: Wed Dec 31, 1969 8:00 pm

Post by cseibert » Fri Nov 16, 2007 2:43 pm

Take a look at the source behind the auto generated form. That will give you the exact parameters. They are all form variables; there is no xmlData for that one.

tclancy
User
Posts: 19
Joined: Wed Jul 02, 2008 11:10 am

Re: Duplicate checks

Post by tclancy » Wed Jan 28, 2009 4:01 am

But what do we do if we're using the auto-generated form to submit applications? I've created an Ajax lookup to find if a candidate is already in the system, but I'm unsure what to do after that. If they are a match, I have the existing user id-- can I pass that in the auto-generated form?

For anyone else who runs into this, here's what I did (using the class at http://geekswithblogs.net/rakker/archiv ... 76044.aspx as a foundation):

1. Created a local C# file to look for duplicates (since cross-domain Ajax isn't easy to do). Here's the codebehind

Code: Select all

 using System;
using System.Configuration;

public partial class job_seekers_dupe_check : System.Web.UI.Page
{
    private string _output = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        string firstName = (null == Request.QueryString["firstName"]) ? "" : Request.QueryString["firstName"].ToString();
        string lastName = (null == Request.QueryString["lastName"]) ? "" : Request.QueryString["lastName"].ToString();
        string email = (null == Request.QueryString["email"]) ? "" : Request.QueryString["email"].ToString();

        PostSubmitter post = new PostSubmitter();
        post.Url = "https://www.bullhornstaffing.com/BullhornStaffing/API/GetProfileAPI.cfm";
        post.PostItems.Add("privateLabelID", System.Configuration.ConfigurationManager.AppSettings["BULLHORN_PRIVATE_LABEL_ID"].ToString());
        post.PostItems.Add("encryptedAPIKey", System.Configuration.ConfigurationManager.AppSettings["BULLHORN_API_KEY"].ToString());
        post.PostItems.Add("firstName", firstName);
        post.PostItems.Add("lastName", lastName);
        post.PostItems.Add("email", email);
        post.PostItems.Add("profileType", "Candidate");
        post.Type = PostSubmitter.PostTypeEnum.Post;
        _output = post.Post();
    }

    public string Output
    {
        get { return _output; }
    }
}
2. Used jQuery to send the data to that file and parse the response

Code: Select all

function attachBullhornDupeCheck()
{
	$("body#applyForm #applyFormSubmit").click(
		function()
		{
			$.get("dupe-check.aspx", {
				firstName: $("input#firstName").val(), 
				lastName: $("input#lastName").val(), 
				email: $("input#email").val()
				}, function (data){handleDupeResponse(data);}
			);
			
			return false;
		}
	);
}

function handleDupeResponse(data)
{
	// not an existing user
	if (data.indexOf("<NA/>") > -1)
	{
		return;
	}
	
	// look for user id
	var matches = data.match(/<USERID>(\d+)/);
	if (matches.length < 2)
	{
		return;
	}
	matches[1];
}

dsueltenfuss
Bullhorn Employee
Posts: 119
Joined: Wed Dec 31, 1969 8:00 pm

Re: Duplicate checks

Post by dsueltenfuss » Wed Jan 28, 2009 3:32 pm

The Candidate Capture API is intended for new candidates only. If you are catching a user that already exists, you would want to submit them to a job using the Job Applications API

Thanks

Locked