Zoho Recruit
Recruiting ATS/CRM: search Candidates before sourcing externally, build an outbound exclusion list from Clients, and turn a Job Opening into search filters. Read-only, free, self-serve OAuth connect.
Use Zoho Recruit as a read source ahead of sourcing: check its Candidates for a match before paying for external people data, pull its Clients as a do-not-contact list for outbound, and turn a Job Opening's description into search filters. It has no write methods here — enriched candidates still land in whichever ATS/CRM the agency writes to.
Free, self-serve OAuth connect. Reads cost no credits — you pay only for the upstream sourcing/enrichment. Runs on your own Zoho Recruit connection.
Capabilities
| Tool | Does | Cost |
|---|---|---|
search_candidates | Search Candidates by criteria, email (exact dedup), phone or word | Free |
get_candidate | Single candidate by id | Free |
list_clients | Paginated client companies (Client_Name, Website, …) | Free |
search_clients | Search clients by criteria or word | Free |
list_job_openings | Paginated job openings | Free |
search_job_openings | Search job openings by criteria or word | Free |
get_job_opening | Single job opening, including its description field | Free |
get_fields | The account's real field API names for a module | Free |
Guidance
- Search takes exactly one of
criteria,email,phoneorword.criterialooks like((Field:operator:value)and(Field:operator:value)), up to 10 conditions — escape a comma or parenthesis inside a value with a backslash. - A search with no match comes back as an empty result, not an error.
per_pagecaps at 200; page until the response says there are no more records.- Field names vary per account — the job-description field in particular isn't standardized. Call
get_fields(module="Job_Openings")(orCandidates/Clients) rather than guessing a field name. - Search the ATS before running
people_searchon external providers:search_candidates(email=…)for an exact dedup check, or acriteria/wordsearch on the role's must-haves, then only source externally for the gap. - Building an outbound exclusion list: page
list_clients(per_page=200)to the end, collectClient_Name+ website domains, and drop those companies from your target list before a staffing/BD campaign.
hyreflow tools execute zoho_recruit search_candidates \
--payload '{"email":"[email protected]"}'Zoho Recruit is a read source, not a waterfall member or a write target: use it as a pre-sourcing check and a filter source, then push results wherever the agency's ATS/CRM actually lives.
Connect
Zoho Recruit connects self-serve via OAuth from Integrations → Zoho Recruit. The card offers two choices:
- Hyreflow's app (the default, where enabled) — click Connect and approve on Zoho's consent screen. Nothing to register, nothing to paste.
- Your own Zoho app — create a Server-based Application at
api-console.zoho.com, set its Authorized Redirect URI to the one shown on the card (https://recruit.hyreflow.ai/api/v2/integrations/zoho_recruit/oauth/callback), paste its Client ID and Client Secret, pick the data center your account lives in (United States, Europe, India, Australia, Japan, Canada, Saudi Arabia or China), then click Connect and approve.
Either way Hyreflow stores the connection and refreshes the access token automatically — no refresh token is ever pasted, and picking your own app is what makes the engine use it; you can switch back to Hyreflow's at any time, though either switch means re-authorizing.
Wiza
LinkedIn → email/phone enrichment that accepts Sales Navigator and Recruiter URLs. Key gotcha: reveals are async (start + poll); a phone reveal costs more than an email-only one.
ZoomInfo
Premium B2B data: enrich contacts/companies, search the database, and pull intent/scoop/news signals. BYOK-only on hyreflow. Key gotcha: enrich is capped at 25 records/call.