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. Note: this data response is what we POST to your team's webhook URL when we find a job change. Include the webhook=true param to test it.

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.

You can also include has_new_title=true to return only connections with new titles. This filter can be used in conjunction with has_new_job=true

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
team 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
}

Employees

Get employees at a company

Retrieves the first name, last name, title, and profile ID of a person at a company. Then use the profile_id to get full employment and education details.

Parameters

company The domain or company name of the company you want employees for. required

Example

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

Result

A successful result will look like this.

{
  "status": "SUCCESS",
  "message": "Loaded all employees.",
  "data": [
    {
      "profile_id": "a1g0rithm",
      "title": "Software Engineer Intern",
      "first_name": "Allison",
      "last_name": "Tearjen"
    },
    {
      "profile_id": "adam-wushensky-79129171",
      "title": "Software Engineer",
      "first_name": "Adam",
      "last_name": "Wushensky"
    },
    {
      "profile_id": "jaime-park-94b937167",
      "title": "iOS Developer",
      "first_name": "Jaime",
      "last_name": "Park"
    },
    {
      "profile_id": "sam-king-093613",
      "title": "Founder and Chief Scientist",
      "first_name": "Sam",
      "last_name": "King"
    },
    {
      "profile_id": "steven-liu-00127b24",
      "title": "Co-Founder",
      "first_name": "Steven",
      "last_name": "Liu"
    },
    {
      "profile_id": "sven-kuhne",
      "title": "Software Engineer",
      "first_name": "Sven",
      "last_name": "Kuhne"
    },
    {
      "profile_id": "will-megson-60619645",
      "title": "Founder",
      "first_name": "Will",
      "last_name": "Megson"
    }
  ]
}

Get the profile of an employee

Retrieves the full employment and education details of an employee.

Parameters

profile_id The profile ID retrieved from the employees endpoint. required

Example

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

Result

A successful result will look like this.

{
  "status": "SUCCESS",
  "message": "Loaded profile.",
  "data": {
    "first_name": "Allison",
    "last_name": "Tearjen",
    "education": [
      {
        "starts_at": null,
        "ends_at": null,
        "field_of_study": "Computer Science",
        "degree_name": "Bachelor’s Degree",
        "school": "University of California, Davis"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "field_of_study": "Chemical Engineering",
        "degree_name": "Bachelor's Degree",
        "school": "University of California, Davis"
      }
    ],
    "experiences": [
      {
        "starts_at": null,
        "ends_at": null,
        "company": "Goldman Sachs",
        "title": "Software Engineer Intern"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "Davis Computer Science Club",
        "title": "President"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "Davis Computer Science Club",
        "title": "External Outreach Chair"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "Bouncer",
        "title": "Software Engineer Intern"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "UC Davis Department of Chemical Engineering and Materials Science",
        "title": "Programming Tutor"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "Magenta Florence & Vista Magazine",
        "title": "Product Manager Intern"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "Zillow Group",
        "title": "Software Engineering Intern"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "UC Davis Department of Chemical Engineering and Materials Science",
        "title": "Chemical Engineering Undergraduate Teaching Assistant"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "UC Davis Department of Chemical Engineering and Materials Science",
        "title": "Peer Mentor"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "Procter & Gamble",
        "title": "Manufacturing Engineering Intern"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "Engineers Without Borders USA",
        "title": "Project Manager"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "UC Davis Department of Chemical Engineering and Materials Science",
        "title": "Research Intern Runnebaum Lab"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "UC Davis Department of Chemical Engineering and Materials Science",
        "title": "Chemical Engineering Tutor"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "RES (Renewable Energy Systems Ltd)",
        "title": "Project Engineer Intern"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "PepsiCo",
        "title": "Manufacturing Engineering Intern"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "UC Davis Department of Food Science",
        "title": "Research Intern"
      },
      {
        "starts_at": null,
        "ends_at": null,
        "company": "UC Davis Department of Microbiology",
        "title": "Student Assistant"
      }
    ]
  }
}

© 2021 Live Data Technologies. All rights reserved.