class Bamboozled::API::ApplicantTracking

Constants

APPLICATION_STATUS_GROUPS
JOB_STATUS_GROUPS

Public Instance Methods

add_comment(applicant_id, comment) click to toggle source

Add comments to an application – POST /applications/:id/comments

# File lib/bamboozled/api/applicant_tracking.rb, line 42
def add_comment(applicant_id, comment)
  details = { type: "comment", comment: comment }.to_json
  options = { body: details, headers: { "Content-Type" => "application/json" } }

  request(:post, "applicant_tracking/applications/#{applicant_id}/comments", options)
end
application(applicant_id) click to toggle source

Get the details of an application – GET /applications/:id

# File lib/bamboozled/api/applicant_tracking.rb, line 37
def application(applicant_id)
  request(:get, "applicant_tracking/applications/#{applicant_id}")
end
applications(params = {}) click to toggle source

Get a list of applications, following pagination – GET /applications

# File lib/bamboozled/api/applicant_tracking.rb, line 24
def applications(params = {}) # rubocop:disable Style/OptionHash
  page_limit = params.delete(:page_limit) { 1 }

  applications_array = []
  1.upto page_limit do |i|
    response = request_applications(params.merge(page: i))
    applications_array += response["applications"]
    break if response["paginationComplete"]
  end
  applications_array
end
change_status(applicant_id, status_id) click to toggle source

Change applicant's status – POST /applications/:id/status

# File lib/bamboozled/api/applicant_tracking.rb, line 55
def change_status(applicant_id, status_id)
  details = { status: status_id.to_i }.to_json
  options = { body: details, headers: { "Content-Type" => "application/json" } }

  request(:post, "applicant_tracking/applications/#{applicant_id}/status", options)
end
job_summaries(params = {}) click to toggle source

Get a list of job summaries – GET /jobs

# File lib/bamboozled/api/applicant_tracking.rb, line 13
def job_summaries(params = {}) # rubocop:disable Style/OptionHash
  query = {
    "statusGroups": "ALL",     # JOB_STATUS_GROUPS
    "sortBy":       "created", # "count", "title", "lead", "created", "status"
    "sortOrder":    "ASC"      # "ASC", "DESC"
  }.merge(params)

  request(:get, "applicant_tracking/jobs", query: query)
end
statuses() click to toggle source

Get a list of statuses for a company – GET /statuses

# File lib/bamboozled/api/applicant_tracking.rb, line 50
def statuses
  request(:get, "applicant_tracking/statuses")
end

Protected Instance Methods

request_applications(params = {}) click to toggle source
# File lib/bamboozled/api/applicant_tracking.rb, line 64
def request_applications(params = {}) # rubocop:disable Style/OptionHash
  # Also supported:
  # page, jobId, applicationStatusId, applicationStatus (APPLICATION_STATUS_GROUPS),
  # jobStatusGroups (JOB_STATUS_GROUPS), searchString
  query = {
    "sortBy":    "created_date", # "first_name", "job_title", "rating", "phone", "status", "last_updated", "created_date"
    "sortOrder": "ASC"           # "ASC", "DESC"
  }.merge(params)

  request(:get, "applicant_tracking/applications", query: query)
end