Introduction
188bet安卓APP温室integrates with many candidate testing platforms, including code testing, video interviewing, personality testing, and more. We’ve created the Assessment Partner API to allow our customers to seemlessly integrate our Partners’ assessments into their Greenhouse interview workflow. This document outlines the end-user experience with the integration and the technical details of how to implement it.
Working with Greenhouse to implement the integration
To begin the integration process, please send the following information to us at partners@greenhouse.io:
- URL for your
list_tests
API电话 - URL for your
send_test
API电话 - URL for your
test_status
API电话 - A sample API key
这Partnerships team will configure endpoint URLs for creating assessment stages and provide next steps on receiving access to a Sandbox account to test the integration. If you are building an integration for use by mutual customers, we will need documentation on the integration for the Greenhouse Help Center.
工作流程
评估合作伙伴将为客户提供组织级API密钥。该组织将向其温室客户经理提供此API密钥,后者将其输入我们的系统。188bet安卓APP
Selecting the Test
温室进入该188bet安卓APP组织的API密钥后,将可以使用一个新的合作伙伴面试阶段。用户可以将此阶段添加到任何可以访问新评估合作伙伴阶段的工作的招聘计划。188bet安卓APP然后,温室将对列表测试端点to determine what tests the organization has configured.
Sending the Test
When a candidate reaches this Interview Stage, the user will click the “Send Test” button to send the test to the candidate via the发送测试端点。188bet安卓APP温室will send the Test ID and candidate email to the Assessment Partner, who will email the test to the candidate. The Assessment Partner will then send Greenhouse the ID for this unique test instance.
Receiving the Test Results
188bet安卓APP温室will periodically poll the测试状态端点检索候选人的测试状态和结果。候选人完成测试后,Greenhouse将通知适当的用户测试已完成。188bet安卓APP用户将能够查看候选人的分数,导航到合作伙伴站点以查看更多详细信息,并在Greenhouse内做出预先或拒绝决定。188bet安卓APP用户还将能够通过得分并提高或拒绝批量候选人来过滤候选人。
另外,Greenhouse的评188bet安卓APP估API现在包括通过The Completed Note的测试通知温室的能力PATCH - Mark Test as Completed端点to avoid long polling!
Authentication
Greenhouse发送给评188bet安卓APP估合作伙伴API的每个请求都将通过HTTPS利用HTTP基本身份验证。因此,我们要求每个API端点使用HTTPS。
When an organization decides to utilize a Assessment Partner’s integration, they will provide their Greenhouse Account Manager with their API key for that Assessment Partner.
188bet安卓APP温室will then make all requests for the organization using that API key as the username in Basic Authentication. Greenhouse will append a : (colon) to the API token and then Base64 encode the resulting string.
Upon receiving a request, the Assessment Partner should inspect the API key to determine whether the request should be permitted and which data should be returned.
Example Situation
- Assessment Partner A假如客户1with an API key.
- 客户1向温室提供了此钥匙。188bet安卓APP
Assessment Partner A假如the following URL for its
list_tests
端点:https://www.testing-partner-a.com/api/list_tests
188bet安卓APP温室将提出以下请求以检索可用测试列表:
GET https://www.testing-partner-a.com/api/list_testsAuthorization: Basic < base-64-encoded-credentials >
一般考虑
Unless otherwise specified, API methods generally conform to the following:
- 没有价值的属性将使用
null
instead of being undefined - “Snake Case” is used for attribute names (e.g.
first_name
) - We reserve the right to add more properties to objects, but will never change or remove them
Assessment API Change Log
这timestamps below are Eastern Time.
Date | Description |
2019年8月21日下午2:00:00 | Added Change Log and General Consideration sections to the Assessment API documentation |
2019年8月21日下午2:00:00 | AddedPATCH - Mark Test as Completed端点 |
List Tests
188bet安卓APP温室will first need to retrieve the list of tests from the Assessment Partner using thelist_tests
API端点。我们将向用户展示可用测试的列表,他们将为给定的候选人选择适当的测试。
获取https://www.testing-partner.com/api/list_tests
卷曲'https://www.testing-partner.com/api/list_tests'-H“授权:基本MGQWMZFKODIYN2VHZME2MWRJMZC1YTZJMMUWNJDLMJQ6”
Request
188bet安卓APP温室will make a GET request to thelist_tests
评估合作伙伴指定的端点。
Response
API Response
[[{“合作伙伴_test_id”:"12345",,,,"partner_test_name":“我的第一个测试”},,,,{“合作伙伴_test_id”:"54321",,,,"partner_test_name":"My Second Test"}这是给予的
这Assessment Partner’s response should include a JSON payload containing a list of test objects for the organization. Each test object should contain the keyspartner_test_id
andpartner_test_name。
属性名称 | Type | Required | Description |
partner_test_id | 细绳 | 是的 | 确定组织可用的测试。 |
partner_test_name | 细绳 | 是的 | 测试的描述性标题。我们将使用此值UI作为测试标签。 |
Send Test
When a Greenhouse user sends a test to a candidate, Greenhouse will send a request to the Assessment Partner’ssend_test
API端点。这Assessment Partner will then email the specified candidate the specified test.
Request
卷曲-X POST'https://www.testing-partner.com/api/send_test'-H“授权:基本MGQWMZFKODIYN2VHZME2MWRJMZC1YTZJMMUWNJDLMJQ6”
{“合作伙伴_test_id”:"12345",,,,"candidate":{"first_name":“哈利”,,,,"last_name":“波特”,,,,"resume_url":“ https://hogwarts.com/resume”,,,,“电话号码”:"123-456-7890",,,,"email":“ hpotter@hogwarts.edu”,,,,“188bet安卓APP greenhouse_profile_url”:“ https://app188bet安卓APP.greenhouse.io/people/17681532?application_id = 26234709”},,,,"url":"https://app.greenhouse.io/integrations/testing_partners/take_home_tests/12345"}
188bet安卓APP温室will initiate the process by sending a POST request to thesend_test
评估合作伙伴指定的端点。这body of the POST request will contain a JSON payload.
属性名称 | Type | Required | Description |
partner_test_id | 细绳 | 是的 | 确定组织可用的测试。最初作为对List Tests request。 |
first_name | 细绳 | 是的 | 这first name of the candidate. |
last_name | 细绳 | 是的 | 这last name of the candidate. |
简历_url | 细绳 | No | 候选人简历的URL。该网址将在请求后30天到期。 |
电话号码 | 细绳 | No | 候选人的电话号码。 |
电子邮件 | 细绳 | 是的 | 候选人的电子邮件地址。测试应发送到此地址。 |
188bet安卓APPGreenhouse_profile_url | 细绳 | 是的 | URL to the candidate’s Greenhouse application. Allows the partner to link back to Greenhouse. |
url | 细绳 | 是的 | URL to which to send thePATCH Completed Testrequest, if using |
Response
这API Response
{"partner_interview_id":"98765"}
这response to thesend_test
request should contain a JSON payload in its body. This payload should be a single object that contains a single key:partner_interview_id
。
属性名称 | Type | Required | Description |
partner_interview_id | 细绳 | 是的 | Identifies a candidate’s test. |
PATCH - Mark Test as Completed
当候选人完成一个测试,把这request to the URL sent in the initial Send Test request to signal Greenhouse that the test has been completed. Upon this, Greenhouse will send a request to your Test Status endpoint.
PATCH https://app.greenhouse.io/integrations/testing_partners/take_home_tests/12345
Request
卷曲-x补丁'https://app.greenhouse.io/integrations/testing_partners/take_home_tests/12345'-H“授权:基本MGQWMZFKODIYN2VHZME2MWRJMZC1YTZJMMUWNJDLMJQ6”
此请求无需参数。
Response
这response will return only the HTTP status code.
向温室发送更新188bet安卓APP
If you have implemented the polling option:
After a successfulsend_test
request, Greenhouse will check whether the test instance has been completed by polling thetest_status
端点hourly. We will discontinue polling thetest_status
端点after we receive apartner_status
ofcomplete
,,,,or after 8 weeks has passed since the test was sent.
如果您已经实现了补丁完成的测试选项:
After a successfulsend_test
request, you can alert Greenhouse to updates of the test’s status by sending aPATCH Completed Testrequest to the URL found in theurl
field of thesend_test
要求。这将触发测试状态温室的要求。188bet安卓APP
测试状态
Tells Greenhouse the current status of a take home test.
GET https://www.testing-partner.com/api/test_status?partner_interview_id=12345
Request
卷曲'https://www.testing-partner.com/api/test_status?partner_interview_id=12345'-H“授权:基本MGQWMZFKODIYN2VHZME2MWRJMZC1YTZJMMUWNJDLMJQ6”
188bet安卓APP温室will send aGET
request to thetest_status
评估合作伙伴提供的终点。这GET
request will contain a single query string parameter:partner_interview_id
。
参数名称 | Type | Required | Description |
partner_interview_id | 细绳 | 是的 | Identifies a test instance for a candidate. Initially provided as a response to the发送测试请求。 |
Response
API Response
{"partner_status":“完全的”,,,,"partner_profile_url":"http://example.com/tests/12345",,,,"partner_score":81,,,,“元数据”:{"Started At":“ 2014年3月26日上午10:15”,,,,"Completed At":“ 2014年3月26日上午10:15”,,,,“笔记”:“这位候选人做得非常好!”}}
对test_status
request should contain a JSON object in its body with up to four keys:partner_status
,,,,partner_profile_url
,,,,partner_score
,,,,and元数据
。
属性名称 | Type | Required | Description |
partner_status | 细绳 | 是的 | Describes the current state of the test instance. If the test has been completed and results are available, this value should be“complete”.我们将继续进行调查,直到状态“完整”,或者自从发送测试以来8周之前。 |
partner_profile_url | 细绳 | 仅当状态为complete。 | URL to the candidate’s page on the Test Partner’s website. |
partner_score | Number | No | 数值得分反映了候选人在测试中的表现。 |
元数据 | Object | No | A non-nested object containing keys and values that will be displayed in our test results. All of the values must be Javascript primitives. |
Response Error
When Greenhouse receives a malformed response for any of Assessment Partner’s API endpoints, we would like to report the errors to the Assessment Partner. As such, each Assessment Partner should provide an API endpoint to ingest this information.
发布https://www.testing-partner.com/api/request_errors
Request
卷曲-X POST'https://www.testing-partner.com/api/request_errors'-H“授权:基本MGQWMZFKODIYN2VHZME2MWRJMZC1YTZJMMUWNJDLMJQ6”
{"api_call":"test_status",,,,“错误”:[["partner_status is 'complete' but partner_profile url is missing"这是给予的,,,,“合作伙伴_test_id”:"12345",,,,"partner_test_name":"Personality Test",,,,"partner_interview_id":“ 299506”,,,,“ cantifate_email”:“ hpotter@hogwarts.edu”}
收到畸形的响应后,Greenhouse将为评估合作伙伴提供失败响应的详细信息188bet安卓APP。每当无效的响应到达时,温室都会向188bet安卓APPresponse_error
API端点。
该请求的主体将包含与Greenhouse失败时一样多的信息。188bet安卓APP
For example, if alist_tests
请求失败,温室只能提供API调188bet安卓APP用(在这种情况下为“ list_tests”)和各种错误(缺少键,意外数据类型等)。但是,如果一个test_status
请求失败,我们可以提供更多信息(panter_test_id,partner_interview_id等),这些信息可能对调试目的有用。评估合作伙伴总是可以期望收到API_CALL
anderrors
in the JSON body.
属性名称 | Value | Required | Description |
API_CALL | 细绳 | 是的 | 生成畸形响应的API调用名称。 |
errors | Array | 是的 | 一系列字符串,描述了阻止响应验证的错误。 |
partner_test_id | 细绳 | No | 确定组织可用的测试。最初作为对List Tests request。 |
partner_test_name | 细绳 | No | A human-readable string that identifies the test. Initially provided as a response to theList Tests request。 |
partner_interview_id | 细绳 | No | Identifies a candidate’s test. |
cantifate_email | 细绳 | No | 候选人的电子邮件地址。测试应发送到此地址。 |
Response
API Response
{"status":200}
对成功的反应response_errors
请求应包含200个响应代码。
Errors
成功的请求应生成具有200级状态代码的响应。不成功的请求应与以下答复之一产生响应:
Status Code | Description |
401 | 提供的API密钥未成功的身份验证。 |
404 | 这requested resource could not be found. |