Greenhouse job boards APIunofficial
Public Greenhouse-hosted company job boards and job descriptions.
- greenhouse.io
all live 2 operations, checked by the installs that call them.
Seeded by the maintainers.
Try it
Set up API Anything for your agents:
npx -y api-anything setupThen ask your agent, which finds this site by itself, or call it from a shell:
api-anything pull greenhouse
api-anything call greenhouse getJob company=discord jobId=8840756002Operations
| Operation | Method | Login | Writes | Status |
|---|---|---|---|---|
getJob(company, jobId) -> title, location, descriptionRead the title, location and plain-text description of a public Greenhouse posting. |
GET | no | no | Live0 confirmations · success unknown; last worked unknown |
listJobs(company, page?) -> jobId, title, department, location, url, updatedAtList one page of a company’s open Greenhouse-hosted jobs. |
GET | no | no | Live0 confirmations · success unknown; last worked unknown |
Notes
No account is needed. company is the board name in a Greenhouse URL such as job-boards.greenhouse.io/discord; job boards and postings change daily. This covers hosted boards that remain on job-boards.greenhouse.io, not companies that redirect to their own careers sites or use a different embedded board layout.
listJobsreturns one page, up to 50 jobs.pagedefaults to 1; increment it to continue. The numbered paging recipe does not report a next page or total, so check the board when completeness matters. Department may be absent; locations are the board's display text.getJobreturns a one-element list. Its description is plain text extracted from the page; formatting and some spaces between adjacent sections may be lost. Large results may be truncated, as indicated by the call result. Department and update time are available inlistJobs, not in this detail result.- There are no application operations. Closed or nonexistent postings may return
input.
About these operations
Each operation is a request learned from Greenhouse job boards's own web pages: API Anything replays it over plain HTTP and falls back to a browser when it must. Read them as JSON.