rise8-us / schedul8r

4 stars 2 forks source link

Greenhouse integration #41

Open jwills-r8 opened 10 months ago

jwills-r8 commented 10 months ago

As a Hiring user.
I want neverl8 to update the greenhouse calendar with the scheduled interview.
So that Greenhouse mails out the automated individualized scorecard link to the assessor.

Acceptance criteria

  1. interview shows on the bot hiring calendar
  2. greenhouse sends a scorecard to the assessor when an interview is booked
jwills-r8 commented 9 months ago

Greenhouse API
Create Scheduled Interview.
Application User/Employee

application_id Yes integer The id of the application for which we will scheduled an interview.
interview_id Yes integer The id of the interview we’d like to schedule. This id can be found in the job stage object. It refers to an interview type (e.g. “Executive Interview” or “On-site Interview”) that is associated with a hiring plan’s interview step. This differs from a “Scheduled Interview” which refers to an instantiated interview that is associated with an application, interviewers, start time, etc.
interviewers[] Yes interviewer Array of interviewers. Each must specify a user by user_id, email, or employee_id. Each must include a response status (one of needs_action, declined, tentative, or accepted).
start Yes string A datetime specifying when the interview starts. Must be provided in ISO-8601 format (e.g. 2018-11-05T13:12:14Z).
end Yes string A datetime specifying when the interview ends. Must be provided in ISO-8601 format (e.g. 2018-11-05T13:12:14Z).
external_event_id Yes string A unique identifer for this interview.
location No string A textual description of the location of the interview.
{
    "application_id": 102717462,
    "interview_id": 8055374,
    "interviewers": [
        { "user_id": 102361, "response_status": "accepted" },
        { "email": "lucius.barbarossa.46444@example.com", "response_status": "declined" }
    ],
    "start": "2018-12-12T13:15:00Z",
    "end": "2018-12-12T14:15:00Z",
    "external_event_id": "external_event_id_1",
    "location": "Big Conference Room"
}
jwills-r8 commented 9 months ago

Interview Stages

[
    {
        "id": 4380850007,
        "name": "Phone Interview",
        "created_at": "2023-09-05T20:23:24.164Z",
        "updated_at": "2023-09-05T20:23:59.538Z",
        "active": false,
        "job_id": 4055119007,
        "priority": 2,
        "interviews": []
    },
    {
        "id": 4380852007,
        "name": "Preliminary Phone Screen",
        "created_at": "2023-09-05T20:23:55.642Z",
        "updated_at": "2023-09-05T20:23:59.561Z",
        "active": true,
        "job_id": 4055119007,
        "priority": 2,
        "interviews": [
            {
                "id": 4452949007,
                "name": "Preliminary Screening Call",
                "schedulable": true,
                "interview_kit": {
                    "id": 4452949007,
                    "content": null,
                    "questions": []
                },
                "estimated_minutes": 20,
                "default_interviewer_users": []
            }
        ]
    },
    {
        "id": 4380852007,
        "name": "Preliminary Phone Screen",
        "created_at": "2023-09-05T20:23:55.642Z",
        "updated_at": "2023-09-05T20:23:59.561Z",
        "active": true,
        "job_id": 4055119007,
        "priority": 2,
        "interviews": [
            {
                "id": 4452949007,
                "name": "Preliminary Screening Call",
                "schedulable": true,
                "interview_kit": {
                    "id": 4452949007,
                    "content": null,
                    "questions": []
                },
                "estimated_minutes": 20,
                "default_interviewer_users": []
            }
        ]
    },
    {
        "id": 4380857007,
        "name": "Skills Assessment Interview",
        "created_at": "2023-09-05T20:24:55.193Z",
        "updated_at": "2023-09-05T20:24:55.193Z",
        "active": true,
        "job_id": 4055119007,
        "priority": 4,
        "interviews": [
            {
                "id": 4452953007,
                "name": "Skills Assessment Interview",
                "schedulable": true,
                "interview_kit": {
                    "id": 4452953007,
                    "content": null,
                    "questions": []
                },
                "estimated_minutes": 60,
                "default_interviewer_users": []
            }
        ]
    },
    {
        "id": 4380856007,
        "name": "Culture Interview",
        "created_at": "2023-09-05T20:24:55.168Z",
        "updated_at": "2023-09-05T20:24:55.168Z",
        "active": true,
        "job_id": 4055119007,
        "priority": 3,
        "interviews": [
            {
                "id": 4452952007,
                "name": "Cultural Add Interview",
                "schedulable": true,
                "interview_kit": {
                    "id": 4452952007,
                    "content": "<h5>Purpose</h5>\n<ul>\n<li><span style=\"font-size: 13px;\">Determine whether or not the candidate would be a strong addition to the organization</span></li>\n<li><span style=\"font-size: 13px;\">Do they live by your company values? [Insert Company Values Here]</span></li>\n</ul>\n<h5>Sample Questions</h5>\n<ul>\n<li><span style=\"font-size: 13px;\">Ask the candidate for specific examples of times when they demonstrated your company values, e.g., &ldquo;Tell me about a time when you took ownership of a project from start to finish&rdquo;</span></li>\n<li><span style=\"font-size: 13px;\">Ask about their motivations in their work - what excites them, what worries them, how do they work best, etc.</span></li>\n<li><span style=\"font-size: 13px;\">Let the candidate know what they should expect next in your process</span></li>\n</ul>",
                    "questions": []
                },
                "estimated_minutes": 30,
                "default_interviewer_users": [
                    {
                        "id": 4097150007,
                        "first_name": "Alex",
                        "last_name": "Berner",
                        "name": "Alex Berner",
                        "employee_id": null
                    },
                    {
                        "id": 4088232007,
                        "first_name": "Nate",
                        "last_name": "Lotts",
                        "name": "Nate Lotts",
                        "employee_id": null
                    },
                    {
                        "id": 4086466007,
                        "first_name": "Carlo",
                        "last_name": "Viray",
                        "name": "Carlo Viray",
                        "employee_id": null
                    },
                    {
                        "id": 4097153007,
                        "first_name": "Jessica",
                        "last_name": "Yu",
                        "name": "Jessica Yu",
                        "employee_id": null
                    }
                ]
            }
        ]
    },
]