Get Started

    API Endpoint
        https://www.theorymeetspraxis.com/wp-admin/admin-ajax.php
                
    API Staging Server Endpoint
        https://www.theorymeetspraxis.com/staging/wp-admin/admin-ajax.php
                

The Theory Meets Praxis API provides programmatic access to post and search job listings on the website.

To use this API, you need an API key. Please contact us at info@theorymeetspraxis.com to get your own API key.

Job Types

The following are ID codes for different job types.

Job Types

Name
Full-Time
Part-Time
Temporary
Freelance
Internship
Fellowship

Post Object

The following are parameters that make up a post object.

WARNING: Application URLs must be unique. A job listing sharing the same application URL will be updated rather than a new one being created.


Sample JSON Object:

[
  {
    "post_title": "Sample Title",
    "post_content": "<p>Sample Content</p>",
    "source_url": "https://samplewebsite.com",
    "application_url": "https://samplewebsite.com",
    "company_website": "https://samplewebsite.com",
    "company_twitter": "@Smaple Company",
    "position_filled": "true",
    "listing_expiry_date": "2021/08/21",
    "location": "Sample Location",
    "company_name": "Company Name",
    "company_tagline": "Company Tag Line",
    "company_video": "https://samplewebsite.com",
    "featured_listing": "false",
    "job_requirements": "<p>Sample Requirements</p>",
    "job_type": "Freelance",
    "job_categories": [
      "Administration",
      "Arts"
      ]
  },
  {
    "post_title": "Another Sample Title",
    "post_content": "<p>Sample Content</p>",
    "source_url": "https://samplewebsite.com",
    "application_url": "https://anothersamplewebsite.com",
    "company_website": "https:/another/samplewebsite.com",
    "company_twitter": "@Smaple Company",
    "position_filled": "true",
    "listing_expiry_date": "2021/08/21",
    "location": "Sample Location",
    "company_name": "Company Name",
    "company_tagline": "Company Tag Line",
    "company_video": "https://anothersamplewebsite.com",
    "featured_listing": "false",
    "job_requirements": "<p>Sample Requirements</p>",
    "job_type": "Freelance",
    "job_categories": [
      "Administration",
      "Arts"
      ]
  }
  ]
                

PARAMETERS

Field Type Description
post_title String (optional) The job's title or position.
post_content String (optional) The job's description. This can contain HTML tags. Please keep in mind, HTML tags not supported by WordPress will automatically be stripped.
job_requirements String (optional) The job's requirements. This can contain HTML tags. Please keep in mind, HTML tags not supported by WordPress will automatically be stripped.
source_url String (optional) A valid URL for the job listing of the original site. Source URLs must be unique. A job listing sharing the same source URL will be updated rather than a new one being created.
application_url String (optional) A valid URL for the where to apply for the job.
company_website String (optional) A valid URL for the company's website.
company_twitter String (optional) The company's Twitter handler.
position_filled Boolean (optional - default: false) If the position is filled or not.
listing_expiry_date Date (optional) Formatted as YYYY-MM-DD. This determines when the listing expires.
location String (optional) Location of the job.
company_name String (optional) Name of the company hiring for the job.
company_tagline String (optional) The company's tagline.
company_video String (optional) A valid URL for the company's video.
featured_listing Boolean (optional - default: false) If the job listing is featured.
job_listing_type String (optional) The name for the job type. Reference Job Types above.
job_categories Array (optional) Takes in array of strings. These strings are then checked into the system, if a category with the name matches it will be added onto the post, else a new category will be created.

Add Jobs

To add jobs you ned to make a POST call to the following url:
https://www.theorymeetspraxis.com/wp-admin/admin-ajax.php

NOTE: Make sure to stringify the JSON data being sent. All post created for the moment are also assigned the Master Admin account with the User ID 1. Any posts updated will only be updated if they are owned by User ID 1.

QUERY PARAMETERS

Field Type Description
action String (required and not changeable) This field defines which API call you are trying to reach. The value for this field should always be "tmpja_add_jobs" without quotes.
posts Array (required) An array of post objects.

Search Jobs

To search jobs you ned to make a GET call to the following url with the parameters listed below:
https://www.theorymeetspraxis.com/wp-admin/admin-ajax.php?action=tmpja_search_jobs&url=yoururl

NOTE: This returns back all jobs within the system, including jobs not owned by User ID 1.


Sample Object Returned:

array(1) {
  [0]=>
  array(15) {
    ["post_title"]=>
    string(20) "Another Sample Title"
    ["post_content"]=>
    string(14) "Sample Content"
    ["source_url"]=>
    string(32) "https://anothersamplewebsite.com"
    ["application_url"]=>
    string(32) "https://anothersamplewebsite.com"
    ["company_website"]=>
    string(32) "https:/another/samplewebsite.com"
    ["company_twitter"]=>
    string(15) "@Smaple Company"
    ["position_filled"]=>
    string(1) "1"
    ["listing_expiry_date"]=>
    string(0) ""
    ["location"]=>
    string(15) "Sample Location"
    ["company_name"]=>
    string(12) "Company Name"
    ["company_tagline"]=>
    string(16) "Company Tag Line"
    ["company_video"]=>
    string(32) "https://anothersamplewebsite.com"
    ["featured_listing"]=>
    string(1) "0"
    ["job_requirements"]=>
    string(19) "Sample Requirements"
    ["job_listing_type"]=>
    string(9) "Freelance"
    ["job_categories"]=>
    array(2) {
      [0]=>
      string(14) "Administration"
      [1]=>
      string(4) "Arts"
    }
  }
}

                

PARAMETERS

Field Type Description
action String (required and not changeable) This field defines which API call you are trying to reach. The value for this field should always be "tmpja_search_jobs" without quotes.
url String (required) The full url of the application.