Matching

When submitting a request to Jobalyzer, it is important to use values that exactly match what exist in the system. If an answer from a request doesn't exactly match a value in the system, the answer will be ignored and will not affect the report that is returned.

To aid in finding exact matches, there are endpoints that can be used for searching for acceptable answers. There are endpoints for three different QuestionIds:

AutoComplete

  • JobTitle - https://jobalyzer.payscale.com/jobalyzer/v2/autocomplete/JobTitle

  • Skills - https://jobalyzer.payscale.com/jobalyzer/v2/autocomplete/Skills

  • Certifications - https://jobalyzer.payscale.com/jobalyzer/v2/autocomplete/Certifications

  • EmployerProductActivity - https://jobalyzer.payscale.com/jobalyzer/v2/autocomplete/EmployerProductActivity

  • HighestDegreeEarned (Education) - https://jobalyzer.payscale.com/jobalyzer/v2/autocomplete/HighestDegreeEarned

A matching request requires the following arguments:

  • User - This is a string representing the user. This should be your client ID.

  • CustomerId - This is a string representing the customer. This should also be your client ID.

  • Term - A search term you would like to find a match for. At least four characters are required for a JobTitle query. At least two characters are required for a Skills or EmployerProductActivity query.

Endpoints are interacted with through GET requests, and arguments are passed as query strings. An example request URL might look like the following:

https://jobalyzer.payscale.com/jobalyzer/v2/autocomplete/JobTitle?Term=software&CustomerId=client_id&User=client_id

An example response is shown below, and contains an array called Answers, each object within the array containing the keys Answer and Score. Up to 10 answers are returned for a given query, with the best match being first in the array.

{
    "Answers": [
        {
            "Answer": "Software Developer",
            "Score": 100
        },
        {
            "Answer": "Software Engineer",
            "Score": 99
        }
    ]
}

If a search term is too short, or there are no suggested answers, the answers array will be empty:

{
    "Answers": []
}

Job Title Match

A second endpoint for JobTitle specific matching is https://jobalyzer.payscale.com/jobalyzer/v2/jobtitlematch.

The required arguments are User, CustomerId, defined as above, and JobTitle, which needs to be an entire title that needs to be matched to a Payscale answer, as opposed to just the leading 4+ characters of a title.

This endpoint uses ensemble title matching model developed by Payscale's Data Science team. This produces highly accurate results based on analysis of multiple factors. Results are returned in descending order by score, with a higher score representing our confidence in the match. The user expected title is in the top-10 results 95% of the time, top-3 90%, and first position 70%.

If AutoResolveJobTitle parameter is true in the report generation endpoint, the top result from this will be used automatically.

This endpoint is the best choice for a smart-match experience, where the result may not be syntactically similar to the input but is usually what the user is looking for.

Similar to above, the response will contain an Answers array with up to 10 responses. If there are no suggestions found, the response will look like the following:

{
    "ErrorMessage": "No JobTitleMatch found for JobTitle: <JobTitle>"
}