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

ActionWhat it does
Add a candidate to a job openingAssociate a candidate with a job opening, adding them to its pipeline.
Add a noteAdd a note to a candidate, job opening, interview or client.
Add tagsTag a record.
Change a candidate's statusSet a candidate's status, overall or in one job opening's pipeline, with an optional comment.
Create a candidateAdd a candidate.
Create a job openingOpen a job.
Delete recordsPermanently delete up to 100 candidates, job openings or interviews.
Get a candidateGet one candidate with all their fields.
Get a job openingGet one job opening with all its fields.
List a job opening's candidatesList the candidates in a job opening's pipeline, optionally only those with certain statuses.
List candidatesList candidates, newest first or sorted by any field.
List fieldsList a module's fields with their API names, types and picklist values, for 'Extra fields', criteria and statuses.
List interviewsList interviews, newest first or sorted by any field.
List job openingsList job openings, newest first or sorted by any field.
List notesList the notes on a record.
List usersList the account's users, such as recruiters to assign or interviewers.
Schedule an interviewSchedule an interview of a candidate for a job opening, with interviewers and a place.
Search candidatesFind candidates by email, phone, a word, or Zoho criteria such as (Last_Name:equals:Smith).
Update a candidateChange a candidate's fields.
Update a job openingChange 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 IDcandidate_idtextRequired
The candidate's id, from 'List candidates' or 'Search candidates', or the candidate's address in Zoho Recruit.
Job opening IDjob_opening_idtextRequired
The job opening's id, from 'List job openings', or its address in Zoho Recruit.
Commentscommentstext
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 typemoduletextRequired
The kind of record the note is on.One of: Candidates, Job_Openings (Job openings), Interviews, Clients, Contacts.
Record IDrecord_idtextRequired
The record's id, from a List or Search action, or its address in Zoho Recruit.
NotecontenttextRequired
The note's text.
Titletitletext
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 typemoduletextRequired
The kind of record to tag.One of: Candidates, Job_Openings (Job openings), Clients, Contacts.
Record IDrecord_idtextRequired
The record's id, from a List or Search action, or its address in Zoho Recruit.
Tagstag_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 IDcandidate_idtextRequired
The candidate's id, from 'List candidates' or 'Search candidates', or the candidate's address in Zoho Recruit.
Statuscandidate_statustextRequired
The status to set, from your account's own status list.
Job opening IDjob_opening_idtext
Optional. Set the status in this job opening's pipeline only. Leave blank for the candidate's overall status.
Commentscommentstext
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 namelast_nametextRequired
Last name.
First namefirst_nametext
Optional. First name.
Emailemailtext
Optional. Email address. Zoho Recruit refuses a duplicate.
Phonephonetext
Optional. Phone.
Mobilemobiletext
Optional. Mobile.
Current job titlecurrent_job_titletext
Optional. Current job title.
Current employercurrent_employertext
Optional. Current employer.
Experience (years)experience_in_yearsnumber
Optional. Years of experience.At least 0.
Skillsskill_settext
Optional. Skills, like Python, SQL.
Citycitytext
Optional. City.
Countrycountrytext
Optional. Country.
Extra fieldsextra_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 titletitletextRequired
The job's title, like Senior Python Developer.
Department IDdepartment_idtext
Optional. The department's id, from its address in Zoho Recruit. Corporate accounts usually require one.
Client IDclient_company_idtext
Optional. The client company's id, from its address in Zoho Recruit. Staffing agency accounts usually require one.
Statusjob_opening_statustext
Optional. From your account's own status list. The Free edition allows one active job opening per recruiter.
Job typejob_typetext
Optional. From your account's own list, like Full time.
Number of positionsnumber_of_positionsnumber
Optional. How many people to hire.At least 1.
Target datetarget_datedate
Optional. When the job should be filled by.
Assigned recruitersassigned_recruiter_idslist
Optional. The recruiters working on the job.
Citycitytext
Optional. City.
Countrycountrytext
Optional. Country.
Job descriptionjob_descriptiontext
Optional. The job description.
Remote jobremote_jobtext
Optional. Whether the job is remote. Leave blank to not set it.One of: yes, no.
Extra fieldsextra_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 typemoduletextRequired
The kind of record to delete.One of: Candidates, Job_Openings (Job openings), Interviews.
Record IDsrecord_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 IDrecord_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 IDrecord_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 IDjob_opening_idtextRequired
The job opening's id, from 'List job openings', or its address in Zoho Recruit.
Statusescandidate_statuseslist
Optional. Only candidates with one of these statuses.
Pagepagenumber
Optional. Which page to return, starting at 1.At least 1.
Page sizeper_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

Fieldsfieldstext
Optional. Only return these fields: API names separated by commas, like First_Name,Last_Name,Email. 'List fields' names them.
Sort bysort_bytext
Optional. A field API name to sort by, like Modified_Time.
Sort ordersort_ordertext
Optional. Ascending or descending.One of: asc (Ascending), desc (Descending).
Pagepagenumber
Optional. Which page to return, starting at 1.At least 1.
Page sizeper_pagenumber
Optional. How many to return per page, 1 to 200 (the default).From 1 to 200.
Changed sincemodified_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 typemoduletextRequired
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

Fieldsfieldstext
Optional. Only return these fields: API names separated by commas, like First_Name,Last_Name,Email. 'List fields' names them.
Sort bysort_bytext
Optional. A field API name to sort by, like Modified_Time.
Sort ordersort_ordertext
Optional. Ascending or descending.One of: asc (Ascending), desc (Descending).
Pagepagenumber
Optional. Which page to return, starting at 1.At least 1.
Page sizeper_pagenumber
Optional. How many to return per page, 1 to 200 (the default).From 1 to 200.
Changed sincemodified_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

Fieldsfieldstext
Optional. Only return these fields: API names separated by commas, like First_Name,Last_Name,Email. 'List fields' names them.
Sort bysort_bytext
Optional. A field API name to sort by, like Modified_Time.
Sort ordersort_ordertext
Optional. Ascending or descending.One of: asc (Ascending), desc (Descending).
Pagepagenumber
Optional. Which page to return, starting at 1.At least 1.
Page sizeper_pagenumber
Optional. How many to return per page, 1 to 200 (the default).From 1 to 200.
Changed sincemodified_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 typemoduletextRequired
The kind of record the note is on.One of: Candidates, Job_Openings (Job openings), Interviews, Clients, Contacts.
Record IDrecord_idtextRequired
The record's id, from a List or Search action, or its address in Zoho Recruit.
Pagepagenumber
Optional. Which page to return, starting at 1.At least 1.
Page sizeper_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 usersuser_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).
Pagepagenumber
Optional. Which page to return, starting at 1.At least 1.
Page sizeper_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 IDcandidate_idtextRequired
The candidate's id, from 'List candidates' or 'Search candidates', or the candidate's address in Zoho Recruit.
Job opening IDjob_opening_idtextRequired
The job opening's id, from 'List job openings', or its address in Zoho Recruit.
Interview nameinterview_nametextRequired
The interview's name, like Level 1 Interview.
Starts atstart_datetimedate and timeRequired
When the interview starts.
Ends atend_datetimedate and timeRequired
When the interview ends.
Interviewersinterviewer_idslist
Optional. The users who interview.
Locationlocationtext
Optional. Where the interview takes place.
Client IDclient_company_idtext
Optional. The client company's id, from its address in Zoho Recruit. Staffing agency accounts usually require one.
Extra fieldsextra_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 bysearch_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 forvaluetextRequired
The email, phone or word to find. For criteria, Zoho's form: (Last_Name:equals:Smith), joined with and / or, up to 10.
Pagepagenumber
Optional. Which page to return, starting at 1.At least 1.
Page sizeper_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 IDrecord_idtextRequired
The candidate's id, from 'List candidates' or 'Search candidates', or the candidate's address in Zoho Recruit.
Last namelast_nametext
Optional. Last name.
First namefirst_nametext
Optional. First name.
Emailemailtext
Optional. Email address. Zoho Recruit refuses a duplicate.
Phonephonetext
Optional. Phone.
Mobilemobiletext
Optional. Mobile.
Current job titlecurrent_job_titletext
Optional. Current job title.
Current employercurrent_employertext
Optional. Current employer.
Experience (years)experience_in_yearsnumber
Optional. Years of experience.At least 0.
Skillsskill_settext
Optional. Skills, like Python, SQL.
Citycitytext
Optional. City.
Countrycountrytext
Optional. Country.
Extra fieldsextra_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 IDrecord_idtextRequired
The job opening's id, from 'List job openings', or its address in Zoho Recruit.
Posting titletitletext
Optional. A new title.
Department IDdepartment_idtext
Optional. The department's id, from its address in Zoho Recruit. Corporate accounts usually require one.
Client IDclient_company_idtext
Optional. The client company's id, from its address in Zoho Recruit. Staffing agency accounts usually require one.
Statusjob_opening_statustext
Optional. From your account's own status list. The Free edition allows one active job opening per recruiter.
Job typejob_typetext
Optional. From your account's own list, like Full time.
Number of positionsnumber_of_positionsnumber
Optional. How many people to hire.At least 1.
Target datetarget_datedate
Optional. When the job should be filled by.
Assigned recruitersassigned_recruiter_idslist
Optional. The recruiters working on the job.
Citycitytext
Optional. City.
Countrycountrytext
Optional. Country.
Job descriptionjob_descriptiontext
Optional. The job description.
Remote jobremote_jobtext
Optional. Whether the job is remote. Leave blank to not set it.One of: yes, no.
Extra fieldsextra_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"
}

On this page