Zoho Recruit
App · Jobs & Hiring · 20 actions
Applicant tracking system. Add, search and update candidates, move them through job opening pipelines, open jobs, schedule interviews, and add notes and tags.
Actions
| Action | What it does |
|---|---|
| Add a candidate to a job opening | Associate a candidate with a job opening, adding them to its pipeline. |
| Add a note | Add a note to a candidate, job opening, interview or client. |
| Add tags | Tag a record. |
| Change a candidate's status | Set a candidate's status, overall or in one job opening's pipeline, with an optional comment. |
| Create a candidate | Add a candidate. |
| Create a job opening | Open a job. |
| Delete records | Permanently delete up to 100 candidates, job openings or interviews. |
| Get a candidate | Get one candidate with all their fields. |
| Get a job opening | Get one job opening with all its fields. |
| List a job opening's candidates | List the candidates in a job opening's pipeline, optionally only those with certain statuses. |
| List candidates | List candidates, newest first or sorted by any field. |
| List fields | List a module's fields with their API names, types and picklist values, for 'Extra fields', criteria and statuses. |
| List interviews | List interviews, newest first or sorted by any field. |
| List job openings | List job openings, newest first or sorted by any field. |
| List notes | List the notes on a record. |
| List users | List the account's users, such as recruiters to assign or interviewers. |
| Schedule an interview | Schedule an interview of a candidate for a job opening, with interviewers and a place. |
| Search candidates | Find candidates by email, phone, a word, or Zoho criteria such as (Last_Name:equals:Smith). |
| Update a candidate | Change a candidate's fields. |
| Update a job opening | Change a job opening's fields, including its status. |
Add a candidate to a job opening
Associate a candidate with a job opening, adding them to its pipeline. A candidate already there is reported, not an error.
Inputs
- Candidate ID
candidate_idtextRequired - The candidate's id, from 'List candidates' or 'Search candidates', or the candidate's address in Zoho Recruit.
- Job opening ID
job_opening_idtextRequired - The job opening's id, from 'List job openings', or its address in Zoho Recruit.
- Comments
commentstext - Optional. A comment Zoho Recruit keeps with the change.
Outputs
already_associatedtrue/false- Whether the candidate was already in the pipeline.
candidate_idtext- The candidate's id.
job_opening_idtext- The job opening's id.
messagetext- Zoho's confirmation.
Example output
{
"already_associated": false,
"candidate_id": "486812000001660091",
"job_opening_id": "486812000001660120",
"message": "Record associated successfully"
}Add a note
Add a note to a candidate, job opening, interview or client.
Inputs
- Record type
moduletextRequired - The kind of record the note is on.One of:
Candidates,Job_Openings(Job openings),Interviews,Clients,Contacts. - Record ID
record_idtextRequired - The record's id, from a List or Search action, or its address in Zoho Recruit.
- Note
contenttextRequired - The note's text.
- Title
titletext - Optional. The note's title.
Outputs
created_byobject- Who created it.
created_timetext- When it was created.
idtext- The saved record's id.
messagetext- Zoho's confirmation, like 'record added'.
modified_byobject- Who last changed it.
modified_timetext- When it was last changed.
moduletext- That record's module.
parent_idtext- The record the note is on.
Example output
{
"created_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"created_time": "2026-09-01T10:00:00+00:00",
"id": "486812000001660170",
"message": "record added",
"modified_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"modified_time": "2026-09-01T10:00:00+00:00",
"module": "Candidates",
"parent_id": "486812000001660091"
}Add tags
Tag a record. Tags that do not exist yet are created.
Inputs
- Record type
moduletextRequired - The kind of record to tag.One of:
Candidates,Job_Openings(Job openings),Clients,Contacts. - Record ID
record_idtextRequired - The record's id, from a List or Search action, or its address in Zoho Recruit.
- Tags
tag_nameslistRequired - The tags to add. New tag names are created.
Outputs
idtext- The tagged record's id.
messagetext- Zoho's confirmation.
moduletext- That record's module.
tagslist- The tags applied.
Example output
{
"id": "486812000001660091",
"message": "tags updated successfully",
"module": "Candidates",
"tags": [
"Campaign"
]
}Change a candidate's status
Set a candidate's status, overall or in one job opening's pipeline, with an optional comment.
Inputs
- Candidate ID
candidate_idtextRequired - The candidate's id, from 'List candidates' or 'Search candidates', or the candidate's address in Zoho Recruit.
- Status
candidate_statustextRequired - The status to set, from your account's own status list.
- Job opening ID
job_opening_idtext - Optional. Set the status in this job opening's pipeline only. Leave blank for the candidate's overall status.
- Comments
commentstext - Optional. A comment Zoho Recruit keeps with the change.
Outputs
candidate_statustext- The status set.
created_byobject- Who created it.
created_timetext- When it was created.
idtext- The candidate's id.
job_opening_idtext- The job opening whose pipeline it was set in, if any.
messagetext- Zoho's confirmation, like 'record added'.
modified_byobject- Who last changed it.
modified_timetext- When it was last changed.
Example output
{
"candidate_status": "Qualified",
"created_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"created_time": "2026-09-01T10:00:00+00:00",
"id": "486812000001660091",
"job_opening_id": null,
"message": "status changed",
"modified_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"modified_time": "2026-09-01T10:00:00+00:00"
}Create a candidate
Add a candidate. Zoho Recruit refuses a second candidate with the same email.
Inputs
- Last name
last_nametextRequired - Last name.
- First name
first_nametext - Optional. First name.
- Email
emailtext - Optional. Email address. Zoho Recruit refuses a duplicate.
- Phone
phonetext - Optional. Phone.
- Mobile
mobiletext - Optional. Mobile.
- Current job title
current_job_titletext - Optional. Current job title.
- Current employer
current_employertext - Optional. Current employer.
- Experience (years)
experience_in_yearsnumber - Optional. Years of experience.At least 0.
- Skills
skill_settext - Optional. Skills, like Python, SQL.
- City
citytext - Optional. City.
- Country
countrytext - Optional. Country.
- Extra fields
extra_fieldsobject - Optional. Any other fields, as a JSON object of field API names, like {"Source": "Referral"}. 'List fields' names every field.
Outputs
created_byobject- Who created it.
created_timetext- When it was created.
idtext- The saved record's id.
messagetext- Zoho's confirmation, like 'record added'.
modified_byobject- Who last changed it.
modified_timetext- When it was last changed.
Example output
{
"created_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"created_time": "2026-09-01T10:00:00+00:00",
"id": "486812000001660091",
"message": "record added",
"modified_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"modified_time": "2026-09-01T10:00:00+00:00"
}Create a job opening
Open a job. Corporate accounts usually require a department and staffing accounts a client; 'List fields' shows what yours needs.
Inputs
- Posting title
titletextRequired - The job's title, like Senior Python Developer.
- Department ID
department_idtext - Optional. The department's id, from its address in Zoho Recruit. Corporate accounts usually require one.
- Client ID
client_company_idtext - Optional. The client company's id, from its address in Zoho Recruit. Staffing agency accounts usually require one.
- Status
job_opening_statustext - Optional. From your account's own status list. The Free edition allows one active job opening per recruiter.
- Job type
job_typetext - Optional. From your account's own list, like Full time.
- Number of positions
number_of_positionsnumber - Optional. How many people to hire.At least 1.
- Target date
target_datedate - Optional. When the job should be filled by.
- Assigned recruiters
assigned_recruiter_idslist - Optional. The recruiters working on the job.
- City
citytext - Optional. City.
- Country
countrytext - Optional. Country.
- Job description
job_descriptiontext - Optional. The job description.
- Remote job
remote_jobtext - Optional. Whether the job is remote. Leave blank to not set it.One of:
yes,no. - Extra fields
extra_fieldsobject - Optional. Any other fields, as a JSON object of field API names, like {"Source": "Referral"}. 'List fields' names every field.
Outputs
created_byobject- Who created it.
created_timetext- When it was created.
idtext- The saved record's id.
messagetext- Zoho's confirmation, like 'record added'.
modified_byobject- Who last changed it.
modified_timetext- When it was last changed.
Example output
{
"created_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"created_time": "2026-09-01T10:00:00+00:00",
"id": "486812000001660120",
"message": "record added",
"modified_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"modified_time": "2026-09-01T10:00:00+00:00"
}Delete records
Permanently delete up to 100 candidates, job openings or interviews.
Inputs
- Record type
moduletextRequired - The kind of record to delete.One of:
Candidates,Job_Openings(Job openings),Interviews. - Record IDs
record_idslistRequired - The ids to delete, up to 100. This cannot be undone.
Outputs
countnumber- How many were deleted.
deleted_idslist- The ids deleted.
failedlist- Ids Zoho refused to delete, with why.
moduletext- The module the records were in.
Example output
{
"count": 1,
"deleted_ids": [
"486812000001660091"
],
"failed": [],
"module": "Candidates"
}Get a candidate
Get one candidate with all their fields.
Inputs
- Candidate ID
record_idtextRequired - The candidate's id, from 'List candidates' or 'Search candidates', or the candidate's address in Zoho Recruit.
Outputs
A Zoho Recruit candidate.
Additional_Infotext- Additional information.
Associated_Tagsobject- Tags on the candidate.
Candidate_IDtext- The human-readable candidate number, like ZR_446_CAND.
Candidate_Ownerobject- The recruiter who owns the candidate.
Candidate_Statustext- Status, from the account's own status list.
Citytext- City.
Countrytext- Country.
Created_Byobject- Who created it.
Created_Timetext- When it was created (ISO 8601 with offset).
Current_Employertext- Current employer.
Current_Job_Titletext- Current job title.
Current_Salarynumber- Current salary.
Emailtext- Email address.
Expected_Salarynumber- Expected salary.
Experience_in_Yearsnumber- Years of experience.
First_Nametext- First name.
Full_Nametext- Full name.
Highest_Qualification_Heldtext- Highest qualification.
Is_Lockedtrue/false- Whether the record is locked.
Is_Unqualifiedtrue/false- Whether the candidate is marked unqualified.
Last_Activity_Timetext- When anything last happened on the candidate.
Last_Nametext- Last name.
Mobiletext- Mobile.
Modified_Byobject- Who last changed it.
Modified_Timetext- When it was last changed (ISO 8601 with offset).
Origintext- How the record was created.
Phonetext- Phone.
Ratingnumber- Rating.
Secondary_Emailtext- Secondary email address.
Skill_Settext- Skills.
Sourcetext- Where the candidate came from.
Statetext- State.
Streettext- Street.
Updated_Ontext- When the candidate was last updated.
Websitetext- Website.
Zip_Codetext- Postal code.
idtext- The record's Zoho Recruit id (18 digits, as text).
Example output
{
"Candidate_ID": "ZR_446_CAND",
"Candidate_Owner": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Candidate_Status": "New",
"Created_By": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Created_Time": "2026-09-01T10:00:00+00:00",
"Current_Job_Title": "Engineer",
"Email": "ada@example.com",
"Experience_in_Years": 5,
"First_Name": "Ada",
"Full_Name": "Ada Lovelace",
"Last_Name": "Lovelace",
"Modified_By": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Modified_Time": "2026-09-01T10:00:00+00:00",
"id": "486812000001660091"
}Get a job opening
Get one job opening with all its fields.
Inputs
- Job opening ID
record_idtextRequired - The job opening's id, from 'List job openings', or its address in Zoho Recruit.
Outputs
A Zoho Recruit job opening.
Account_Nameobject- The client (staffing editions).
Assigned_Recruiterobject- The recruiters assigned.
Citytext- City.
Contact_Nameobject- The client contact (staffing editions).
Countrytext- Country.
Created_Byobject- Who created it.
Created_Timetext- When it was created (ISO 8601 with offset).
Date_Openedtext- When it opened (YYYY-MM-DD).
Industrytext- Industry.
Is_Hot_Job_Openingtrue/false- Whether it is marked hot.
Job_Descriptiontext- The job description.
Job_Opening_IDtext- The human-readable job opening number.
Job_Opening_Statustext- Status, from the account's own status list.
Job_Typetext- Job type, like Full time.
Modified_Byobject- Who last changed it.
Modified_Timetext- When it was last changed (ISO 8601 with offset).
No_of_Candidates_Associatednumber- Candidates in the pipeline.
No_of_Candidates_Hirednumber- Candidates hired.
Number_of_Positionstext- How many positions.
Posting_Titletext- The job's title.
Publishtrue/false- Whether it is published.
Salarytext- Salary.
Skillsettext- Required skills.
Statetext- State.
Target_Datetext- Target date to fill it (YYYY-MM-DD).
Work_Experiencetext- Required experience.
Zip_Codetext- Postal code.
idtext- The record's Zoho Recruit id (18 digits, as text).
Example output
{
"Created_By": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Created_Time": "2026-09-01T10:00:00+00:00",
"Job_Opening_ID": "ZR_12_JOB",
"Job_Opening_Status": "In-progress",
"Job_Type": "Full time",
"Modified_By": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Modified_Time": "2026-09-01T10:00:00+00:00",
"No_of_Candidates_Associated": 1,
"Number_of_Positions": "1",
"Posting_Title": "Senior Python Developer",
"Target_Date": "2026-12-31",
"id": "486812000001660120"
}List a job opening's candidates
List the candidates in a job opening's pipeline, optionally only those with certain statuses.
Inputs
- Job opening ID
job_opening_idtextRequired - The job opening's id, from 'List job openings', or its address in Zoho Recruit.
- Statuses
candidate_statuseslist - Optional. Only candidates with one of these statuses.
- Page
pagenumber - Optional. Which page to return, starting at 1.At least 1.
- Page size
per_pagenumber - Optional. How many to return per page, 1 to 200 (the default).From 1 to 200.
Outputs
countnumber- How many candidates are on this page.
more_recordstrue/false- Whether another page is available.
pagenumber- This page's number.
per_pagenumber- The page size.
recordslist- The candidates.
Example output
{
"count": 1,
"more_records": false,
"page": 1,
"per_page": 200,
"records": [
{
"Candidate_ID": "ZR_446_CAND",
"Candidate_Owner": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Candidate_Status": "New",
"Created_By": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Created_Time": "2026-09-01T10:00:00+00:00",
"Current_Job_Title": "Engineer",
"Email": "ada@example.com",
"Experience_in_Years": 5,
"First_Name": "Ada",
"Full_Name": "Ada Lovelace",
"Last_Name": "Lovelace",
"Modified_By": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Modified_Time": "2026-09-01T10:00:00+00:00",
"id": "486812000001660091"
}
]
}List candidates
List candidates, newest first or sorted by any field.
Inputs
- Fields
fieldstext - Optional. Only return these fields: API names separated by commas, like First_Name,Last_Name,Email. 'List fields' names them.
- Sort by
sort_bytext - Optional. A field API name to sort by, like Modified_Time.
- Sort order
sort_ordertext - Optional. Ascending or descending.One of:
asc(Ascending),desc(Descending). - Page
pagenumber - Optional. Which page to return, starting at 1.At least 1.
- Page size
per_pagenumber - Optional. How many to return per page, 1 to 200 (the default).From 1 to 200.
- Changed since
modified_sincedate and time - Optional. Only records changed after this moment.
Outputs
countnumber- How many candidates are on this page.
more_recordstrue/false- Whether another page is available.
pagenumber- This page's number.
per_pagenumber- The page size.
recordslist- The candidates.
Example output
{
"count": 1,
"more_records": false,
"page": 1,
"per_page": 200,
"records": [
{
"Candidate_ID": "ZR_446_CAND",
"Candidate_Owner": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Candidate_Status": "New",
"Created_By": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Created_Time": "2026-09-01T10:00:00+00:00",
"Current_Job_Title": "Engineer",
"Email": "ada@example.com",
"Experience_in_Years": 5,
"First_Name": "Ada",
"Full_Name": "Ada Lovelace",
"Last_Name": "Lovelace",
"Modified_By": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Modified_Time": "2026-09-01T10:00:00+00:00",
"id": "486812000001660091"
}
]
}List fields
List a module's fields with their API names, types and picklist values, for 'Extra fields', criteria and statuses.
Inputs
- Record type
moduletextRequired - The kind of record whose fields to list.One of:
Candidates,Job_Openings(Job openings),Interviews,Clients,Contacts.
Outputs
countnumber- How many fields.
fieldslist- The fields.
moduletext- The module's API name.
Example output
{
"count": 1,
"fields": [
{
"api_name": "Candidate_Status",
"custom_field": false,
"data_type": "picklist",
"field_label": "Candidate Status",
"id": "486812000000002591",
"pick_list_values": [
{
"actual_value": "New",
"display_value": "New"
}
],
"read_only": false,
"system_mandatory": false
}
],
"module": "Candidates"
}List interviews
List interviews, newest first or sorted by any field.
Inputs
- Fields
fieldstext - Optional. Only return these fields: API names separated by commas, like First_Name,Last_Name,Email. 'List fields' names them.
- Sort by
sort_bytext - Optional. A field API name to sort by, like Modified_Time.
- Sort order
sort_ordertext - Optional. Ascending or descending.One of:
asc(Ascending),desc(Descending). - Page
pagenumber - Optional. Which page to return, starting at 1.At least 1.
- Page size
per_pagenumber - Optional. How many to return per page, 1 to 200 (the default).From 1 to 200.
- Changed since
modified_sincedate and time - Optional. Only records changed after this moment.
Outputs
countnumber- How many interviews are on this page.
more_recordstrue/false- Whether another page is available.
pagenumber- This page's number.
per_pagenumber- The page size.
recordslist- The interviews.
Example output
{
"count": 1,
"more_records": false,
"page": 1,
"per_page": 200,
"records": [
{
"Candidate_Name": {
"id": "486812000001660091",
"name": "Ada Lovelace"
},
"End_DateTime": "2026-11-12T12:00:00+00:00",
"Interview_Name": "Level 1 Interview",
"Job_Opening_Name": {
"id": "486812000001660120",
"name": "Senior Python Developer"
},
"Start_DateTime": "2026-11-12T11:00:00+00:00",
"id": "486812000001660150"
}
]
}List job openings
List job openings, newest first or sorted by any field.
Inputs
- Fields
fieldstext - Optional. Only return these fields: API names separated by commas, like First_Name,Last_Name,Email. 'List fields' names them.
- Sort by
sort_bytext - Optional. A field API name to sort by, like Modified_Time.
- Sort order
sort_ordertext - Optional. Ascending or descending.One of:
asc(Ascending),desc(Descending). - Page
pagenumber - Optional. Which page to return, starting at 1.At least 1.
- Page size
per_pagenumber - Optional. How many to return per page, 1 to 200 (the default).From 1 to 200.
- Changed since
modified_sincedate and time - Optional. Only records changed after this moment.
Outputs
countnumber- How many job openings are on this page.
more_recordstrue/false- Whether another page is available.
pagenumber- This page's number.
per_pagenumber- The page size.
recordslist- The job openings.
Example output
{
"count": 1,
"more_records": false,
"page": 1,
"per_page": 200,
"records": [
{
"Created_By": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Created_Time": "2026-09-01T10:00:00+00:00",
"Job_Opening_ID": "ZR_12_JOB",
"Job_Opening_Status": "In-progress",
"Job_Type": "Full time",
"Modified_By": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Modified_Time": "2026-09-01T10:00:00+00:00",
"No_of_Candidates_Associated": 1,
"Number_of_Positions": "1",
"Posting_Title": "Senior Python Developer",
"Target_Date": "2026-12-31",
"id": "486812000001660120"
}
]
}List notes
List the notes on a record.
Inputs
- Record type
moduletextRequired - The kind of record the note is on.One of:
Candidates,Job_Openings(Job openings),Interviews,Clients,Contacts. - Record ID
record_idtextRequired - The record's id, from a List or Search action, or its address in Zoho Recruit.
- Page
pagenumber - Optional. Which page to return, starting at 1.At least 1.
- Page size
per_pagenumber - Optional. How many to return per page, 1 to 200 (the default).From 1 to 200.
Outputs
countnumber- How many notes are on this page.
more_recordstrue/false- Whether another page is available.
pagenumber- This page's number.
per_pagenumber- The page size.
recordslist- The notes.
Example output
{
"count": 1,
"more_records": false,
"page": 1,
"per_page": 200,
"records": [
{
"Note_Content": "Strong fit.",
"Note_Owner": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Note_Title": "Phone screen",
"Parent_Id": {
"id": "486812000001660091",
"name": "Ada Lovelace"
},
"id": "486812000001660170"
}
]
}List users
List the account's users, such as recruiters to assign or interviewers. 'The connected user' checks the connection.
Inputs
- Which users
user_typetext - Optional. Which users to list; active users by default.One of:
AllUsers(All users),ActiveUsers(Active users),DeactiveUsers(Deactivated users),ConfirmedUsers(Confirmed users),NotConfirmedUsers(Unconfirmed users),DeletedUsers(Deleted users),ActiveConfirmedUsers(Active, confirmed users),AdminUsers(Administrators),ActiveConfirmedAdmins(Active, confirmed administrators),CurrentUser(The connected user). - Page
pagenumber - Optional. Which page to return, starting at 1.At least 1.
- Page size
per_pagenumber - Optional. How many to return per page, 1 to 200 (the default).From 1 to 200.
Outputs
countnumber- How many users are on this page.
more_recordstrue/false- Whether another page is available.
pagenumber- This page's number.
per_pagenumber- The page size.
userslist- The users.
Example output
{
"count": 1,
"more_records": false,
"page": 1,
"per_page": 200,
"users": [
{
"email": "alex@example.com",
"full_name": "Alex Recruiter",
"id": "486812000000180003",
"profile": {
"id": "486812000000026011",
"name": "Administrator"
},
"role": {
"id": "486812000000026005",
"name": "CEO"
},
"status": "active"
}
]
}Schedule an interview
Schedule an interview of a candidate for a job opening, with interviewers and a place.
Inputs
- Candidate ID
candidate_idtextRequired - The candidate's id, from 'List candidates' or 'Search candidates', or the candidate's address in Zoho Recruit.
- Job opening ID
job_opening_idtextRequired - The job opening's id, from 'List job openings', or its address in Zoho Recruit.
- Interview name
interview_nametextRequired - The interview's name, like Level 1 Interview.
- Starts at
start_datetimedate and timeRequired - When the interview starts.
- Ends at
end_datetimedate and timeRequired - When the interview ends.
- Interviewers
interviewer_idslist - Optional. The users who interview.
- Location
locationtext - Optional. Where the interview takes place.
- Client ID
client_company_idtext - Optional. The client company's id, from its address in Zoho Recruit. Staffing agency accounts usually require one.
- Extra fields
extra_fieldsobject - Optional. Any other fields, as a JSON object of field API names, like {"Source": "Referral"}. 'List fields' names every field.
Outputs
created_byobject- Who created it.
created_timetext- When it was created.
idtext- The saved record's id.
messagetext- Zoho's confirmation, like 'record added'.
modified_byobject- Who last changed it.
modified_timetext- When it was last changed.
Example output
{
"created_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"created_time": "2026-09-01T10:00:00+00:00",
"id": "486812000001660150",
"message": "record added",
"modified_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"modified_time": "2026-09-01T10:00:00+00:00"
}Search candidates
Find candidates by email, phone, a word, or Zoho criteria such as (Last_Name:equals:Smith).
Inputs
- Search by
search_bytextRequired - What to match: an email address, a phone number, a word anywhere in the record, or Zoho criteria.One of:
email,phone,word,criteria. - Search for
valuetextRequired - The email, phone or word to find. For criteria, Zoho's form: (Last_Name:equals:Smith), joined with and / or, up to 10.
- Page
pagenumber - Optional. Which page to return, starting at 1.At least 1.
- Page size
per_pagenumber - Optional. How many to return per page, 1 to 200 (the default).From 1 to 200.
Outputs
countnumber- How many candidates are on this page.
more_recordstrue/false- Whether another page is available.
pagenumber- This page's number.
per_pagenumber- The page size.
recordslist- The candidates.
Example output
{
"count": 1,
"more_records": false,
"page": 1,
"per_page": 200,
"records": [
{
"Candidate_ID": "ZR_446_CAND",
"Candidate_Owner": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Candidate_Status": "New",
"Created_By": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Created_Time": "2026-09-01T10:00:00+00:00",
"Current_Job_Title": "Engineer",
"Email": "ada@example.com",
"Experience_in_Years": 5,
"First_Name": "Ada",
"Full_Name": "Ada Lovelace",
"Last_Name": "Lovelace",
"Modified_By": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"Modified_Time": "2026-09-01T10:00:00+00:00",
"id": "486812000001660091"
}
]
}Update a candidate
Change a candidate's fields. Fields left blank are kept.
Inputs
- Candidate ID
record_idtextRequired - The candidate's id, from 'List candidates' or 'Search candidates', or the candidate's address in Zoho Recruit.
- Last name
last_nametext - Optional. Last name.
- First name
first_nametext - Optional. First name.
- Email
emailtext - Optional. Email address. Zoho Recruit refuses a duplicate.
- Phone
phonetext - Optional. Phone.
- Mobile
mobiletext - Optional. Mobile.
- Current job title
current_job_titletext - Optional. Current job title.
- Current employer
current_employertext - Optional. Current employer.
- Experience (years)
experience_in_yearsnumber - Optional. Years of experience.At least 0.
- Skills
skill_settext - Optional. Skills, like Python, SQL.
- City
citytext - Optional. City.
- Country
countrytext - Optional. Country.
- Extra fields
extra_fieldsobject - Optional. Any other fields, as a JSON object of field API names, like {"Source": "Referral"}. 'List fields' names every field.
Outputs
created_byobject- Who created it.
created_timetext- When it was created.
idtext- The saved record's id.
messagetext- Zoho's confirmation, like 'record added'.
modified_byobject- Who last changed it.
modified_timetext- When it was last changed.
Example output
{
"created_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"created_time": "2026-09-01T10:00:00+00:00",
"id": "486812000001660091",
"message": "record updated",
"modified_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"modified_time": "2026-09-01T10:00:00+00:00"
}Update a job opening
Change a job opening's fields, including its status. Fields left blank are kept.
Inputs
- Job opening ID
record_idtextRequired - The job opening's id, from 'List job openings', or its address in Zoho Recruit.
- Posting title
titletext - Optional. A new title.
- Department ID
department_idtext - Optional. The department's id, from its address in Zoho Recruit. Corporate accounts usually require one.
- Client ID
client_company_idtext - Optional. The client company's id, from its address in Zoho Recruit. Staffing agency accounts usually require one.
- Status
job_opening_statustext - Optional. From your account's own status list. The Free edition allows one active job opening per recruiter.
- Job type
job_typetext - Optional. From your account's own list, like Full time.
- Number of positions
number_of_positionsnumber - Optional. How many people to hire.At least 1.
- Target date
target_datedate - Optional. When the job should be filled by.
- Assigned recruiters
assigned_recruiter_idslist - Optional. The recruiters working on the job.
- City
citytext - Optional. City.
- Country
countrytext - Optional. Country.
- Job description
job_descriptiontext - Optional. The job description.
- Remote job
remote_jobtext - Optional. Whether the job is remote. Leave blank to not set it.One of:
yes,no. - Extra fields
extra_fieldsobject - Optional. Any other fields, as a JSON object of field API names, like {"Source": "Referral"}. 'List fields' names every field.
Outputs
created_byobject- Who created it.
created_timetext- When it was created.
idtext- The saved record's id.
messagetext- Zoho's confirmation, like 'record added'.
modified_byobject- Who last changed it.
modified_timetext- When it was last changed.
Example output
{
"created_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"created_time": "2026-09-01T10:00:00+00:00",
"id": "486812000001660120",
"message": "record updated",
"modified_by": {
"id": "486812000000180003",
"name": "Alex Recruiter"
},
"modified_time": "2026-09-01T10:00:00+00:00"
}