grnhse / greenhouse-api-docs Goto Github PK
View Code? Open in Web Editor NEWThis project forked from ringcentral/slate
Documentation for Greenhouse Software's APIs
Home Page: https://developers.greenhouse.io
License: Other
This project forked from ringcentral/slate
Documentation for Greenhouse Software's APIs
Home Page: https://developers.greenhouse.io
License: Other
How to authorize greenhouse harvest API's.
In the document, it is shown that to use Basic Auth with username and password. Are username and password are login credentials of https://app2.greenhouse.io/users/sign_in
Hi, it's awesome y'all are active on here! ๐
I'm just curious if OAuth2 support is on the roadmap for the Harvest API. My Greenhouse integration would be much easier to use if the end users could OAuth with their Greenhouse account... vs. having to dig through Dev Center settings to create and copy an API Key.
I know this kind of stuff can be difficult to migrate to, but I was just curious!
I am vendor providing assessments to greenhouse.
Everything works fine with the polling method. Recent fix from greenhouse asserts using the PATCH request to notify greenhouse when assessment is complete to initiate polling.
I am trying to send a request with the provided url during the 'send test' process with the authentication also used by greenhouse.
headers: Authorization: Basic base-64-encoded-api-key
I am receiving an error 403
what am I doing wrong?
Hi, guys.
I am developing endpoint for webhooks from your API. I encountered with incorrect signature header from you.
Ping request from you is generating correctly but job_post_created webhook contains incorrectly processed signature header.
Ping webhook
body:
{"action":"ping","payload":{"web_hook_id":4001693002,"endpoint_url":"https://67e09e60.ngrok.io/webhooks","created_at":"2018-12-20T15:43:12Z","updated_at":"2018-12-27T09:40:14Z","name":"Job Post Create","event":"Job Post Created","active":true,"content-type":"application/json"}}
secret:
1uSUju2H6AohOE7OQVaxeLT3O8Uxxuas
correctly processed signature on your and my side:
395b1309fd37f0732d1ed11c15e03edd61b818918df6bf93be7c71bafb09c877
But
job_post_created webhook
body:
{"action":"job_post_updated","payload":{"id":4150486002,"title":"Manager","location":"Kharkov","content":"<p>test description 1111222</p>","internal_content":null,"updated_at":"2018-12-27T15:11:42.169Z","job_id":4144893002,"external":true,"internal":false,"live":true,"questions":[{"required":false,"private":false,"label":"LinkedIn Profile","type":"input_text","values":[]},{"required":false,"private":false,"label":"Website","type":"input_text","values":[]},{"required":false,"private":false,"label":"How did you hear about this job?","type":"input_text","values":[]},{"required":false,"private":false,"label":"Custom question #1","type":"textarea","values":[]},{"required":false,"private":false,"label":"Custom question #2","type":"textarea","values":[]}]}}
secret the same:
1uSUju2H6AohOE7OQVaxeLT3O8Uxxuas
incorrect signature header from you is: a4872b8a7ac7f187e5a9df4626145db590d80fc5c34fa837548e1d16f5b3ce93
signature on my side is processing in the same way like for ping webhook: a78444fa49e22f36f903ab7f1eea4de06675d3679037d67b115b2bf7f44b0a25
According to your documentation signature should be computed as HMAC with secret. Different online tools show me that your computing is incorrect:
http://joxi.ru/DrlQ91WCV30p4m
You can check it by yourself here
Looking forward to receiving a help from you.
I am getting the following:
$ curl https://harvest.greenhouse.io/v1/prospects/ -u $API_KEY -X POST
{"message":"Resource not found"}
Is the documentation out of date? I expect an error, but not a 404.
I have checked my API key permissions and all are selected.
Hi, there a couple of features we'd like to see in the API like filtering/sorting of endpoints and the inclusion of the candidate availability.
Are there any plans to add these, is there a roadmap you could share?
In https://github.com/grnhse/greenhouse-api-docs/blob/master/source/includes/job-board/_applications.md
In general, we would encourage customers to make use of the Embedded Job Application before going to...
A link to documentation about this Embedded Job Application
feature would be most useful here.
Is there an endpoint to retrieve a candidate's responses to an availability request? Thanks!
How do I get the question id for application post?
For greenhouse generated fields, I'm able to use the standard parameters like so first_name, last_name, etc.
But how do i get a specific question id?
I'm using the API method
For example in the docs
<label>LinkedIn Profile <input type="text" name="question_5555" /></label>
I'm assuming I shouldnt be using question_5555?
{"message":"Invalid JSON Payload"}
400
Sometimes, when I try to make a call to Harvest API, I get a status code of 400 and the above error message. Does anyone know why?
If the stage of an application changes what webhook is called?
candidate_stage_change
or application_updated
?
I am calling:
https://api.greenhouse.io/v1/boards/<clientid>/departments
And I'm seeing jobs appear in the return result. The documentation doesn't seem to indicate that jobs should be in this response so I'm confused.
In the example response provided at https://developers.greenhouse.io/job-board.html#list-jobs there's no clear relationship between the location
specified for the job and the offices
specified for job. And it doesn't appear that offices
is simply a list of all offices associated with the employer, because I've found at least one example where the response to GET /v1/boards/<token>/offices
contains more offices than those listed in the response to GET /v1/boards/<token>/jobs
.
The documentation needs to be clarified. Specifically:
job['offices']
be interpreted?job['location']
and job['offices']
or are both sets of data totally free-form and at the whim of whoever posted the job?Getting this response
You are being redirected.Hi! I'm building a Greenhouse integration and want to allow Greenhouses users to navigate to a candidate page by clicking a link.
I'm using GET https://harvest.greenhouse.io/v1/candidates
and can get candidate.id
, but I can't figure out a way to construct the URL for the candidate page in the Greenhouse web UI. There's no candidate.url
like I'd expect.
Our Greenhouse instance uses the subdomain app2
, so candidate web URLs are
https://app2.greenhouse.io/people/123?application_id=456#jobs
.
Thanks for providing great docs on all the other fronts!
Slack uses Greenhouse platform and I want to apply Slack for intern.
The problem is my school is not registered to Greenhouse platform.
Can you add "TOBB University of Economics and Technology (etu.edu.tr)" to the global list.
Thanks.
Hi - I know this might be the right place to ask, but hoping for a quick answer :). Are there querystring parameters I can pass to https://developers.greenhouse.io/harvest.html#get-list-candidates to search for a candidate by their email address? Or is there a way I can use your handy https://app.greenhouse.io/people/search_bar api endpoint externally?
The use case is building a Greenhouse <-> Mixmax integration.
I'm extracting info from the GH Onboarding API.
I have the queries working to get
id
firstName
middleName
lastName
phoneNumber
email
personalEmail
How do I get the location and department for an employee? I can't find any examples.
What is the intended way for a client to get the ID of a school? I have tried the following curl request::
curl \
-u '$X' \
-H 'On-Behalf-Of: $ID' \
-v \
https://harvest.greenhouse.io/v1/schools?name=harvard
But that filter had no effect.
Right now it seems like I either need to 1) page through the results until I find a match, or 2) download these into a database and write some simple search engine around it, but both of these seem impractical.
Both educations
and employments
appear in the example request body, but do not appear in "JSON Body Parameters". Which is correct?
Hi,
Is there a webhook that can be used to get a notification about an interview that was just scheduled?
Seen in this screenshot, 3 tags "js3" "js3 " (one trailing space) and "js3 " (many trailing spaces). These tags are viewed as distinct tags by harvest api data, but the greenhouse ui strips trailing spaces and displays them as identical.
It seems like either the UI or the api is wrong here, but I am not sure which. Is there a justification for allowing "tag1" and "tag1 " to exist independently? If not ideally harvest api would view these as identical?
If this behavior is intended, is it possible to display trailing spaces in the ui? As of now it is impossible to tell exactly what string a tag actually is, and filters only work with exact strings.
Thanks!
I know this isn't the correct forum to ask this question, my apologies. I'm not sure where else to ask it.
I noticed that there's a rejected_at field which I assume is the time when the reject button/api is used. There's no hired_at timestamp field though. Is it possible for this field to be added?
Looking through the greenhouse.io developer documentation, I don't see any parameters for a search query on the job board.
Are there any solutions for searching jobs with the current API?
Hello,
I am working on some report based on the harvest api. One of the requirements is to do with interview outcome.
The question is - how can I determine the outcome of a specific interview?
I am asking because, looking into the scorecard object, I see that it contains candidate and application IDs as well as interview *name. I do not see interview id included in the result.
From what I see/understand working with the API:
Given that, I am not sure I can correlate the scoreboard object to specific scheduled interview.
Is there a way to do this correlation?
I need to change the candidate.recruiter property from the harvest api but right now it's not possible.
Thanks in advance
Just a heads up :)
Hello,
I am implementing an integration with the ingestion API for Consider Inc (https://developers.greenhouse.io/candidate-ingestion.html#authentication). Everything seems to be working OK, expect the oAuth deny code.
I expected my provided redirect_uri
to be hit with error code access_denied
. This is part of oAuth 2 spec you link from your documentation.
Instead, I am being redirected to /auth/harvest/callback?oauth_problem=user_refused
which seems a custom implementation by you.
Is this expected behavior? I didn't find any mention on your documentation as how to customize the return route.
Is that the username I use to log in? "greenhouse user ID" is not perfectly clear to me.
I am working on consolidating scorecards to a single score based on interviewers' responses to attributes and questions. There are a few areas that are unclear to me:
Some questions have been marked as mandatory on the portal by a recruiter but this mandatory nature of the questions is not reflected in the scorecards or job_stages or other related objects. How do I find out whether a question is mandatory or not?
Each question from a scorecard and interview has been assigned an ID. Where is more information about the question stored? Which data object does the ID map to?
Similarly, interviews and interview_kits have been assigned IDs but where exactly do I look for them?
I could not find information regarding this in your documentation. It would be great if you could provide any guidance in this matter.
It would be great to get the job_board included in a web hook so that the job details can then be retrieved.
For applications that I view in the UI I can see the notes
field populated under the rejection reason.
However when querying the application using v1/applications/{id}
I do not see a notes
field just a decline_notes
field which is always empty. How can I recover the notes for the application rejection?
When I export a note both on the UI and API, it inserts a <br>
tag in addition to wrapped text in a <p>
tag. This causes a newline sent in a note to insert two line breaks instead of one.
For example, the following input generates the following note:
Test
Test
This is annoying because it creates a lot of unnecessary whitespace in long notes.
Title. It only returns the defaults.
Is that intentional? I am working on an application where I would like to add a custom source to a candidate.
Hello,
There is a "per_page" query string parameter for GET: List EEOC
but no "page" parameter so if there are more than 500 lines, it is not possible to get all of them.
Is it intended ?
Thank you !
Hi - is there a way to get a count of how many candidates there are?
If not already available today, this could be implemented as a HEAD request against the https://developers.greenhouse.io/harvest.html#get-list-candidates endpoint
When using the GET: List Jobs
method you can specify to only return result updated before or after a timestamp. The objects returned do not have an attribute that corresponds to these parameters.
This makes validation and ordering by updating timestamp impossible.
Would it be possible to have an example curl request for applying to a job via the Job Board API? I keep running into:
{
"error": "Failed to save person",
"status": 401
}
Hi,
Which parameter can be used to fetch the next page? I tried page=2 and offset=2 but these didnt work.
The curl I am using:
curl -X GET
'https://harvest.greenhouse.io/v1/schools?page=2'
-H 'Accept: /'
-H 'Accept-Encoding: gzip, deflate'
-H 'Authorization: $$'
-H 'Cache-Control: no-cache'
-H 'Connection: keep-alive'
-H 'Host: harvest.greenhouse.io'
-H 'User-Agent: PostmanRuntime/7.17.1'
-H 'cache-control: no-cache'
When creating a new prospect I was expecting to be able to submit an Application object with a job_id
so that the prospect was mapped to specific jobs.
Right now this is not possible - it works when adding a candidate.
I did not originally realize there is a difference between a "Job" and a "Job Post", but it would certainly be helpful to trigger a webhook when a Job Post has been added or updated (ex job description changed).
I notice there is already one for Job Post Deleted, so these seem like they would be complimentary to that webhook.
Both locally and on a development server hosted on Netlify, I get a CORS rejection for a POST
request to https://developers.greenhouse.io/job-board.html#submit-an-application
. Is there a way to set the accepted URLs?
I see I can set this in the UI. Is it possible to set this from the API? I see it as a querystring parameter, but don't see any other mentions of it.
If it's not possible, can it be added?
Heya Greenhouse devs,
I'm working on some tooling to automate the interview scheduling process for our recruiter team, and I was specifically looking for an API for creating interviews for an application and adding interviewers to the interviews. Assuming I didn't miss those and they don't exist, are they on the roadmap?
Thanks so much,
Corin @ Braintree
I'm not seeing a way to determine all the stages a candidate entered and exited, and the date/time for each - but Greenhouse displays this info. Is there an undocumented method for this?
The introduction should explain how to get an API key (or link to the corresponding documentation). I am quite lost looking at the beginning of the introduction.
Also, because i was logged into greenhouse while reading the doc, i first expected to be able to copy-paste the example curl https://harvest.greenhouse.io/v1/candidates/ -u a7183e1b7e9ab09b8a5cfa87d1934c3c:
but now found that this is just a hardcoded example. There should be some comment in the example that i need to replace this with my API key. Or do curl https://harvest.greenhouse.io/v1/candidates/ -u [your api key]:
to make it more clear...
I see a field "photo_url": null
in the candidate response. Is there a way to set this? If not, can it be added?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.