{
  "data": {
    "a": {
      "slug": "bullhorn",
      "name": "Bullhorn",
      "vendor": "Bullhorn, Inc.",
      "vendorUrl": "https://www.bullhorn.com",
      "kind": "http-api",
      "category": "recruiting",
      "summary": "Applicant tracking and CRM software for staffing and recruitment agencies from Bullhorn, Inc. in Boston. Its REST API reads and writes candidates, job orders, submissions, placements and notes with OAuth 2.0, under credentials Bullhorn issues to customers and contracted partners.",
      "url": "https://www.anchorterminal.com/tools/bullhorn",
      "markdownUrl": "https://www.anchorterminal.com/tools/bullhorn.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/bullhorn.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/bullhorn.json",
      "repo": "https://github.com/bullhorn/rest-api-docs",
      "license": "Proprietary service under a Bullhorn customer or partner agreement that is not published, with a public API Fair Use Policy. The `sdk-rest` Java library and the `@bullhorn/taurus` and `@bullhorn/bullhorn-types` packages are MIT per npm and the repositories",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://rest.bullhornstaffing.com/rest-services",
      "packages": [
        {
          "registry": "npm",
          "name": "@bullhorn/taurus"
        },
        {
          "registry": "npm",
          "name": "@bullhorn/bullhorn-types"
        }
      ],
      "auth": "oauth",
      "authNotes": "Access is granted by Bullhorn, not self-serve. A customer asks for OAuth keys (client ID, client secret, redirect URI) through a support ticket. A vendor building for customers must sign the API Access Agreement, pay an annual platform fee and pass a security assessment before getting a sandbox. The flow is the OAuth 2.0 authorisation code grant at `auth-{dc}.bullhornstaffing.com`, a ten-minute access token and a rotating refresh token, then `POST /rest-services/login` for a `BhRestToken` session sent as a header, cookie or query parameter. No scopes were found. The API Fair Use Policy requires Bullhorn's explicit written permission before the API is connected to third-party AI or LLM tools or MCP.",
      "pricing": "paid",
      "pricingNotes": "Bullhorn Starter is $99 and Bullhorn Core $165 per user per month, and Pro, Max and the plans for larger agencies are quoted. No free trial. API access for integrators is an annual platform fee, not published, covering a sandbox and 200,000 calls a month with overage charges. No sandbox or free tier lets an agent start without a contract (checked 2026-10-08).",
      "priceSummary": "$99 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the REST API reference, the getting started guide, the API Fair Use Policy or the pricing pages (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 13,
        "npmWeekly": 1728,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://bullhorn.github.io/rest-api-docs/",
      "capabilities": [
        "recruiting.candidates",
        "recruiting.jobs",
        "recruiting.applications",
        "recruiting.interviews"
      ],
      "tags": [
        "hosted",
        "enterprise",
        "oauth",
        "staffing",
        "java",
        "typescript",
        "partner-approval",
        "sales-led",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-09-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 46.7,
        "grade": "D",
        "agentReady": false,
        "rank": 644,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 64,
          "maintenance": 56,
          "payments": 5,
          "reliability": 53,
          "schema": 55,
          "security": 31,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The REST API covers 91 documented entities with required field selection, Lucene and JPQL queries and an event queue. Access is by support ticket or a paid partner contract, and the API Fair Use Policy bars connecting third-party AI or LLM tools or MCP without Bullhorn's written permission. No OpenAPI file or numeric rate limit was found.",
        "bestFor": "An integration built for a staffing agency that already runs on Bullhorn, with Bullhorn's permission for AI use in writing, and needs candidates, job orders, submissions and placements.",
        "strengths": [
          "Every read names its `fields`, with nested associations and per-association counts, so responses can be kept small",
          "`/search` takes Lucene queries and `/query` takes JPQL where clauses, with `start` and `count` paging up to 500 records",
          "91 entity reference pages give field names, types and lengths, and `/meta/{entityType}` returns the same model at run time",
          "Java `sdk-rest` 3.0.0 was tagged on 29 September 2026 and `@bullhorn/bullhorn-types` 1.142.0 was published on 28 September 2026",
          "Sub-processor list dated 25 August 2026 names each provider, its location and the Bullhorn services it covers"
        ],
        "weaknesses": [
          "The API Fair Use Policy of 17 December 2025 bars connecting third-party AI or LLM tools, or MCP, without Bullhorn's explicit written permission",
          "Credentials come from a support ticket for customers or a paid annual partner contract with a security assessment. No self-serve key, trial or free sandbox",
          "The documented flow puts the username, password, client secret, access token and `BhRestToken` in URL query strings",
          "No OpenAPI file, no OAuth scopes, no idempotency keys and no numeric rate limit were found in the reviewed documentation",
          "The status page listed 50 incidents from 12 July to 7 October 2026, seven marked major and two critical, with no API component"
        ],
        "agentNotes": [
          "Confirm the customer holds Bullhorn's written permission for AI or LLM access before any call. The API Fair Use Policy forbids it otherwise",
          "Call `/rest-services/loginInfo?username=` first to learn the data centre, then use the returned OAuth and REST URLs and follow any 307 redirect",
          "Log in once and reuse `BhRestToken` until a call returns 401, then use the refresh token. Bullhorn limits login rates and may block frequent logins",
          "Send `BhRestToken` as a header, never in the URL, and always pass `fields`. `fields=*` is blocked outside `/meta`",
          "On 429 wait one second and retry. Writes have no idempotency key, so read the record back before repeating a PUT"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 46.7
          }
        ],
        "editorialScores": {
          "ergonomics": 64,
          "maintenance": 56,
          "payments": 5,
          "reliability": 53,
          "schema": 55,
          "security": 31,
          "transparency": 51
        },
        "provenanceScore": 82
      },
      "connect": {
        "http": "curl \"https://rest.bullhornstaffing.com/rest-services/loginInfo?username={API_Username}\""
      },
      "letme": {
        "capability": "https://letme.dev/recruiting.candidates",
        "tool": "https://letme.dev/bullhorn"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Bullhorn Starter, per user",
          "unit": "seat-month",
          "usd": 99,
          "note": "Small agency plan. API keys are issued separately by Bullhorn"
        },
        {
          "item": "Bullhorn Core, per user",
          "unit": "seat-month",
          "usd": 165,
          "note": "Small agency plan with the app marketplace"
        }
      ],
      "provenance": {
        "legalEntity": "Bullhorn, Inc.",
        "domain": "bullhorn.com",
        "domainRegistered": "1997-07-31",
        "endpointOnVendorDomain": true,
        "terms": "https://bullhorn.github.io/api-fair-use-policy/",
        "privacy": "https://www.bullhorn.com/privacy/",
        "statusPage": "https://status.bullhorn.com",
        "changelog": "https://bullhorn.github.io/rest-api-docs/changelog.html",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms link is the API Fair Use Policy, dated December 17, 2025, which governs use of Bullhorn's APIs and supplements the customer or partner agreement. The Master Subscription Agreement and the API Access Agreement are not published. www.bullhorn.com/legal is a website terms page and www.bullhorn.com/legal-terms links only to product supplements.",
          "The privacy policy, effective 20 May 2026, names Bullhorn, Inc. and its group companies and says it applies to the service platform at www.bullhornstaffing.com as well as the website.",
          "The API answers at rest.bullhornstaffing.com and auth-{dc}.bullhornstaffing.com. RDAP gives bullhornstaffing.com a registration date of 2000-12-11 and bullhorn.com 1997-07-31. The developer docs are on bullhorn.github.io, linked from www.bullhorn.com/llms.txt.",
          "https://www.bullhorn.com/.well-known/security.txt redirects to the home page, so no security.txt was found.",
          "The site footer and the developer site give the address 100 Summer Street, 17th Floor, Boston, MA 02210."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/bullhorn.json",
      "live": {
        "slug": "bullhorn",
        "probe": {
          "target": "https://rest.bullhornstaffing.com/rest-services",
          "method": "get",
          "lastAt": "2026-10-08T21:53:18.619529904Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 38,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 47,
          "p95ms24h": 86,
          "samples24h": 28,
          "samples30d": 28,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 28,
              "ok": 28
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.bullhorn.com",
          "indicator": "maintenance",
          "summary": "Service Under Maintenance",
          "checkedAt": "2026-10-08T21:57:44.368817755Z"
        },
        "updatedAt": "2026-10-08T21:57:44.368817755Z"
      }
    },
    "answer": "Greenhouse scores 64.8 (B) on agent readiness against Bullhorn's 46.7 (D), and leads in 5 of 7 scored categories. Bullhorn leads on payments \u0026 pricing.",
    "b": {
      "slug": "greenhouse",
      "name": "Greenhouse",
      "vendor": "Greenhouse Software, Inc.",
      "vendorUrl": "https://www.greenhouse.com",
      "kind": "http-api",
      "category": "recruiting",
      "summary": "Applicant tracking system from Greenhouse Software in New York. The Harvest v3 REST API reads and writes jobs, candidates, applications, interviews, scorecards and offer records, and a hosted MCP server in open beta exposes a subset of it.",
      "url": "https://www.anchorterminal.com/tools/greenhouse",
      "markdownUrl": "https://www.anchorterminal.com/tools/greenhouse.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/greenhouse.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/greenhouse.json",
      "repo": "https://github.com/grnhse/greenhouse-api-docs",
      "license": "Proprietary service under Greenhouse's Master Subscription Agreement. The docs repository for the older APIs on GitHub is Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://harvest.greenhouse.io/v3",
      "packages": [],
      "auth": "oauth",
      "authNotes": "Access is granted inside a paying customer's account. For a customer's own integration, a user with the developer permission creates Harvest V3 (OAuth) credentials under API Credentials, picks scopes, and exchanges the client ID and secret at https://auth.greenhouse.io/token for a Bearer token. An optional `sub` names the Greenhouse user the token works for, and all list endpoints need a Site Admin. Partners use the OAuth 2.0 authorisation code grant after signing a partnership agreement, with credentials and scope changes issued by partner support. The MCP server uses OAuth 2.0 with PKCE and dynamic client registration, per user.",
      "pricing": "paid",
      "pricingNotes": "No public prices. greenhouse.com/pricing names three tiers (Core, Plus and Pro) and says pricing is customised to hiring needs, through a demo or sales contact. No free tier or trial was found. A sandbox is a Pro-tier feature, so an agent can't start without a customer contract. The MCP article says access and pricing for the beta come from the account team, and the Audit Log API is a paid add-on (checked 2026-10-07).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Harvest v3 docs, the MCP articles or the pricing page (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://harvestdocs.greenhouse.io",
      "llmsTxt": "https://harvestdocs.greenhouse.io/llms.txt",
      "capabilities": [
        "recruiting.candidates",
        "recruiting.jobs",
        "recruiting.applications",
        "recruiting.interviews",
        "recruiting.offer-letters"
      ],
      "tags": [
        "hosted",
        "enterprise",
        "oauth",
        "mcp",
        "openapi",
        "llms-txt",
        "webhooks",
        "sales-led",
        "status-page",
        "bug-bounty",
        "soc2"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.8,
        "grade": "B",
        "agentReady": false,
        "rank": 271,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 65,
          "payments": 0,
          "reliability": 71,
          "schema": 79,
          "security": 85,
          "transparency": 79
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-07"
        },
        "negative": 0,
        "verdict": "Harvest v3 pairs per-endpoint OAuth scopes with Markdown docs that embed an OpenAPI 3.1 definition for each call, and the beta MCP server blocks every DELETE. Access needs a paying customer account, with no public price, trial or self-serve sandbox, and no numeric rate limit or idempotency key was found in the reviewed documentation.",
        "bestFor": "An agent working inside a company that already runs hiring on Greenhouse and needs to read pipelines, move applications, schedule interviews or draft offer records under scoped OAuth.",
        "strengths": [
          "OAuth 2.0 with per-endpoint scopes such as `harvest:applications:move`, and secret rotation that keeps the old secret for up to a week",
          "Every Harvest v3 reference page has a Markdown twin with an OpenAPI 3.1 definition, indexed by llms.txt",
          "The MCP server blocks every DELETE endpoint and asks for human confirmation on five actions, including reject, hire and merge",
          "Cursor pagination with `per_page` up to 500 and `created_at` or `updated_at` filters on list endpoints",
          "Audit Log API records `harvest_access`, `mcp_access` and `mcp_tool_call` events with the OAuth client and user"
        ],
        "weaknesses": [
          "No public price, free tier or trial. Pricing is customised through sales, and the sandbox is a Pro-tier feature",
          "The v3 rate limit is a 30-second window with no published number. The limit arrives in `X-RateLimit-Limit`",
          "No idempotency keys found, and reference pages list 401, 403 and 422 without error body examples",
          "All list endpoints need a Site Admin as the authorising user, per the authentication guide",
          "No official SDKs found, and the MCP server is in open beta and absent from the official MCP registry"
        ],
        "agentNotes": [
          "Request a token from https://auth.greenhouse.io/token with client credentials, then send it as a Bearer token to https://harvest.greenhouse.io/v3. Tokens expire, so repeat on 401",
          "Put filters and `per_page` on the first list request only. A `cursor` must be the only query parameter, or the call returns 422",
          "Send the current stage as `from_stage_id` when moving an application. It guards against stale moves. Other writes have no idempotency key, so check before retrying",
          "Read `X-RateLimit-Remaining` on every response and wait for `Retry-After` on 429. The window is 30 seconds",
          "Expect empty list results or 403 unless the token's user is a Site Admin with the needed permissions"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.8
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 65,
          "payments": 0,
          "reliability": 71,
          "schema": 79,
          "security": 85,
          "transparency": 67
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl --location 'https://harvest.greenhouse.io/v3/job_posts' \\\n  --header 'Authorization: Bearer \u003c\u003cACCESS_TOKEN\u003e\u003e'",
        "claudeCode": "claude mcp add greenhouse --transport http https://mcp.us.greenhouse.io/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/recruiting.candidates",
        "tool": "https://letme.dev/greenhouse"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Greenhouse Software, Inc.",
        "domain": "greenhouse.com",
        "domainRegistered": "1997-07-30",
        "endpointOnVendorDomain": true,
        "terms": "https://www.greenhouse.com/master-subscription-agreement",
        "privacy": "https://www.greenhouse.com/privacy-policy",
        "statusPage": "https://status.greenhouse.io",
        "changelog": "https://harvestdocs.greenhouse.io/changelog",
        "securityTxt": "expired",
        "checked": "2026-10-07",
        "notes": [
          "The Master Subscription Agreement, last updated 1 February 2026, names Greenhouse Software, Inc. and is governed by New York law.",
          "The API answers at harvest.greenhouse.io, token requests at auth.greenhouse.io and the MCP server at mcp.greenhouse.io. Docs and status also sit on greenhouse.io, which the vendor's pages link to. We did not look up the registration of greenhouse.io.",
          "https://www.greenhouse.com/.well-known/security.txt lists security@greenhouse.io and a HackerOne policy link, with an Expires line of 2026-02-01, so it had expired when read.",
          "RDAP for greenhouse.com gives a registration date of 1997-07-30.",
          "The privacy policy is dated May 28, 2026. The SLA at greenhouse.com/service-level-agreement was last updated 1 February 2026."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/greenhouse.json",
      "live": {
        "slug": "greenhouse",
        "probe": {
          "target": "https://harvest.greenhouse.io/v3",
          "method": "get",
          "lastAt": "2026-10-08T21:53:23.244055597Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 299,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 289,
          "p95ms24h": 363,
          "samples24h": 71,
          "samples30d": 71,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 71,
              "ok": 71
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.greenhouse.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:57:57.5035888Z"
        },
        "githubStars": 141,
        "securityTxt": {
          "url": "https://greenhouse.com/.well-known/security.txt",
          "state": "expired",
          "expires": "2026-02-01T04:59:00.000Z",
          "checkedAt": "2026-10-08T15:38:47.213641717Z"
        },
        "pages": [
          {
            "url": "https://harvestdocs.greenhouse.io/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:20:48.376020909Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "de13976c1b65"
          },
          {
            "url": "https://www.greenhouse.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:28:08.264000017Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2ae182cde941"
          },
          {
            "url": "https://www.greenhouse.com/master-subscription-agreement",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:28:06.187813013Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6de5c365ccc0"
          }
        ],
        "updatedAt": "2026-10-08T21:57:57.5035888Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Bullhorn, Inc.",
        "b": "Greenhouse Software, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://rest.bullhornstaffing.com/rest-services",
        "b": "https://harvest.greenhouse.io/v3",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under a Bullhorn customer or partner agreement that is not published, with a public API Fair Use Policy. The `sdk-rest` Java library and the `@bullhorn/taurus` and `@bullhorn/bullhorn-types` packages are MIT per npm and the repositories",
        "b": "Proprietary service under Greenhouse's Master Subscription Agreement. The docs repository for the older APIs on GitHub is Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-29",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-02-01",
        "name": "Terms last updated"
      },
      {
        "a": "2026-05-20",
        "b": "2026-05-28",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "13 stars, 1.7k npm/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Greenhouse scores 64.8 (B) on agent readiness against Bullhorn's 46.7 (D), and leads in 5 of 7 scored categories. Bullhorn leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Bullhorn or Greenhouse?"
      },
      {
        "answer": "Both use an OAuth sign-in.",
        "question": "Do Bullhorn and Greenhouse need an API key?"
      },
      {
        "answer": "Yes. Bullhorn has a hosted endpoint at https://rest.bullhornstaffing.com/rest-services and Greenhouse at https://harvest.greenhouse.io/v3.",
        "question": "Can an agent call Bullhorn and Greenhouse without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 5 against 0"
        ],
        "also": null,
        "goodFor": "An integration built for a staffing agency that already runs on Bullhorn, with Bullhorn's permission for AI use in writing, and needs candidates, job orders, submissions and placements.",
        "slug": "bullhorn",
        "watchFor": "The API Fair Use Policy of 17 December 2025 bars connecting third-party AI or LLM tools, or MCP, without Bullhorn's explicit written permission"
      },
      {
        "aheadOn": [
          "Reliability, 71 against 53",
          "Schema \u0026 documentation, 79 against 55",
          "Security \u0026 auth, 85 against 31",
          "Maintenance \u0026 community, 65 against 56",
          "Transparency \u0026 trust, 79 against 67"
        ],
        "also": null,
        "goodFor": "An agent working inside a company that already runs hiring on Greenhouse and needs to read pipelines, move applications, schedule interviews or draft offer records under scoped OAuth.",
        "slug": "greenhouse",
        "watchFor": "No public price, free tier or trial. Pricing is customised through sales, and the sandbox is a Pro-tier feature"
      }
    ],
    "job": {
      "capability": "recruiting.candidates",
      "name": "Recruiting candidates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/ashby-vs-bullhorn.json",
        "title": "Ashby vs Bullhorn",
        "url": "https://www.anchorterminal.com/compare/ashby-vs-bullhorn"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ashby-vs-greenhouse.json",
        "title": "Ashby vs Greenhouse",
        "url": "https://www.anchorterminal.com/compare/ashby-vs-greenhouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bullhorn-vs-gem.json",
        "title": "Bullhorn vs Gem",
        "url": "https://www.anchorterminal.com/compare/bullhorn-vs-gem"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bullhorn-vs-lever.json",
        "title": "Bullhorn vs Lever",
        "url": "https://www.anchorterminal.com/compare/bullhorn-vs-lever"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bullhorn-vs-pinpoint.json",
        "title": "Bullhorn vs Pinpoint",
        "url": "https://www.anchorterminal.com/compare/bullhorn-vs-pinpoint"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bullhorn-vs-recruitee.json",
        "title": "Bullhorn vs Recruitee",
        "url": "https://www.anchorterminal.com/compare/bullhorn-vs-recruitee"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bullhorn-vs-smartrecruiters.json",
        "title": "Bullhorn vs SmartRecruiters",
        "url": "https://www.anchorterminal.com/compare/bullhorn-vs-smartrecruiters"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bullhorn-vs-workable.json",
        "title": "Bullhorn vs Workable",
        "url": "https://www.anchorterminal.com/compare/bullhorn-vs-workable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bullhorn-vs-zoho-recruit.json",
        "title": "Bullhorn vs Zoho Recruit",
        "url": "https://www.anchorterminal.com/compare/bullhorn-vs-zoho-recruit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gem-vs-greenhouse.json",
        "title": "Gem vs Greenhouse",
        "url": "https://www.anchorterminal.com/compare/gem-vs-greenhouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/greenhouse-vs-lever.json",
        "title": "Greenhouse vs Lever",
        "url": "https://www.anchorterminal.com/compare/greenhouse-vs-lever"
      },
      {
        "json": "https://www.anchorterminal.com/compare/greenhouse-vs-pinpoint.json",
        "title": "Greenhouse vs Pinpoint",
        "url": "https://www.anchorterminal.com/compare/greenhouse-vs-pinpoint"
      },
      {
        "json": "https://www.anchorterminal.com/compare/greenhouse-vs-recruitee.json",
        "title": "Greenhouse vs Recruitee",
        "url": "https://www.anchorterminal.com/compare/greenhouse-vs-recruitee"
      },
      {
        "json": "https://www.anchorterminal.com/compare/greenhouse-vs-smartrecruiters.json",
        "title": "Greenhouse vs SmartRecruiters",
        "url": "https://www.anchorterminal.com/compare/greenhouse-vs-smartrecruiters"
      },
      {
        "json": "https://www.anchorterminal.com/compare/greenhouse-vs-workable.json",
        "title": "Greenhouse vs Workable",
        "url": "https://www.anchorterminal.com/compare/greenhouse-vs-workable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/greenhouse-vs-zoho-recruit.json",
        "title": "Greenhouse vs Zoho Recruit",
        "url": "https://www.anchorterminal.com/compare/greenhouse-vs-zoho-recruit"
      }
    ],
    "scores": [
      {
        "bullhorn": 53,
        "by": 18,
        "edge": "greenhouse",
        "greenhouse": 71,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "bullhorn": 55,
        "by": 24,
        "edge": "greenhouse",
        "greenhouse": 79,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "bullhorn": 64,
        "by": 1,
        "edge": "bullhorn",
        "greenhouse": 63,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "bullhorn": 31,
        "by": 54,
        "edge": "greenhouse",
        "greenhouse": 85,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "bullhorn": 5,
        "by": 5,
        "edge": "bullhorn",
        "greenhouse": 0,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "bullhorn": 56,
        "by": 9,
        "edge": "greenhouse",
        "greenhouse": 65,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "bullhorn": 67,
        "by": 12,
        "edge": "greenhouse",
        "greenhouse": 79,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Greenhouse scores 64.8 (B) on agent readiness against Bullhorn's 46.7 (D), and leads in 5 of 7 scored categories. Bullhorn leads on payments \u0026 pricing. Both do recruiting candidates.",
    "verdicts": {
      "bullhorn": "The REST API covers 91 documented entities with required field selection, Lucene and JPQL queries and an event queue. Access is by support ticket or a paid partner contract, and the API Fair Use Policy bars connecting third-party AI or LLM tools or MCP without Bullhorn's written permission. No OpenAPI file or numeric rate limit was found.",
      "greenhouse": "Harvest v3 pairs per-endpoint OAuth scopes with Markdown docs that embed an OpenAPI 3.1 definition for each call, and the beta MCP server blocks every DELETE. Access needs a paying customer account, with no public price, trial or self-serve sandbox, and no numeric rate limit or idempotency key was found in the reviewed documentation."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bullhorn-vs-greenhouse",
    "json": "https://www.anchorterminal.com/compare/bullhorn-vs-greenhouse.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bullhorn-vs-greenhouse.md",
    "slim": "https://www.anchorterminal.com/compare/bullhorn-vs-greenhouse.min.md"
  },
  "markdown": "Greenhouse scores 64.8 (B) on agent readiness against Bullhorn's 46.7 (D), and leads in 5 of 7 scored categories. Bullhorn leads on payments \u0026 pricing. Both do recruiting candidates.\n\n- Bullhorn: grade D, 46.7/100, rank #644 of 722. Markdown https://www.anchorterminal.com/tools/bullhorn.md · JSON https://www.anchorterminal.com/api/v1/tools/bullhorn.json\n- Greenhouse: grade B, 64.8/100, rank #271 of 722. Markdown https://www.anchorterminal.com/tools/greenhouse.md · JSON https://www.anchorterminal.com/api/v1/tools/greenhouse.json\n\n## Which one, for what\n\n### Bullhorn (D)\n\nGood for: An integration built for a staffing agency that already runs on Bullhorn, with Bullhorn's permission for AI use in writing, and needs candidates, job orders, submissions and placements.\n\nAhead on:\n- Payments \u0026 pricing, 5 against 0\n\nWatch for: The API Fair Use Policy of 17 December 2025 bars connecting third-party AI or LLM tools, or MCP, without Bullhorn's explicit written permission\n\n### Greenhouse (B)\n\nGood for: An agent working inside a company that already runs hiring on Greenhouse and needs to read pipelines, move applications, schedule interviews or draft offer records under scoped OAuth.\n\nAhead on:\n- Reliability, 71 against 53\n- Schema \u0026 documentation, 79 against 55\n- Security \u0026 auth, 85 against 31\n- Maintenance \u0026 community, 65 against 56\n- Transparency \u0026 trust, 79 against 67\n\nWatch for: No public price, free tier or trial. Pricing is customised through sales, and the sandbox is a Pro-tier feature\n\n\n## Score by category\n\n| Category | Weight | Bullhorn | Greenhouse | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 53 | 71 | Greenhouse +18 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 55 | 79 | Greenhouse +24 |\n| Agent ergonomics | 13% (16.2 this run) | 64 | 63 | Bullhorn +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 31 | 85 | Greenhouse +54 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 5 | 0 | Bullhorn +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 56 | 65 | Greenhouse +9 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 67 | 79 | Greenhouse +12 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **46.7 · D** | **64.8 · B** | |\n\n## Facts side by side\n\n| Fact | Bullhorn | Greenhouse |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Bullhorn, Inc. | Greenhouse Software, Inc. |\n| Hosted endpoint | `https://rest.bullhornstaffing.com/rest-services` | `https://harvest.greenhouse.io/v3` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | OAuth |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under a Bullhorn customer or partner agreement that is not published, with a public API Fair Use Policy. The `sdk-rest` Java library and the `@bullhorn/taurus` and `@bullhorn/bullhorn-types` packages are MIT per npm and the repositories | Proprietary service under Greenhouse's Master Subscription Agreement. The docs repository for the older APIs on GitHub is Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-09-29 | 2026-10-07 |\n| Terms last updated | no date given | 2026-02-01 |\n| Privacy policy last updated | 2026-05-20 | 2026-05-28 |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 13 stars, 1.7k npm/wk | none |\n\n## Verdicts\n\n**Bullhorn.** The REST API covers 91 documented entities with required field selection, Lucene and JPQL queries and an event queue. Access is by support ticket or a paid partner contract, and the API Fair Use Policy bars connecting third-party AI or LLM tools or MCP without Bullhorn's written permission. No OpenAPI file or numeric rate limit was found.\n\n**Greenhouse.** Harvest v3 pairs per-endpoint OAuth scopes with Markdown docs that embed an OpenAPI 3.1 definition for each call, and the beta MCP server blocks every DELETE. Access needs a paying customer account, with no public price, trial or self-serve sandbox, and no numeric rate limit or idempotency key was found in the reviewed documentation.\n\n## Before you call either\n\n### Bullhorn\n\n1. Confirm the customer holds Bullhorn's written permission for AI or LLM access before any call. The API Fair Use Policy forbids it otherwise\n2. Call `/rest-services/loginInfo?username=` first to learn the data centre, then use the returned OAuth and REST URLs and follow any 307 redirect\n3. Log in once and reuse `BhRestToken` until a call returns 401, then use the refresh token. Bullhorn limits login rates and may block frequent logins\n4. Send `BhRestToken` as a header, never in the URL, and always pass `fields`. `fields=*` is blocked outside `/meta`\n5. On 429 wait one second and retry. Writes have no idempotency key, so read the record back before repeating a PUT\n\n### Greenhouse\n\n1. Request a token from https://auth.greenhouse.io/token with client credentials, then send it as a Bearer token to https://harvest.greenhouse.io/v3. Tokens expire, so repeat on 401\n2. Put filters and `per_page` on the first list request only. A `cursor` must be the only query parameter, or the call returns 422\n3. Send the current stage as `from_stage_id` when moving an application. It guards against stale moves. Other writes have no idempotency key, so check before retrying\n4. Read `X-RateLimit-Remaining` on every response and wait for `Retry-After` on 429. The window is 30 seconds\n5. Expect empty list results or 403 unless the token's user is a Site Admin with the needed permissions\n\n## Questions\n\n### Which is better for AI agents, Bullhorn or Greenhouse?\n\nGreenhouse scores 64.8 (B) on agent readiness against Bullhorn's 46.7 (D), and leads in 5 of 7 scored categories. Bullhorn leads on payments \u0026 pricing.\n\n### Do Bullhorn and Greenhouse need an API key?\n\nBoth use an OAuth sign-in.\n\n### Can an agent call Bullhorn and Greenhouse without installing anything?\n\nYes. Bullhorn has a hosted endpoint at https://rest.bullhornstaffing.com/rest-services and Greenhouse at https://harvest.greenhouse.io/v3.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/bullhorn-vs-greenhouse.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bullhorn-vs-greenhouse.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"bullhorn\", \"b\": \"greenhouse\"}`. From a terminal: `anchor compare bullhorn greenhouse`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/bullhorn.json and https://www.anchorterminal.com/api/v1/tools/greenhouse.json\n\n## Other comparisons with Bullhorn or Greenhouse\n\n- [Ashby vs Bullhorn](https://www.anchorterminal.com/compare/ashby-vs-bullhorn.md)\n- [Ashby vs Greenhouse](https://www.anchorterminal.com/compare/ashby-vs-greenhouse.md)\n- [Bullhorn vs Gem](https://www.anchorterminal.com/compare/bullhorn-vs-gem.md)\n- [Bullhorn vs Lever](https://www.anchorterminal.com/compare/bullhorn-vs-lever.md)\n- [Bullhorn vs Pinpoint](https://www.anchorterminal.com/compare/bullhorn-vs-pinpoint.md)\n- [Bullhorn vs Recruitee](https://www.anchorterminal.com/compare/bullhorn-vs-recruitee.md)\n- [Bullhorn vs SmartRecruiters](https://www.anchorterminal.com/compare/bullhorn-vs-smartrecruiters.md)\n- [Bullhorn vs Workable](https://www.anchorterminal.com/compare/bullhorn-vs-workable.md)\n- [Bullhorn vs Zoho Recruit](https://www.anchorterminal.com/compare/bullhorn-vs-zoho-recruit.md)\n- [Gem vs Greenhouse](https://www.anchorterminal.com/compare/gem-vs-greenhouse.md)\n- [Greenhouse vs Lever](https://www.anchorterminal.com/compare/greenhouse-vs-lever.md)\n- [Greenhouse vs Pinpoint](https://www.anchorterminal.com/compare/greenhouse-vs-pinpoint.md)\n- [Greenhouse vs Recruitee](https://www.anchorterminal.com/compare/greenhouse-vs-recruitee.md)\n- [Greenhouse vs SmartRecruiters](https://www.anchorterminal.com/compare/greenhouse-vs-smartrecruiters.md)\n- [Greenhouse vs Workable](https://www.anchorterminal.com/compare/greenhouse-vs-workable.md)\n- [Greenhouse vs Zoho Recruit](https://www.anchorterminal.com/compare/greenhouse-vs-zoho-recruit.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Bullhorn vs Greenhouse",
        "url": ""
      }
    ],
    "description": "Greenhouse scores 64.8 (B) on agent readiness against Bullhorn's 46.7 (D), and leads in 5 of 7 scored categories. Bullhorn leads on payments \u0026 pricing. Both do recruiting candidates. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Bullhorn D 46.7",
      "Greenhouse B 64.8",
      "scores"
    ],
    "h1": "Bullhorn vs Greenhouse",
    "image": "https://www.anchorterminal.com/assets/og/compare-bullhorn-vs-greenhouse.png",
    "path": "/compare/bullhorn-vs-greenhouse",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Bullhorn vs Greenhouse for AI agents, D 46.7 vs B 64.8",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/bullhorn-vs-greenhouse"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 730
  },
  "version": 1
}
