Class: RubyDesk::Job

Inherits:
OdeskEntity show all
Defined in:
lib/ruby_desk/job.rb

Overview

A job opening with the following attributes

  • amount

  • buyer

  • candidates_total

  • candidates_total_active

  • company_ref

  • date_posted

  • engagement_related

  • engagement_weeks

  • hours_per_week

  • interviewees_total_active

  • job_category_level_one

  • job_category_level_two

  • job_type

  • odr_meta

  • offers_total

  • offers_total_open

  • op_active

  • op_attached_doc

  • op_avg_bid_active

  • op_avg_bid_active_interviewees

  • op_avg_bid_all

  • op_avg_bid_interviewees

  • op_avg_hourly_rate_active

  • op_avg_hourly_rate_active_interviewees

  • op_avg_hourly_rate_all

  • op_avg_hourly_rate_interviewees

  • op_buyer_ace

  • op_cancel_ts

  • op_comm_status

  • op_country

  • op_ctime

  • op_date_created

  • op_desc_digest

  • op_description

  • op_end_date

  • op_eng_type

  • op_engagement

  • op_est_duration

  • op_high_bid_active

  • op_high_bid_active_interviewees

  • op_high_bid_all

  • op_high_bid_interviewees

  • op_high_hourly_rate_active

  • op_high_hourly_rate_active_interviewees

  • op_high_hourly_rate_all

  • op_high_hourly_rate_interviewees

  • op_is_validnonprivate

  • op_is_viewable

  • op_job_category_seo

  • op_job_expiration

  • op_last_buyer_activity

  • op_low_bid_active

  • op_low_bid_active_interviewees

  • op_low_bid_all

  • op_low_hourly_rate_active

  • op_low_hourly_rate_active_interviewees

  • op_low_hourly_rate_all

  • op_low_hourly_rate_interviewees

  • op_lowhigh_bid_interviewees

  • op_num_of_pending_invites

  • op_pref_english_skill

  • op_pref_fb_score

  • op_pref_group_recno

  • op_pref_has_portfolio

  • op_pref_hourly_rate_max

  • op_pref_hourly_rate_min

  • op_pref_hours_per_week

  • op_pref_location

  • op_pref_odesk_hours

  • op_pref_test

  • op_pref_test_name

  • op_private_rating_active

  • op_reason

  • op_recno

  • op_required_skills

  • op_skill

  • op_start_date

  • op_status_for_search

  • op_time_created

  • op_time_posted

  • op_title

  • op_tot_cand_client

  • op_tot_cand_prof

  • op_tot_new_cond

  • op_tot_rej

  • op_ui_profile_access

  • profile_key

  • search_status

  • timezone

  • ui_job_profile_access

  • version

Class Method Summary collapse

Methods inherited from OdeskEntity

attribute, #initialize

Constructor Details

This class inherits a constructor from RubyDesk::OdeskEntity

Class Method Details

.search(connector, query_options = {}) ⇒ Object

<h2>Details on Search Parameters</h2> <p>&nbsp;</p> <ul> <li>q - OpeningData&nbsp;(Opening Data)

<ul> <li>Search the text of the job description</li> </ul> </li> <li>c1 - JobCategory&nbsp;(Level One Job Category) <ul> <li>Limit your search to a specific <a href=“/all-categories”>category</a></li> </ul> </li> <li>c2 - second_category&nbsp;(Second Level Job Category)

<ul> <li>Limit your search to a specific <a href=“/all-categories”>sub-category</a> <ul> <li>You must use a level one category in order to use a second level category.</li> </ul> </li> </ul> </li> <li>fb - adjusted_score&nbsp;(Adjusted Score) <ul> <li>Limit your search to buyers with at least a score of the number passed in this parameter.

<ul> <li>This number must be <strong>5</strong> or less</li> </ul> </li> </ul> </li> <li>min - min_budget&nbsp;(Min Budget) <ul> <li>Limit your search to jobs with a budget greater than this number.</li>

</ul> </li> <li>max - max_budget&nbsp;(Max Budget) <ul> <li>Limit your search to jobs with a budget less than this number.</li> </ul> </li> <li>t - JobType&nbsp;(Job Type) <ul> <li>oDesk has both hourly jobs and fixed prices jobs. This parameter allows you to limit your search to one or the other.

<ul> <li>Hourly Jobs = ‘<strong>Hourly</strong>’</li> <li>Fixed Priced Jobs = ‘<strong>Fixed</strong>’</li> </ul> </li> <li><strong>wl -</strong> hours_per_week(Hours per Week) <ul> <li>This parameter can only be used when searching Hourly jobs. These numbers are a little arbitrary, so follow the following parameters in order to successfully use this parameter: <ul>

<li> <p>As Needed &lt; 10 Hours/Week = ‘<strong>0</strong>’</p> </li> <li> <p>Part Time: 10-30 hrs/week = ‘<strong>20</strong>’</p> </li> <li>Full Time: 30+ hrs/week = ‘<strong>40</strong>’</li>

</ul> </li> </ul> </li> <li>dur - engagement_duration&nbsp;(Engagement Duration) <ul> <li>This parameter can only be used when searching Hourly jobs. These numbers are a little arbitrary, so follow the following parameters in order to successfully use this parameter: <ul> <li>Ongoing / More than 6 months = ‘<strong>1</strong>’</li> <li>3 to 6 months = ‘<strong>2</strong>’</li>

<li>1 to 3 months = ‘<strong>3</strong>’</li> <li>Less than 1 month = ‘<strong>4</strong>’</li> <li>Less than 1 week = ‘<strong>5</strong>’</li> </ul> </li> </ul> </li> </ul>

</li> <li>dp - Date_Posted&nbsp;<strong>(</strong>Date Posted) <ul> <li>Search jobs posted after this date. <ul> <li>Format for date: 07-22-2009</li> </ul> </li> </ul> </li> <li>st - status_for_search&nbsp;(Status for Search)

<ul> <li>Search Canceled jobs, In Progress Jobs and Completed Jobs: By default this default to Open Jobs <ul> <li>Open Jobs = ‘<strong>Open</strong>’</li> <li>Jobs in Progress = ‘<strong>In Progress</strong>’</li> <li>Completed Jobs = ‘<strong>Completed</strong>’</li> <li>Canceled Jobs = ‘<strong>Cancelled</strong>’</li>

</ul> </li> </ul> </li> <li><strong>tba</strong> - total_billed_assignments&nbsp;(Total Billed Assignments) <ul> <li>Limit your search to buyers who completed at least this number of paid assignments <ul> <li>For example tb=5 searches buyers who have at least 5 billed assignments</li> </ul> </li> </ul> </li>

<li><strong>gr</strong> -&nbsp;PrefGroup(Preferred Group)providers <ul> <li>Limits your search to buyers in a particular group</li> </ul> </li> <li><strong>to</strong> - titles_only&nbsp;(titles only) <ul> <li>Limits your search to job titles only. (you should be able to combine this search)</li>



255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
# File 'lib/ruby_desk/job.rb', line 255

def self.search(connector, query_options={})
  if query_options.respond_to? :to_str
    return search(connector, :q=>query_options.to_str)
  end
  json = connector.prepare_and_invoke_api_call(
      'profiles/v1/search/jobs', :method=>:get,
      :auth=>false, :sign=>false, :params=>query_options)
  jobs = []
  if json['jobs']['job']
    [json['jobs']['job']].flatten.each do |job|
      jobs << self.new(job)
    end
  end
  return jobs
end