Track Job Changes API Documentation (v1)

The TrackJobChanges API enables you to query your connections and retrieve both their current occupation and past jobs. It uses standard RESTful commands and JSON responses, allowing you to connect TrackJobChanges to your internal systems and CRMs, keeping everything in sync automatically.

Not into APIs? You can use TrackJobChanges's API via Salesforce or Zapier instead!

Calling the API

V1 of the API is hosted at https://www.trackjobchanges.com/api/v1. All calls use this URL as the base.

Authentication

TrackJobChanges uses token-based authentication. If you're logged into your TrackJobChanges account, you'll see your API key below.

Simply include key as a query parameter or a header parameter in your queries, like this: https://www.trackjobchanges.com/api/v1/connections?key=<<log in to see your key>>.

If you don't include an API key or use the wrong one, TrackJobChanges will respond with a 401 authorization error.

Status and Error Codes

Here are the most common HTTP status codes you may receive from our API and what they mean.

Pagination

All GET calls to the TrackJobChanges API are paginated. Simply append a page= parameter to paginate through the results. You can use the last_page key in the JSON payload to determine if you would like to continue paginating.

Groups

If you have multiple Groups for your TrackJobChanges Account then you can pass a group query parameter with the Group ID to the endpoints to get or create data for the correct group.

Account

Get account information

Retrieves your basic account information including plan usage.

Example

GET https://www.trackjobchanges.com/api/v1/account?key=<<log in to see your key>>

Result

{
  "status": "SUCCESS",
  "message": "Loaded user data",
  "data": {
    "email": "rbucks@gmail.com",
    "connections_count": 7
  }
}

Get ping history

Retrieves a history of your API usage.

Example

GET https://www.trackjobchanges.com/api/v1/account/pings?key=<<log in to see your key>>

Result

{
  "status": "SUCCESS",
  "message": "Loaded pings",
  "data": [
    {
      "query_params": {
        "key": "54e30766279d9186adccfaaf0809d389",
        "query": "ryan@scripted.com",
        "action": "search",
        "format": "json",
        "controller": "api/v1/connections"
      },
      "endpoint": "connections#search",
      "created_at": "2018-02-20T05:50:21.662Z"
    }
  ],
  "last_page": false
}

Search ping history

Search the history of your API usage.

Parameters

query Text you want to search. It will search the endpoint and query_params fields required

Example

GET https://www.trackjobchanges.com/api/v1/account/pings/search?key=<<log in to see your key>>&query=create

Result

{
  "status": "SUCCESS",
  "message": "Loaded pings",
  "data": [
    {
      "query_params": {
        "key": "54e30666279d9186adccfaaf0809d123",
        "query": "ryan@scripted.com",
        "action": "search",
        "format": "json",
        "controller": "api/v1/connections"
      },
      "endpoint": "connections#create",
      "created_at": "2018-02-20T05:50:21.662Z"
    }
  ],
  "last_page": true
}

Connections

Get connection

Retrieves a single connection by its ID.

Example

Use GET https://www.trackjobchanges.com/api/v1/connections/id?key=<<log in to see your key>>

Result

{
  "status": "SUCCESS",
  "message": "Loaded connection.",
  "data": {
    "id": 1,
    "created_at": "2020-08-16T17:39:58.374Z",
    "has_new_job": true,
    "new_job_flagged_at": "2020-12-14T14:37:26.412Z",
    "first_name": "ryan",
    "last_name": "buckley",
    "linkedin_url": "https://www.linkedin.com/rbuckley",
    "facebook_url": null,
    "twitter_url": null,
    "avatar_url": "https://www.bing.com/th?id=AMMS_8b2ccc0930e51218cec5f510cfa5cc36&w=72&h=72&c=12&rs=1&qlt=80&cdv=1&dpr=2&pid=16.2",
    "employment_checked_at": "2020-12-14T14:37:26.391Z",
    "has_new_title": false,
    "location": "",
    "in_eu": false,
    "starting_employment": {
      "email": "rbuckley@scripted.com",
      "title": "ceo",
      "company": "scripted",
      "domain": "scripted.com",
      "current": false,
      "email_confidence": 100
    },
    "current_employment": {
      "email": "rbuckley@dvc.edu",
      "title": null,
      "company": "diablo valley college",
      "domain": "dvc.edu",
      "current": true,
      "email_confidence": 85
    }
  }
}

Get all connections

Retrieves a paginated list of all of your connections.

Example

Use GET https://www.trackjobchanges.com/api/v1/connections?key=<<log in to see your key>> for all connections or GET https://www.trackjobchanges.com/api/v1/connections?key=<<log in to see your key>>&has_new_job=true for only connections with new jobs.

Result

{
  "status": "SUCCESS",
  "message": "Loaded all connections.",
  "data": [
    {
      "id": 2758,
      "created_at": "2018-02-21T16:21:10.283Z",
      "has_new_job": false,
      "first_name": "ryan",
      "last_name": "buckley",
      "linkedin_url": "https://www.linkedin.com/in/rbuckley",
      "facebook_url": "https://www.facebook.com/rbucks",
      "twitter_url": "https://twitter.com/rbucks",
      "avatar_url": "https://d2ojpxxtu63wzl.cloudfront.net/static/bb01b76057252a4e3a1218b3e7ab4e1d_8c112ae46c1c884d84c3b0a5e7184b293c18db0d8508062a049ce1a16e67dfa9",
      "location": "San Francisco, CA, US",
      "in_eu": false,
      "starting_employment": {
        "email": "ryan@scripted.com",
        "title": "ceo",
        "company": "scripted",
        "started_at": null,
        "ended_at": null,
        "current": false,
        "email_confidence": null
      },
      "current_employment": {
        "email": "ryan@toofr.com",
        "title": "founder",
        "company": "toofr",
        "started_at": "2017-07-01",
        "ended_at": null,
        "current": true,
        "email_confidence": 100
      }
    }
  ],
  "last_page": true,
  "total_count": 1
}

Add a new connection

Creates a new connection for TrackJobChanges to track on your account. The required parameters are a bit complicated. At minimum, we need either a linkedin_url alone or first_name and last_name with either email or company. We still suggest that you include all data you have available.

Parameters

email Properly formed email address of the new connection optional
first_name First name of the new connection optional
last_name Last name of the new connection optional
company Company name of the new connection optional
title Title of the new connection optional
linkedin_url LinkedIn profile URL of the new connection optional
group ID of the group you are adding the connection to (defaults your first group) optional
persist Whether or not you want to keep tracking the new connection (default: true) optional

Example

POST https://www.trackjobchanges.com/api/v1/connections?key=<<log in to see your key>>&email=ryan@toofr.llc

Result

{
  "status": "SUCCESS",
  "message": "Your connection is processing. Use the ID to check again in a few minutes.",
  "data": {
    "id": 2761,
    "created_at": "2018-02-21T16:37:54.865Z",
    "has_new_job": null,
    "first_name": "ryan",
    "last_name": "buckley",
    "linkedin_url": null,
    "facebook_url": null,
    "twitter_url": null,
    "avatar_url": null,
    "location": "San Francisco, CA, US",
    "in_eu": false,
    "starting_employment": {
      "email": "ryan@toofr.com",
      "title": "ceo",
      "company": "toofr",
      "started_at": null,
      "ended_at": null,
      "current": null,
      "email_confidence": null
    }
  }
}

Search your connections

Retrieves the employments given a set of search parameters. Retrieve the connection_id from the Get all connections result and include it in the URL address.

Parameters

query First name, last name, email, company, or title of your connections required

Example

GET https://www.trackjobchanges.com/api/v1/connections/search?key=<<log in to see your key>>&query=ryan@toofr.com

Result

A successful result will look like this.

{
  "status": "SUCCESS",
  "message": "Searched your connections.",
  "data": [
    {
      "id": 2758,
      "created_at": "2018-02-21T16:21:10.283Z",
      "has_new_job": false,
      "first_name": "ryan",
      "last_name": "buckley",
      "linkedin_url": "https://www.linkedin.com/in/rbuckley",
      "facebook_url": "https://www.facebook.com/rbucks",
      "twitter_url": "https://twitter.com/rbucks",
      "avatar_url": "https://d2ojpxxtu63wzl.cloudfront.net/static/bb01b76057252a4e3a1218b3e7ab4e1d_8c112ae46c1c884d84c3b0a5e7184b293c18db0d8508062a049ce1a16e67dfa9",
      "location": "San Francisco, CA, US",
      "in_eu": false,
      "starting_employment": {
        "email": "ryan@scripted.com",
        "title": "ceo",
        "company": "scripted",
        "started_at": null,
        "ended_at": null,
        "current": false,
        "email_confidence": null
      },
      "current_employment": {
        "email": "ryan@toofr.com",
        "title": "founder",
        "company": "toofr",
        "started_at": "2017-07-01",
        "ended_at": null,
        "current": true,
        "email_confidence": 100
      }
    },
    {
      "id": 2761,
      "created_at": "2018-02-21T16:37:54.865Z",
      "has_new_job": false,
      "first_name": "ryan",
      "last_name": "buckley",
      "linkedin_url": "https://www.linkedin.com/in/rbuckley",
      "facebook_url": "https://www.facebook.com/rbucks",
      "twitter_url": "https://twitter.com/rbucks",
      "avatar_url": "https://d2ojpxxtu63wzl.cloudfront.net/static/bb01b76057252a4e3a1218b3e7ab4e1d_8c112ae46c1c884d84c3b0a5e7184b293c18db0d8508062a049ce1a16e67dfa9",
      "location": "San Francisco, CA, US",
      "starting_employment": {
        "email": "ryan@toofr.com",
        "title": "ceo",
        "company": "toofr",
        "started_at": "2017-07-01",
        "ended_at": null,
        "current": false,
        "email_confidence": null
      },
      "current_employment": {
        "email": "ryan@toofr.com",
        "title": "advisor",
        "company": "toofr llc",
        "started_at": "2012-06-01",
        "ended_at": null,
        "current": true,
        "email_confidence": 100
      }
    }
  ],
  "last_page": true,
  "total_count": 2
}

Harvest connections

Creates a pool of connections from which you can harvest job changes.

Parameters

company The name of the company or account you are targeting required
term Query term (one word) describing the job or position required

Example

POST https://www.trackjobchanges.com/api/v1/connections/harvest?key=<<log in to see your key>>&company=salesforce&term=engineering

Result

{
  "status": "SUCCESS",
  "message": "Harvester job is queued."
}

Unflag a connection

Sets the has_new_job attribute to FALSE.

Parameters

id The ID of the connection you want to unflag. You may retrieve this ID by searching or listing all connections. required

Example

POST https://www.trackjobchanges.com/api/v1/connections/123/unflag?key=<<log in to see your key>>

Result

{
  "status": "SUCCESS",
  "message": "Unflagged the connection."
}

Unflag a connection title change

Sets the has_new_title attribute to FALSE.

Parameters

id The ID of the connection title change you want to unflag. You may retrieve this ID by searching or listing all connections. required

Example

POST https://www.trackjobchanges.com/api/v1/connections/123/unflag_title?key=<<log in to see your key>>

Result

{
  "status": "SUCCESS",
  "message": "Unflagged the connection title change."
}

Destroy a connection

Permanently deletes a connection. BE CAREFUL WITH THIS ENDPOINT! It cannot be undone.

Parameters

id The ID of the connection you want to destroy. You may retrieve this ID by searching or listing all connections. required

Example

DELETE https://www.trackjobchanges.com/api/v1/connections/123?key=<<log in to see your key>>

Result

{
  "status": "SUCCESS",
  "message": "Destroyed the connection."
}

Destroy all connections

Permanently deletes all of your connections. BE CAREFUL WITH THIS ENDPOINT! It cannot be undone.

Example

GET https://www.trackjobchanges.com/api/v1/connections/destroy_all?key=<<log in to see your key>>

Result

{
  "status": "SUCCESS",
  "message": "Destroyed all connections."
}

Employments

Get all employments from a connection

Retrieves the employment history of a given connection. Retrieve the connection_id from the Get all connections result and include it in the URL address.

Parameters

id The ID of the connection you want to see employments for. You may retrieve this ID by searching or listing all connections. required

Example

GET https://www.trackjobchanges.com/api/v1/connections/:id/employments?key=<<log in to see your key>>

Result

A successful result will look like this.

{
  "status": "SUCCESS",
  "message": "Loaded all employments.",
  "data": [
    {
      "id": 3481,
      "email": "ryan@toofr.com",
      "title": "founder",
      "company": "toofr",
      "started_at": "2017-07-01",
      "ended_at": null,
      "current": true,
      "email_confidence": 100,
      "connection_id": 2758
    },
    {
      "id": 3483,
      "email": "ryan@toofr.com",
      "title": "advisor",
      "company": "toofr llc",
      "started_at": "2012-06-01",
      "ended_at": null,
      "current": false,
      "email_confidence": 100,
      "connection_id": 2758
    },
    {
      "id": 3484,
      "email": "ryan@rapleaf.com",
      "title": "business development",
      "company": "rapleaf",
      "started_at": "2010-09-01",
      "ended_at": "2011-04-01",
      "current": false,
      "email_confidence": 24,
      "connection_id": 2758
    },
    {
      "id": 3482,
      "email": "ryan.buckley@hired.com",
      "title": "advisor",
      "company": "hired, inc",
      "started_at": "2012-11-01",
      "ended_at": null,
      "current": false,
      "email_confidence": 21,
      "connection_id": 2758
    },
    {
      "id": 3480,
      "email": "ryan@scripted.com",
      "title": "ceo",
      "company": "scripted",
      "started_at": null,
      "ended_at": null,
      "current": false,
      "email_confidence": null,
      "connection_id": 2758
    }
  ],
  "last_page": true,
  "total_count": 5
}

© 2021 Live Data Technologies. All rights reserved.