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. |