Problems API

Problems are JyMob's core value proposition. In order to access the problems, the user with the access token needs to be a job provider or a problem editor. Note that problems in JyMob's database carry JyMob's copyright. They are available via API so that you could configure the screening tests for the job posts.

Listing Problems

The best use of problems is to configure the screening tests. Following parameters are of essence and their use is highly recommended:

  • search: Specifies the search query. Only matching problems would be included in returned list.
  • type: A string that identities the type of a problem. JyMob problem database is versatile. Currently it has following types of problems:
    • ProgrammingProblem
    • Puzzles
    • MultipleChoiceProblem
    • FindTheBug
    • SimpleProblem
    All of these can be chosen by logical strings. For instance, a ProgrammingProblem can be identified when you specify programming as type, or FindTheBug can be identified when you specify bug as type. Technically, we lower case the type parameter and execute an SQL LIKE clause with above problem types lower cased.
  • scope: Specifies the scope. Use the value "keywords" if you only want to search within keywords associated with a problem. This is much faster than a full-text search, which is the default scope.

A significant property of a problem is its UUID. You can choose a problem by its UUID and then add it to a particular job post's template as a mandatory problem. This is one of the ways in which you can configure JyMob's screening tests.

Request Response

URL takes additional parameters as needed for pagination etc.

Type: GET
          
URL: /problems.[json, xml]?access_token=<access-token>[&
search=Dynamic Programming Optimization&scope=keywords&
type=multi]
          
            XML/JSON: All programming problems whose keywords contain the words "Dynamic Programming" and "Optimization".
            Root element for XML: problems. In case of JSON, an array of problem elements is returned.
          

Every problem returned has uuid, type, statement (conveniently formatted as markdown) and difficulty level. In case of multiple choice problems, the available choices are also returned.

Example Response:
HTTP/1.1 200 OK
Content-Type: application/xml; charset=utf-8
X-Ua-Compatible: IE=Edge
Etag: "1982e9fdbed92caf0111524c3102734c"
...
<?xml version="1.0" encoding="UTF-8"?>
  <problems type="array">
    <problem>
      <uuid type="integer">4676121790791712376</uuid>
      <type>MultipleChoiceProblem</type>
      <statement>It is said that in many ways, _joins_ are the heart of relational database systems. Are the joins always based on
      equality of values in the columns on which the tables join?
      </statement>
      <difficulty-level type="integer">6</difficulty-level>
      <choices type="array">
        <choice>
          <id type="integer">1</id>
          <option>a</option>
          <content>Yes</content>
        </choice>
        <choice>
          <id type="integer">2</id>
          <option>b</option>
          <content>No</content>
        </choice>
          <choice>
          <id type="integer">3</id>
          <option>c</option>
          <content>It depends</content>
        </choice>
      </choices>
    </problem>
  </problems>
          



© JyMob Inc. 2012