1. Home
  2. Advanced Setup & Configuration
  3. Source Tracking for Candidates & Submissions

Source Tracking for Candidates & Submissions

When accepting an application from a website visitor, Matador Jobs Pro can collect information about where the traffic originated and save data into the various fields on the Bullhorn Candidate and Submission objects. This article will explain source tracking and how it works, offer insights into the benefits of collecting and saving source tracking data, and outline some of the common ways the data can be customized.

What Is Source Tracking?

On the Bullhorn Candidate and Submission objects, there is a field where the “source” of the data can be noted. Matador Jobs Pro collects information about your site’s users and saves this information into the “source” when it is appropriate.

The information Matador Jobs Pro collects from one of two key sources:

  • UTM query string values are present: If UTM query string values are added to a link either manually by the site’s owner or automatically within the software, they will carry data on the nature of the link and how a user encountered the link.
  • UTM query string values are not present: If UTM query string values are not present, Matador will attempt to read user browser history to determine the previous page a user visited. We will then “guess” as to the nature of the traffic.

Matador Jobs Pro creates a cookie with the above data called matador_traffic. When a user completes an application, whether it’s to a specific position or a general application, the data in the cookie is read and used to generate the values we save into the “source” fields.

The matador_traffic cookie expires after two days. This means that users who visit your site and bookmark it or leave a tab/window open and return more than 48 hours later to apply will be treated as a direct site visitor.

What Source Tracking is Not

It’s worth pausing here for a moment to note what Matador Jobs Pro’s source tracking is not:

  • Source tracking will not record the users’ journey through your site,
  • Source tracking will not log the length of time a user spends visiting each page,
  • Source tracking will not be able to report on the aggregate demographics of your users,
  • Source tracking will not provide you with data on any users who do not apply to a role (bounce rate).

Matador Jobs Pro’s source tracking can provide a very valuable but limited set of data, but it does not replace other, more detailed tools, like Google Analytics or Mixpanel. It is best used in combination with site-wide analytics if that level of data is desired.

When is Source Data Collected?

Matador Jobs Pro will begin collecting source data whenever a user visits any page on your site, whether that is a job page, an application page, or any other page including a blog post or home page. Exceptions to this include the user cannot be logged in as a site administrator, the site is not in WP_DEBUG mode, the user allows websites to track them, and they have JavaScript enabled.

When is Source Data NOT Collected?

Let me reiterate the most important part of that last section: Matador Jobs Pro will not track users when they have a device, web browser, or system setting not allowing websites to track them, or if they have JavaScript disabled.

At the time this document was first written, JavaScript is disabled on an average of 1%-2% of web browsers and “Do Not Track” is enabled for up to 15%-20% of web users. This means, on average, up to one quarter of your traffic may not be tracked by Matador Jobs.

Depending on the industry for which you recruit, you may see higher or lower occurrences of users with “Do Not Track” settings turned on. For example, a tech-savvy applicant is more likely to use “Do Not Track”, so if you recruit in the software industry, expect higher opt-out rates resulting in less reliable source data.

A Philosophical Note on “Do Not Track”

It is some people’s belief that browser-level “Do Not Track” settings are fair game to be overridden by site-level Terms of Service/Privacy Policy consent gathering.

For example, Google Analytics (GA) will always track even when a user has turned on the “Do Not Track” setting, because Google takes the stance a website operator who installs GA will obtain consent from their users to track them.

We at Matador Software disagree with this stance, and for that reason, we require “Do Not Track” settings to be off to activate Matador’s source tracking features.

If you wish to enable Matador Jobs Pro source tracking for all users regardless of “Do Not Track” settings, your web developer can rewrite the code that instantiates Matador’s source tracking using the filter matador_campaign_tracking_inline_script, but please note you’ll be on your own: we will not help users debug issues with custom instantiation that has an intent of bypassing our “Do Not Track” behavior.

“Source” Data on Candidate Records

Provided a user is followed by Matador Jobs Pro’s source tracking, when the user creates an application on your site, Matador will check to determine if the user has an existing candidate profile following our Duplicate Candidate Prevention routine.

If Matador determines there is no candidate profile for the application, the “source” field will be populated by Matador Jobs using data collected by source tracking. If the candidate exists, “source” will not be changed.

When Matador determines a candidate profile already exists for the application, the existing “source” field will not be updated, even if it is currently empty. This is because the original source of a candidate is a critical data point. Did you meet the candidate at a job fair and your email follow-up resulted in them going to your website and applying? If so, their source is still the “job fair” and not your website.

“Source” Data on Submission Records

When a user creates an application for a specific role on your Matador Jobs Pro site, regardless of whether we need to create or append an existing Candidate record, we will always create a new Submission object.

Submissions, in Bullhorn, are a relationship between a candidate and a job. Regardless of how a candidate came to know your agency: be it via a job fair, referral, or some other method, their most recent application was completed on your website.

Provided a user is followed by Matador Jobs Pro’s source tracking, when the user creates an application on your site for a specific role (and not via a “general” application), Matador will always save source data on the Submission object.

“Source” String Format

Generally, your source data will be saved in the following format:

{site title} ({source}/{medium}/{campaign})

Let’s break this down:

  • {site title} is the placeholder for your website’s title, as is defined in your general WordPress settings under Settings > General > Site Title.

Sometimes, a Site Title can be very long. Very long Site Titles can result in some or all the source data being deleted (see why below). If you have a long Site Title, you can either change it in WordPress settings or use a developer filter to limit its length in the source field.

  • {source}, in this context, is either:
    • the value from the utm_source query string parameter, or
    • the referring website’s base URL, automatically determined from the user’s browser history data, or
    • “Direct (none)” when the user has no browser history data. This is common when the user directly types in your website URL, clicks a bookmark, or loads/reloads the page after the original tracking cookie has expired.
  • {medium} is either:
    • the value from the utm_medium query string parameter, or,
    • “Social” for users whose previous page was a major social network, including LinkedIn, or
    • “Organic”, as in “organic search”, for users whose previous page is a major search engine, or
    • “Referral” for users whose previous page was not one of the above, or
    • when {source} is “Direct (None)” this value is left blank.

A future update will add “Aggregator”, as in “Job Postings Aggregator” as a possible automatically determined source. It will be automatically applied to traffic from major aggregators including Indeed, ZipRecruiter, Monster, etc.

  • {campaign}, is set exclusively from the value of the utm_campaign query string parameter.

One final note about the source string format: the string is potentially truncated based on Bullhorn character limits. Bullhorn sets character limits of 200 characters for the source on a Candidate and 100 characters for the source on a Submission.

If we submit a Candidate or Submission record with values that exceed limits, it will not save. Therefore, to ensure we submit valid data to Bullhorn, we truncate strings that are too long. As we explained above, very long Site Titles are the primary cause of truncation, though long/descriptive values passed to the UTM query string can also cause this.

Making the Most of Source Tracking

While Matador Jobs Pro can guess a lot from each qualified user’s visit, what it is able to determine automatically cannot compare to what you, our users, can do when you create and distribute Campaign Links featuring UTM variables.


  • Are you sending out a mass email to highlight new positions for which you’re hiring? UTM variables can help you create a source string of “{site title} (Email/January Newsletter)”
  • Are you buying pay-per-click (PPC) ads on a website? UTM variables can help you create a source string of “{site title} (PPC/March Jobs Weekly)”.
  • Are you sending out a mass physical mailer? Give them a URL to type that redirects automatically to a URL with UTM variables, which can result in a source string of “{site title} (Direct Mail/Flyer Special Offer)”
  • Are you creating a social media post that touts your quick placements? Link to your site with a URL with UTM variables to get a source string of “{site title} (LinkedIn/Social/Quick Placements Post)”
  • and more!

Users of the Matador Jobs Pro XML Feeds Extension will note that the job URLs provided in the feed contain campaign links automatically. They are given campaign values of medium: “feed”, campaign: “aggregator”, and source: either the name of the feed or the value of either utm_source or source passed to the query string.

What are the UTM Variables?

UTM variables are query string variables. They are added to a URL by appending a question mark to a URL and then listing each UTM variable, an equal sign, and then a value. So, consider this example:


In this URL, the query string variables begin after the question mark ? and each variable follows the format of utm_variable=value with each separated by an ampersand & character. Values should be formatted with spaces replaced with an underscore _.

These are the following UTM variables you can use:

  • utm_campaign to identify the advertising or promotional campaign, or example “SocialPost4”, “MarchNewsletter”, or “SpringMailer”
  • utm_source to identify where the traffic originates, for example “LinkedIn”, “Newsletter”, or “MassMailer”. This can sometimes feel redundant to campaign, so Matador will apply the campaign value to source when utm_source is omitted.
  • utm_medium to identify the type of media the user interacted with. These can include industry norms like “Social” for social media, “Email”, “Ad”, and “PPC” or whatever else makes sense to you!

utm_source, utm_campaign, and utm_medium are generally considered “required” by industry standards, but Matador only requires utm_campaign.

  • utm_term to identify specific search terms the user used to find the link.
  • utm_content to identify the specific content/context the user interacted with. For example, you can assign “top link” to the first link on your newsletter and “article link” to the embedded link in your text article.

utm_term and utm_content are considered optional. They are also rarely used, even in the industry. Matador Jobs Pro will record these values with an application if detected, but at this time does nothing with the data. Developers can, of course, extend or customize Matador Jobs Pro to add the data to the source or save it in other ways, if needed.

  • Use a UTM Campaign Link Builder. A quick internet search will yield a several tools, including Campaign Link Builder.
  • Several SEO and Google Analytics WordPress plugins include a UTM Campaign Link builder, including Monster Analytics.
  • You can also create Campaign Links manually following the structure outlined above.

In the first section, we explained what Matador Jobs Pro campaign tracking “is not,” and we suggested you may want to add a site-wide tracking tool if you desire more robust data on your users’ behaviors.

Google Analytics in particular, but also most other site-wide tracking tools, will read Campaign Links using UTM variables to make your data more robust!

Fun Fact: “UTM” used to be an acronym for “Urchin Tracking Module.” Urchin was a software product designed to track user behavior on your website, and when purchased by Google in 2005, led to the creation of Google Analytics. UTM query string variables had become ubiquitous, and so the acronym stuck around even though Urchin is now just a memory from the earlier days of the internet.

Ensuring Compliance with Privacy/Data Regulations

By collecting data with Matador Jobs Pro source tracking, data that some jurisdictions would consider Personally Identifiable Information (PII) is collected about the user. For this reason, you need to make sure that your use of Matador Jobs Pro source tracking is compliant with your specific local regulations.

Items to Include in Your Data Collection Clause on Privacy Policy

In addition to any data you collect on your application, Matador Jobs Pro source tracking collects the following data:

  • User IP Address
  • User’s date/time of visit and application
  • User’s browser history
  • Metadata about the links a user may have clicked to get to your website.

If you use a WordPress plugin or other method to gain consent from your users to collect PII and store it in a cookie, you can integrate your users’ responses into the instantiation routine for MatadorTraffic, the JavaScript class that collects and saves that data.

There are two ways to do this. The first way is to add a filter with JavaScript logic to define matador_traffic as false if consent is withdrawn. Here is the documentation for that filter:

 * Filter Matador Campaign Tracking Inline Javascript
 * When the site uses some Javascript level setting to track a user's do not track setting, use this filter
 * to add logic to the inline Javascript that initializes Matador Traffic monitoring that would set
 * 'matador_traffic' to false if appropriate.
 * @since 3.5.0
 * @param string $script Empty String
 * @return string
apply_filters( 'matador_campaign_tracking_inline_javascript', '' )

An alternate way is to completely rewrite the MatadorTraffic instantiation routine. There is a lot going on in our instantiation routine and it is very advanced. Here is the filter and the documentation you will need to use for that:

 * Filter Matador Campaign Tracking Inline Script
 * Modify the whole inline script included for MatadorTraffic. Use with caution, as any modification could
 * result in this feature completely not working. If modified, the modified script should instantiate the
 * MatadorTraffic class with options.
 * @since 3.7.7
 * @param string $script  The inline script
 * @param string $url     The URL used for instantiation.
 * @param string $options A string of JSON-formatted default options
 * @return string
apply_filters( 'matador_campaign_tracking_inline_script', $inline, $url, $options );

Provided you need to rewrite the instantiation script for the right reasons, you may reach out to us for extra help!

Customizing Source Tracking

This section is under development.

The following customizations are possible for source tracking:

  • Customize the “Site Title” in case you need more space for source data or remove it completely when source data is available.
  • Use PHP or JavaScript to determine conditions that result in not tracking, i.e.: developer users from specific IP addresses or when the site is in WP_DEBUG mode.
  • Customize the source data string, including to add term or content, or change the separator character.
  • Extending the list of “known” social networks from the six major networks (Facebook, Instagram, LinkedIn, Reddit, YouTube, and Twitter) so that more/specific sites can trigger medium = social.
  • Extending the list of “known” search engines from the six major search engines (Google, Bing, Yahoo, Aol, DuckDuckGo, and Baidu) so that more/specific sites can trigger medium = organic.
  • Change the key of the Campaign Variables, from utm_* to {custom}_*.
  • Change the name of the cookie, e.g.: from matador_traffic to cookie_name.
  • Create pre-approved lists of allowed terms for medium.
  • … and more

If you’d like to do any of the above or beyond, we recommend your developer review the single source code file that contains all these features at /includes/modules/class-campaign-tracking.php. If you need further help, reach out to Matador Jobs support for additional advice.

Updated on November 8, 2021

Was this article helpful?

Related Articles