Screening Tests API

This is the API to deal with Screening Tests. Like Problems, Screening Tests are JyMob's core value proposition. Each action shows the HTTP request and response. Errors are generic in format and provide action-specific messages and error codes as described here.

Screening Tests are a multi-level structure. One way to visualize a JyMob screening test is to look at it as tabular data. With this simple structure, you can build intuitive user interface.

Name Value
ID 1234
status ongoing (one of ongoing, submitted, verified, expired)
start_time UTC string for start time
last_saved_time UTC string representing the time when test was last saved
source_id 433 (ID of the job_post)
job_application_id 123 (ID of the job_application for which this test was generated)
problems

Array of problems contained in this screening test. Each problem's structure is same as what Problem API documents, with an (optionally) embedded submitted_solution element.

uuid 2525552523523756752 (unique ID of the problem)
type ProgrammingProblem (one of many, e.g. FindTheBug, MultipleChoiceProblem, ProgrammingProblem, Puzzle, SimpleProblem)
statement A markdown of the actual problem statement
difficulty_level Arbitrary representation of problem's difficulty level on a scale of 1-10 like: "number: [Easy/Not that Easy, Hard]", e.g. 5: Not that Easy

submitted_solution: If any of the problems have been attempted by a candidate, then a submitted_solution is included in the representation of the problem. This is easier to process by programs because you look for an embedded submitted_solution element to know whether the user attempted a problem.

id 12 (Note: this is the ID of the solution)
solution actual text of the submitted solution

Listing Screening Tests

Lists all your screening tests. These are the JyMob screening tests you have taken.

Request Response

URL takes additional parameters as needed for pagination etc.

Type: GET
          
URL: /screening_tests.[json, xml]?access_token=<access-token>&param1=value1&param2=value2&
          
XML: All screening_tests. Root element: job-posts
JSON: Array of job_post elements.

Creating a Screening Test

Basically, you provide the ID of the job post and ID of the job application and we will generate a screening test for that, based on our automated test generator. If we fail to do so (really, an uncommon case), we'll let you know. In case of failure then, you should configure the job post via the tuner to ensure that a valid screening test always gets generated for your job post.

You call this action on the behalf of the job seeker. For instance, when a job seeker applies for a job on your website, assuming you have already posted that job on JyMob (using Job Posts API), you will get the screening test which you can appropriately display.

Request Response
Type: POST
          
URL: /screening_tests.[json, xml]
          
Body: access_token=<access-token>&job_post_id=12&job_application_id=23
          
XML/JSON: Representation of the created Screening Test.

Showing a Screening Test

Request Response
Type: GET
          
URL: /screening_tests/<ID>.[json, xml]
          
XML/JSON representation of the screening_test.

Updating a Screening Test

As of now, you can only update the status of a screening test to "submitted". Nothing else is legitimate. Basically, you set the status when a user clicks the submit button on a fictitious form displaying the test and its contents. In order to save a solution to a problem in a test, you simply create or update a submitted_solution. See SubmittedSolution API documentation. This is the RESTful way of looking at resources.

Request Response
Type: PUT or POST with X-HTTP-Method-Override: PUT Header
          
URL: /screening_tests/<ID>.[json, xml]
          
Body: access_token=<access-token>&status=submitted
          
Empty

Deleting a Screening Test

Sorry, you may not delete a screening test.