Skip to content

Instantly share code, notes, and snippets.

@mguterl
Created September 24, 2009 19:55
Show Gist options
  • Save mguterl/192996 to your computer and use it in GitHub Desktop.
Save mguterl/192996 to your computer and use it in GitHub Desktop.
class Cb2rm::CareerBuilder
require 'defaultDriver'
def session_token
@session_token ||= session.sessionToken
end
def session
@session ||= begin_session.cB_BeginSessionResult
end
def begin_session
@soap.cB_BeginSession(:email => @email, :password => @password)
end
def get_resume(resume_id)
@soap.cB_GetResume(:sessionToken => session_token,
:resumeID => resume_id,
:custAcctCode => "").cB_GetResumeResult
end
def search(params = {})
Search.new(self, params)
end
def advanced_resume_search_result(params = {})
advanced_resume_search(params).cB_AdvancedResumeSearchResult
end
def advanced_resume_search(params = {})
@soap.cB_AdvancedResumeSearch(:sessionToken => session_token,
:keywords => params[:keywords],
:zipCode => params[:zip_code],
:searchPattern => "",
:jobCategories => "",
:city => "",
:state => "",
:country => "US",
:searchRadiusInMiles => params[:zip_code].empty? ? "" : params[:search_radius_in_miles],
:relocationFilter => "",
:freshnessInDays => params[:freshness_in_days],
:employmentType => "",
:minimumExperience => "",
:minimumTravelRequirement => "",
:minimumDegree => "",
:compensationType => "",
:minimumSalary => "",
:maximumSalary => "",
:excludeResumesWithNoSalary => "",
:languagesSpoken => "",
:currentlyEmployed => "",
:managementExperience => "",
:minimumEmployeesManaged => "",
:maximumCommute => "",
:securityClearance => params[:security_clearance].blank? ? "" : params[:security_clearance],
:workStatus => "",
:excludeIVRResumes => "",
:orderBy => "",
:pageNumber => params[:current_page],
:rowsPerPage => "50",
:custAcctCode => "",
:customXML => "",
:militaryExperience => "M1, M2, M3, M4, M5, M6, M7")
end
def initialize(email, password)
@email, @password = email, password
@soap = ResumesSoap.new
@soap.wiredump_dev = STDERR if $DEBUG
end
class Search
include Enumerable
def initialize(career_builder, params = {})
@career_builder, @params = career_builder, params
@current_page = 0
end
def response
@response || execute
end
def hits
response.hits.to_i
end
def pages
response.maxPage.to_i
end
def next_page
@current_page += 1
end
def execute
@response = @career_builder.advanced_resume_search_result(@params.merge({:current_page => @current_page}))
end
def each
while @current_page <= pages
@response.results.each do |result|
yield result
end if @response.results
next_page
execute
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment