{
  "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:12:06.783475466Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 46,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 47,
          "p95ms24h": 86,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.bullhorn.com",
          "indicator": "maintenance",
          "summary": "Service Under Maintenance",
          "checkedAt": "2026-10-08T21:05:53.268612652Z"
        },
        "updatedAt": "2026-10-08T21:12:06.783475466Z"
      }
    },
    "answer": "Zoho Recruit scores 59.8 (C) on agent readiness against Bullhorn's 46.7 (D), and leads in 4 of 7 scored categories. Bullhorn leads on schema \u0026 documentation and maintenance \u0026 community.",
    "b": {
      "slug": "zoho-recruit",
      "name": "Zoho Recruit",
      "vendor": "Zoho",
      "vendorUrl": "https://www.zoho.com/recruit/",
      "kind": "http-api",
      "category": "recruiting",
      "summary": "Zoho Recruit is a hosted applicant tracking system from Zoho for in-house HR teams and staffing agencies. Agents reach it through the REST API v2 and asynchronous bulk read and write APIs, behind OAuth 2.0.",
      "url": "https://www.anchorterminal.com/tools/zoho-recruit",
      "markdownUrl": "https://www.anchorterminal.com/tools/zoho-recruit.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/zoho-recruit.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zoho-recruit.json",
      "license": "Proprietary service under Zoho's Terms of Service",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 only. A person registers a client in the Zoho API console (a web application, or a self client for one organisation) and approves scopes, which narrow to one module and one operation. The access token lasts one hour and goes in `Authorization: Zoho-oauthtoken \u003ctoken\u003e`. The refresh token lasts until revoked. Each data centre has its own accounts host and API host. Registration is self-serve, with no app review or sales approval for use inside one's own organisation.",
      "pricing": "freemium",
      "pricingNotes": "Free edition with 5,000 API credits a day, and the home page says no credit card is required. Paid editions cost $25 to $75 a recruiter licence a month billed yearly ($30 to $90 monthly) and a 15-day trial of Enterprise comes first. API calls draw on a daily credit allowance set by edition and user licences. Extra API calls are an add-on at $11.50 per 250 calls billed monthly (https://www.zoho.com/recruit/pricing.html and the price file it loads, checked 2026-10-08).",
      "priceSummary": "$25 / seat-mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.zoho.com/recruit/developer-guide/apiv2/",
      "llmsTxt": "https://www.zoho.com/recruit/developer-guide/llms.txt",
      "capabilities": [
        "recruiting.candidates",
        "recruiting.jobs",
        "recruiting.applications",
        "recruiting.interviews",
        "recruiting.offer-letters"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "oauth",
        "llms-txt",
        "webhooks",
        "free-tier",
        "no-card",
        "status-page",
        "bug-bounty",
        "soc2"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.8,
        "grade": "C",
        "agentReady": false,
        "rank": 421,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 64,
          "maintenance": 48,
          "payments": 35,
          "reliability": 76,
          "schema": 46,
          "security": 65,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "OAuth scopes narrow to one module and one operation, the docs have an llms.txt index with a Markdown page per endpoint, and the Free edition includes 5,000 API credits a day. No OpenAPI description, official SDK, SLA or dated API changelog was found, and the documented token refresh puts the client secret in the URL.",
        "bestFor": "Small businesses and staffing agencies on Zoho that want an agent to read and write candidates, job openings, applications and interviews with narrow scopes, and teams that want a free edition with API access.",
        "strengths": [
          "OAuth scopes narrow to one module and one operation, such as `ZohoRecruit.modules.candidates.READ`",
          "`https://www.zoho.com/recruit/developer-guide/llms.txt` indexes 79 API pages, each with a Markdown twin",
          "Free edition with 5,000 API credits a day, and the home page says no credit card is required",
          "Upsert matches on `duplicate_check_fields`, so a repeated create updates the record",
          "Daily credits and concurrency limits are published per edition, with no per-minute cap"
        ],
        "weaknesses": [
          "No OpenAPI description found. The public repository zoho/recruit-oas is empty",
          "No official SDK for the Recruit API found in the docs, on PyPI under three likely names or under five likely repository names",
          "The documented refresh and revoke calls put the refresh token and client secret in the URL query string",
          "429 is documented without a Retry-After header or backoff guidance, and no SLA was found",
          "The limits page, the What's New page and the Corporate HR plan comparison give different daily API allowances"
        ],
        "agentNotes": [
          "Use the `api_domain` returned with the token, or the regional host (recruit.zoho.com, recruit.zoho.eu, recruit.zoho.in and others). Tokens from one data centre fail on another",
          "Send `Authorization: Zoho-oauthtoken \u003ctoken\u003e` and refresh hourly. Put refresh parameters in the POST body, not the URL",
          "Pass `fields` on list calls and page with `page` and `per_page` (200 at most) until `more_records` is false",
          "Create through `/{module_api_name}/upsert` with `duplicate_check_fields` so a retry updates instead of duplicating",
          "Move a candidate with `PUT /{module_api_name}/status`, not upsert. Pass `trigger: []` on writes to skip workflows, approvals and blueprints"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.8
          }
        ],
        "editorialScores": {
          "ergonomics": 64,
          "maintenance": 48,
          "payments": 35,
          "reliability": 76,
          "schema": 46,
          "security": 65,
          "transparency": 59
        },
        "provenanceScore": 95
      },
      "connect": {
        "http": "curl \"https://recruit.zoho.com/recruit/v2/Candidates?fields=Last_Name,Email\u0026per_page=5\" \\\n  -X GET -H \"Authorization: Zoho-oauthtoken $ZOHO_ACCESS_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/recruiting.candidates",
        "tool": "https://letme.dev/zoho-recruit"
      },
      "sameCompany": [
        "zoho-books",
        "zoho-zeptomail",
        "zoho-crm",
        "zoho-people"
      ],
      "area": "business",
      "unitPrices": [
        {
          "item": "Corporate HR Standard",
          "unit": "seat-month",
          "usd": 25,
          "note": "per recruiter licence, billed yearly; $30 billed monthly"
        },
        {
          "item": "Corporate HR Enterprise",
          "unit": "seat-month",
          "usd": 50,
          "note": "per recruiter licence, billed yearly; $60 billed monthly"
        },
        {
          "item": "Staffing Agency Standard",
          "unit": "seat-month",
          "usd": 25,
          "note": "billed yearly; $30 billed monthly"
        },
        {
          "item": "Staffing Agency Professional",
          "unit": "seat-month",
          "usd": 50,
          "note": "billed yearly; $60 billed monthly"
        },
        {
          "item": "Staffing Agency Enterprise",
          "unit": "seat-month",
          "usd": 75,
          "note": "billed yearly; $90 billed monthly"
        }
      ],
      "provenance": {
        "legalEntity": "Zoho Corporation Private Limited",
        "domain": "zoho.com",
        "domainRegistered": "2004-01-16",
        "endpointOnVendorDomain": true,
        "terms": "https://www.zoho.com/terms.html",
        "privacy": "https://www.zoho.com/privacy.html",
        "statusPage": "https://status.zoho.com",
        "changelog": "https://www.zoho.com/recruit/whats-new.html",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Terms of Service (last updated 2 March 2022) are the service agreement for Zoho's online services. The contracting entity depends on the customer's region, Zoho Corporation Private Limited for India and Zoho Corporation for the United States (https://www.zoho.com/legal/zoho-contracting-entities.html).",
          "A separate Zoho Developer Agreement at https://www.zoho.com/developer/terms.html covers the developer platform and names Zoho Corporation Private Limited and its affiliates.",
          "The privacy policy was last updated on 22 December 2025 and covers Zoho's websites and the products on them.",
          "security.txt at www.zoho.com gives a bug bounty contact, security@zohocorp.com, a policy link and an expiry of 30 June 2028.",
          "API calls go to recruit.zoho.com and its regional equivalents, or to the `api_domain` returned with the token (www.zohoapis.com). An unauthenticated request to https://recruit.zoho.com/recruit/v2/Candidates answered 401 with a JSON error on 8 October 2026.",
          "The changelog link is the product's What's New page, dated by month. No dated API changelog was found.",
          "RDAP for zoho.com gives a registration date of 2004-01-16."
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/zoho-recruit.json"
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Bullhorn, Inc.",
        "b": "Zoho",
        "name": "Vendor"
      },
      {
        "a": "https://rest.bullhornstaffing.com/rest-services",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "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 Zoho's Terms of Service",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-29",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2022-03-02",
        "name": "Terms last updated"
      },
      {
        "a": "2026-05-20",
        "b": "2025-12-22",
        "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": "Zoho Recruit scores 59.8 (C) on agent readiness against Bullhorn's 46.7 (D), and leads in 4 of 7 scored categories. Bullhorn leads on schema \u0026 documentation and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Bullhorn or Zoho Recruit?"
      },
      {
        "answer": "Both use an OAuth sign-in.",
        "question": "Do Bullhorn and Zoho Recruit need an API key?"
      },
      {
        "answer": "Bullhorn has a hosted endpoint at https://rest.bullhornstaffing.com/rest-services. No hosted endpoint is listed for Zoho Recruit.",
        "question": "Can an agent call Bullhorn and Zoho Recruit without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 55 against 46",
          "Maintenance \u0026 community, 56 against 48"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "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, 76 against 53",
          "Security \u0026 auth, 65 against 31",
          "Payments \u0026 pricing, 35 against 5",
          "Transparency \u0026 trust, 77 against 67"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Small businesses and staffing agencies on Zoho that want an agent to read and write candidates, job openings, applications and interviews with narrow scopes, and teams that want a free edition with API access.",
        "slug": "zoho-recruit",
        "watchFor": "No OpenAPI description found. The public repository zoho/recruit-oas is empty"
      }
    ],
    "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-zoho-recruit.json",
        "title": "Ashby vs Zoho Recruit",
        "url": "https://www.anchorterminal.com/compare/ashby-vs-zoho-recruit"
      },
      {
        "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-greenhouse.json",
        "title": "Bullhorn vs Greenhouse",
        "url": "https://www.anchorterminal.com/compare/bullhorn-vs-greenhouse"
      },
      {
        "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/gem-vs-zoho-recruit.json",
        "title": "Gem vs Zoho Recruit",
        "url": "https://www.anchorterminal.com/compare/gem-vs-zoho-recruit"
      },
      {
        "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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lever-vs-zoho-recruit.json",
        "title": "Lever vs Zoho Recruit",
        "url": "https://www.anchorterminal.com/compare/lever-vs-zoho-recruit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pinpoint-vs-zoho-recruit.json",
        "title": "Pinpoint vs Zoho Recruit",
        "url": "https://www.anchorterminal.com/compare/pinpoint-vs-zoho-recruit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/recruitee-vs-zoho-recruit.json",
        "title": "Recruitee vs Zoho Recruit",
        "url": "https://www.anchorterminal.com/compare/recruitee-vs-zoho-recruit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/smartrecruiters-vs-zoho-recruit.json",
        "title": "SmartRecruiters vs Zoho Recruit",
        "url": "https://www.anchorterminal.com/compare/smartrecruiters-vs-zoho-recruit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/workable-vs-zoho-recruit.json",
        "title": "Workable vs Zoho Recruit",
        "url": "https://www.anchorterminal.com/compare/workable-vs-zoho-recruit"
      }
    ],
    "scores": [
      {
        "bullhorn": 53,
        "by": 23,
        "edge": "zoho-recruit",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "zoho-recruit": 76
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "bullhorn": 55,
        "by": 9,
        "edge": "bullhorn",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "zoho-recruit": 46
      },
      {
        "bullhorn": 64,
        "by": 0,
        "edge": "",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "zoho-recruit": 64
      },
      {
        "bullhorn": 31,
        "by": 34,
        "edge": "zoho-recruit",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "zoho-recruit": 65
      },
      {
        "bullhorn": 5,
        "by": 30,
        "edge": "zoho-recruit",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "zoho-recruit": 35
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "bullhorn": 56,
        "by": 8,
        "edge": "bullhorn",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "zoho-recruit": 48
      },
      {
        "bullhorn": 67,
        "by": 10,
        "edge": "zoho-recruit",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "zoho-recruit": 77
      }
    ],
    "summary": "Zoho Recruit scores 59.8 (C) on agent readiness against Bullhorn's 46.7 (D), and leads in 4 of 7 scored categories. Bullhorn leads on schema \u0026 documentation and maintenance \u0026 community. 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.",
      "zoho-recruit": "OAuth scopes narrow to one module and one operation, the docs have an llms.txt index with a Markdown page per endpoint, and the Free edition includes 5,000 API credits a day. No OpenAPI description, official SDK, SLA or dated API changelog was found, and the documented token refresh puts the client secret in the URL."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bullhorn-vs-zoho-recruit",
    "json": "https://www.anchorterminal.com/compare/bullhorn-vs-zoho-recruit.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bullhorn-vs-zoho-recruit.md",
    "slim": "https://www.anchorterminal.com/compare/bullhorn-vs-zoho-recruit.min.md"
  },
  "markdown": "Zoho Recruit scores 59.8 (C) on agent readiness against Bullhorn's 46.7 (D), and leads in 4 of 7 scored categories. Bullhorn leads on schema \u0026 documentation and maintenance \u0026 community. 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- Zoho Recruit: grade C, 59.8/100, rank #421 of 722. Markdown https://www.anchorterminal.com/tools/zoho-recruit.md · JSON https://www.anchorterminal.com/api/v1/tools/zoho-recruit.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- Schema \u0026 documentation, 55 against 46\n- Maintenance \u0026 community, 56 against 48\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\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### Zoho Recruit (C)\n\nGood for: Small businesses and staffing agencies on Zoho that want an agent to read and write candidates, job openings, applications and interviews with narrow scopes, and teams that want a free edition with API access.\n\nAhead on:\n- Reliability, 76 against 53\n- Security \u0026 auth, 65 against 31\n- Payments \u0026 pricing, 35 against 5\n- Transparency \u0026 trust, 77 against 67\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: No OpenAPI description found. The public repository zoho/recruit-oas is empty\n\n\n## Score by category\n\n| Category | Weight | Bullhorn | Zoho Recruit | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 53 | 76 | Zoho Recruit +23 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 55 | 46 | Bullhorn +9 |\n| Agent ergonomics | 13% (16.2 this run) | 64 | 64 | even |\n| Security \u0026 auth | 14% (17.5 this run) | 31 | 65 | Zoho Recruit +34 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 5 | 35 | Zoho Recruit +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 56 | 48 | Bullhorn +8 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 67 | 77 | Zoho Recruit +10 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **46.7 · D** | **59.8 · C** | |\n\n## Facts side by side\n\n| Fact | Bullhorn | Zoho Recruit |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Bullhorn, Inc. | Zoho |\n| Hosted endpoint | `https://rest.bullhornstaffing.com/rest-services` | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | OAuth |\n| Pricing | Paid | Freemium |\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 Zoho's Terms of Service |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-09-29 | none |\n| Terms last updated | no date given | 2022-03-02 |\n| Privacy policy last updated | 2026-05-20 | 2025-12-22 |\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**Zoho Recruit.** OAuth scopes narrow to one module and one operation, the docs have an llms.txt index with a Markdown page per endpoint, and the Free edition includes 5,000 API credits a day. No OpenAPI description, official SDK, SLA or dated API changelog was found, and the documented token refresh puts the client secret in the URL.\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### Zoho Recruit\n\n1. Use the `api_domain` returned with the token, or the regional host (recruit.zoho.com, recruit.zoho.eu, recruit.zoho.in and others). Tokens from one data centre fail on another\n2. Send `Authorization: Zoho-oauthtoken \u003ctoken\u003e` and refresh hourly. Put refresh parameters in the POST body, not the URL\n3. Pass `fields` on list calls and page with `page` and `per_page` (200 at most) until `more_records` is false\n4. Create through `/{module_api_name}/upsert` with `duplicate_check_fields` so a retry updates instead of duplicating\n5. Move a candidate with `PUT /{module_api_name}/status`, not upsert. Pass `trigger: []` on writes to skip workflows, approvals and blueprints\n\n## Questions\n\n### Which is better for AI agents, Bullhorn or Zoho Recruit?\n\nZoho Recruit scores 59.8 (C) on agent readiness against Bullhorn's 46.7 (D), and leads in 4 of 7 scored categories. Bullhorn leads on schema \u0026 documentation and maintenance \u0026 community.\n\n### Do Bullhorn and Zoho Recruit need an API key?\n\nBoth use an OAuth sign-in.\n\n### Can an agent call Bullhorn and Zoho Recruit without installing anything?\n\nBullhorn has a hosted endpoint at https://rest.bullhornstaffing.com/rest-services. No hosted endpoint is listed for Zoho Recruit.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/bullhorn-vs-zoho-recruit.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bullhorn-vs-zoho-recruit.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"bullhorn\", \"b\": \"zoho-recruit\"}`. From a terminal: `anchor compare bullhorn zoho-recruit`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/bullhorn.json and https://www.anchorterminal.com/api/v1/tools/zoho-recruit.json\n\n## Other comparisons with Bullhorn or Zoho Recruit\n\n- [Ashby vs Bullhorn](https://www.anchorterminal.com/compare/ashby-vs-bullhorn.md)\n- [Ashby vs Zoho Recruit](https://www.anchorterminal.com/compare/ashby-vs-zoho-recruit.md)\n- [Bullhorn vs Gem](https://www.anchorterminal.com/compare/bullhorn-vs-gem.md)\n- [Bullhorn vs Greenhouse](https://www.anchorterminal.com/compare/bullhorn-vs-greenhouse.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- [Gem vs Zoho Recruit](https://www.anchorterminal.com/compare/gem-vs-zoho-recruit.md)\n- [Greenhouse vs Zoho Recruit](https://www.anchorterminal.com/compare/greenhouse-vs-zoho-recruit.md)\n- [Lever vs Zoho Recruit](https://www.anchorterminal.com/compare/lever-vs-zoho-recruit.md)\n- [Pinpoint vs Zoho Recruit](https://www.anchorterminal.com/compare/pinpoint-vs-zoho-recruit.md)\n- [Recruitee vs Zoho Recruit](https://www.anchorterminal.com/compare/recruitee-vs-zoho-recruit.md)\n- [SmartRecruiters vs Zoho Recruit](https://www.anchorterminal.com/compare/smartrecruiters-vs-zoho-recruit.md)\n- [Workable vs Zoho Recruit](https://www.anchorterminal.com/compare/workable-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 Zoho Recruit",
        "url": ""
      }
    ],
    "description": "Zoho Recruit scores 59.8 (C) on agent readiness against Bullhorn's 46.7 (D), and leads in 4 of 7 scored categories. Bullhorn leads on schema \u0026 documentation and maintenance \u0026 community. Both do recruiting candidates. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Bullhorn D 46.7",
      "Zoho Recruit C 59.8",
      "scores"
    ],
    "h1": "Bullhorn vs Zoho Recruit",
    "image": "https://www.anchorterminal.com/assets/og/compare-bullhorn-vs-zoho-recruit.png",
    "path": "/compare/bullhorn-vs-zoho-recruit",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Bullhorn vs Zoho Recruit for AI agents, D 46.7 vs C 59.8",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/bullhorn-vs-zoho-recruit"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 730
  },
  "version": 1
}
