authentic_jobs 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.markdown +46 -0
- data/Rakefile +59 -0
- data/VERSION +1 -0
- data/changelog.markdown +2 -0
- data/examples/search.rb +6 -0
- data/lib/authentic_jobs.rb +73 -0
- data/test/fixtures/categories.json +29 -0
- data/test/fixtures/companies.json +1491 -0
- data/test/fixtures/error.json +1 -0
- data/test/fixtures/locations.json +513 -0
- data/test/fixtures/search.json +69 -0
- data/test/fixtures/types.json +1 -0
- data/test/helper.rb +42 -0
- data/test/test_authentic_jobs.rb +53 -0
- metadata +133 -0
@@ -0,0 +1,69 @@
|
|
1
|
+
{
|
2
|
+
"listings": {
|
3
|
+
"listing": [{
|
4
|
+
"id": "4428",
|
5
|
+
"title": "Interactive Art Designer",
|
6
|
+
"description": "<p><p>Description <strong>Marketing Communications Designer<\/strong><br \/><strong>Full-Time Salaried with Stock Options\/ Benefits<\/strong><br \/><strong>Reports To:<\/strong> Creative Director<br \/> <br \/><strong>Who We Want:<\/strong><br \/> <br \/>Bazaarvoice is looking for a skilled and technically savvy visual\/web designer with superior HTML & CSS skills. This is a high-impact role with responsibilities that include design of our corporate web sites (www.bazaarvoice.com, twitter.bazaarvoice.com & www.bazaarblog.com) and creation of infographics and other design materials for the Product Marketing team.<br \/><br \/>Each team is different here at Bazaarvoice; we all bring our outside interests into BV daily. We are looking for someone who is a hard worker and a self starter, an individual who is inquisitive, coupled with a sense of humor and optimism. <br \/> <br \/><strong>Requirements:<\/strong><\/p>\r\n<ul>\r\n<li>BS in Design (Art, Computer graphics, etc.) <\/li>\r\n<li>3-5 years of hands on experience building out Info Graphics <\/li>\r\n<li>3+ years of hand-coding HTML and CSS, plusses for YUI and\/or JQuery and JavaScript <\/li>\r\n<li>Must be able to provide a design portfolio for our team to review <\/li>\r\n<li>Experience Developing Info Graphics <\/li>\r\n<li>Possess a large, well received design portfolio to share <\/li>\r\n<li>Expertise in developing web pages and\/or web-product mock ups in HTML and CSS (JavaScript is big plus) <\/li>\r\n<li>Proven experience in lead generation and direct response design are also necessary. A candidate who has created\/tested\/optimized email and landing pages is preferred. <\/li>\r\n<li>Excellent written and Verbal communication skills, comfortable presenting ideas to a large audience <\/li>\r\n<\/ul>\r\n<p><strong>Why this Role?<\/strong><br \/>This role is unique; it helps shape how the world views Bazaarvoice. You will be the main designer in charge of Bazaarvoice.com. Your work on the site will be a critical part of our visual brand, closely working with the Product Marketing team to define how our products are explained and sold to the market place.<br \/><br \/>Being the Marketing Communications Designer carries a terrific amount of responsibility. This role is one of the main points of interaction customers, prospects, employees, investors, job applicants, the press, and analysts have with our brand. The Marcom Designer is a face of Bazaarvoice.<br \/> <br \/><strong>In Sum:<\/strong><br \/> <br \/>Bazaarvoice is helping to shape social commerce. Being a part of the team during this hectic, exciting, fast-paced phase in our rapidly growing company is not just about having a job; it is about being a part of Bazaarvoice and what we are all about.<br \/><strong>Please spend some time exploring our 5-Stars of Culture before applying.<\/strong><br \/> <br \/><br \/> <\/p><\/p>",
|
7
|
+
"perks": null,
|
8
|
+
"howto_apply": "PLEASE APPLY AT:<a href=\"\"><a href=\"http:\/\/www.jobvite.com\/j\/?cj=ouXfVfwl&s=authentic+jobs\">http:\/\/www.jobvite.com\/j\/?cj=ouXfVfwl&s=authentic+jobs<\/a>http:\/\/www.jobvite.com\/j\/?cj=ouXfVfwl&s=authentic+jobs<\/a>",
|
9
|
+
"post_date": "2009-12-10 10:58:03",
|
10
|
+
"category": {
|
11
|
+
"id": "3",
|
12
|
+
"name": "Interaction Design"
|
13
|
+
},
|
14
|
+
"type": {
|
15
|
+
"id": "1",
|
16
|
+
"name": "Full-time"
|
17
|
+
},
|
18
|
+
"company": {
|
19
|
+
"id": "bazaarvoice",
|
20
|
+
"name": "Bazaarvoice",
|
21
|
+
"url": "http:\/\/bazaarvoice.com",
|
22
|
+
"location": {
|
23
|
+
"id": "austintxus",
|
24
|
+
"name": "Austin, TX, US",
|
25
|
+
"city": "Austin",
|
26
|
+
"country": "US",
|
27
|
+
"lat": "30.2672",
|
28
|
+
"lng": "-97.7431",
|
29
|
+
"state": "TX"
|
30
|
+
}
|
31
|
+
}
|
32
|
+
},
|
33
|
+
{
|
34
|
+
"id": "4385",
|
35
|
+
"title": "Associate Creative Director",
|
36
|
+
"description": "<p><p><strong>Job Description:<\/strong><\/p>\r\n<p>Affiniscape, Inc. is seeking an Associate Creative Director. The Associate Creative Director reports to the Vice President of Services and is responsible for successfully building and leading a design team in the implementation of our customer’s online presence, such as web user interface design, page layouts, promotional landing pages, online newsletters, advertising, and many additional online components. The candidate must be a results-driven leader and a self starter with a strong design and technology background.<\/p>\r\n<p><strong>Job Responsibilities:<\/strong><\/p>\r\n<ul>\r\n<li>Provide day-to-day management of the design team.<\/li>\r\n<li>Oversee project delivery - main interface with clients – evaluate deliverables.<\/li>\r\n<li>Work proactively to address the team’s utilization, work-life balance, and career development.<\/li>\r\n<li>Serve as the primary point of contact for business development efforts such as proposals, pre-sales meetings, project estimation\/scoping activities, and resource allocation.<\/li>\r\n<li>Define and document best practices and contribute to company-wide knowledge sharing efforts.<\/li>\r\n<li>Evolve Affiniscape’s service offerings from ideation to implementation.<\/li>\r\n<li>Maintain a 25-50% billable utilization rate.<\/li>\r\n<li>Make hiring decisions, mentor employees, and evaluate employee performance.<\/li>\r\n<li>Foster an open and productive atmosphere within the design team.<\/li>\r\n<li>Provide inspiration and motivation to team.<\/li>\r\n<li>Leverage experience, foresight, and analytical skills to efficiently find solutions in completing tasks.<\/li>\r\n<\/ul>\r\n<p><strong>Qualifications:<\/strong><\/p>\r\n<ul>\r\n<li>2+ years industry experience in leading and\/or managing a design team. 5+ years experience in online design at an agency, studio, internal design department, or contractual work. <\/li>\r\n<li>Bachelor's degree in the sciences, engineering, a creative discipline or relative experience is required. <\/li>\r\n<li>Advanced knowledge and skills in HTML, CSS and the ability to hand-code standards based, SEO-friendly code. <\/li>\r\n<li>Advanced knowledge of the full Adobe Creative Web Suite. <\/li>\r\n<li>Knowledge in Flash (ActionScript), .Net, ColdFusion, InDesign, and Acrobat is a plus. <\/li>\r\n<li>Knowledge of JavaScript, DOM scripting and cross-platform browser compatibility restrictions and requirements. <\/li>\r\n<li>Desktop, Rich Internet\/Platform, or Web Applications in Microsoft .NET 3.x, Microsoft Silverlight, Qt Desktop, AJAX, or ColdFusion is a plus. <\/li>\r\n<li>Must be a self-learner with strong creative problem solving abilities. Candidate must stay current with design trends and new technologies. <\/li>\r\n<li>Project management skills are critical including working successfully with changing priorities and risk management. <\/li>\r\n<li>Ability to handle multiple projects simultaneously. <\/li>\r\n<li>Strong written and verbal communication skills - demonstrated experience in working with a team in the design and implementation of solutions <\/li>\r\n<li>A relentless results-driven, self-learner who thrives in a highly dynamic environment <\/li>\r\n<\/ul>\r\n<p><strong>About Us:<\/strong> <\/p>\r\n<p>Affiniscape’s products power both the front and back-end of websites and information management systems for associations. Our partners rely on us for website hosting, content and database management, and much more. Affiniscape is a nine year-old company with strong growth and has appeared in the Austin Fast 50 multiple times. Affiniscape maintains a staff of 75 employees, and a client base of more than 1,000 association clients in the U.S., Canada and Australia. We are centrally located in Austin near the 360 bridge.<\/p>\r\n<p><strong>Benefits:<\/strong><\/p>\r\n<p>Competitive salary, PPO, 401k, Stock Option Plan and paid time off.<\/p><\/p>",
|
37
|
+
"perks": "Affiniscape offers 15 days of PTO plus 10 recognized holidays. For the right candidate, stock options and a performance bonus will be included in the final compensation package.",
|
38
|
+
"howto_apply": "For consideration submit your cover letter, resume, and links to your online portfolio or digital samples online following this link: <a href=\"\"><a href=\"\"><a href=\"http:\/\/www.affiniscape.com\/displayemailforms.cfm?emailformnbr=127378\">http:\/\/www.affiniscape.com\/displayemailforms.cfm?emailformnbr=127378<\/a><\/a><\/a>",
|
39
|
+
"post_date": "2009-12-02 12:21:48",
|
40
|
+
"category": {
|
41
|
+
"id": "4",
|
42
|
+
"name": "Graphic Design"
|
43
|
+
},
|
44
|
+
"type": {
|
45
|
+
"id": "1",
|
46
|
+
"name": "Full-time"
|
47
|
+
},
|
48
|
+
"company": {
|
49
|
+
"id": "affiniscape",
|
50
|
+
"name": "Affiniscape",
|
51
|
+
"url": "http:\/\/www.affiniscape.com",
|
52
|
+
"location": {
|
53
|
+
"id": "austintxus",
|
54
|
+
"name": "Austin, TX, US",
|
55
|
+
"city": "Austin",
|
56
|
+
"country": "US",
|
57
|
+
"lat": "30.2672",
|
58
|
+
"lng": "-97.7431",
|
59
|
+
"state": "TX"
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}],
|
63
|
+
"total": 2,
|
64
|
+
"perpage": 10,
|
65
|
+
"page": 1,
|
66
|
+
"pages": 1
|
67
|
+
},
|
68
|
+
"stat": "ok"
|
69
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"types":{"type":[{"id":"1","name":"Full-time"},{"id":"2","name":"Freelance"}]},"stat":"ok"}
|
data/test/helper.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'pathname'
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
gem 'shoulda', '>= 2.10.1'
|
6
|
+
gem 'jnunemaker-matchy', '0.4.0'
|
7
|
+
gem 'mocha', '0.9.4'
|
8
|
+
gem 'fakeweb', '>= 1.2.5'
|
9
|
+
|
10
|
+
require 'shoulda'
|
11
|
+
require 'matchy'
|
12
|
+
require 'mocha'
|
13
|
+
require 'fakeweb'
|
14
|
+
|
15
|
+
|
16
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
17
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
18
|
+
require 'authentic_jobs'
|
19
|
+
|
20
|
+
FakeWeb.allow_net_connect = false
|
21
|
+
|
22
|
+
class Test::Unit::TestCase
|
23
|
+
end
|
24
|
+
|
25
|
+
def fixture_file(filename)
|
26
|
+
return '' if filename == ''
|
27
|
+
file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/' + filename)
|
28
|
+
File.read(file_path)
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
def stub_get(url, filename, status=nil)
|
33
|
+
options = {:body => fixture_file(filename)}
|
34
|
+
options.merge!({:status => status}) unless status.nil?
|
35
|
+
|
36
|
+
FakeWeb.register_uri(:get, url, options)
|
37
|
+
end
|
38
|
+
|
39
|
+
def stub_post(url, filename)
|
40
|
+
FakeWeb.register_uri(:post, url, :body => fixture_file(filename))
|
41
|
+
end
|
42
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
require 'helper'
|
4
|
+
|
5
|
+
class TestAuthenticJobs < Test::Unit::TestCase
|
6
|
+
|
7
|
+
context "when authenticated" do
|
8
|
+
setup do
|
9
|
+
@client = AuthenticJobs.new('OU812')
|
10
|
+
end
|
11
|
+
|
12
|
+
should "return a list of companies" do
|
13
|
+
stub_get("http://www.authenticjobs.com/api/?api_key=OU812&method=aj.jobs.getCompanies", "companies.json")
|
14
|
+
companies = @client.companies
|
15
|
+
companies.first.name.should == 'Adura Technologies, Inc.'
|
16
|
+
companies.first.location.state.should == 'CA'
|
17
|
+
end
|
18
|
+
|
19
|
+
should "return a list of locations" do
|
20
|
+
stub_get("http://www.authenticjobs.com/api/?api_key=OU812&method=aj.jobs.getLocations", "locations.json")
|
21
|
+
locations = @client.locations
|
22
|
+
locations.first.name.should == 'Anywhere in USA'
|
23
|
+
locations.first.id.should == 'anywhereinusa'
|
24
|
+
end
|
25
|
+
|
26
|
+
should "return a listings via search" do
|
27
|
+
stub_get("http://www.authenticjobs.com/api/?api_key=OU812&method=aj.jobs.search", "search.json")
|
28
|
+
listings = @client.search
|
29
|
+
listings.first.title.should == 'Interactive Art Designer'
|
30
|
+
listings.first.company.name.should == 'Bazaarvoice'
|
31
|
+
end
|
32
|
+
|
33
|
+
should "return a list of job types" do
|
34
|
+
stub_get("http://www.authenticjobs.com/api/?api_key=OU812&method=aj.types.getList", "types.json")
|
35
|
+
types = @client.types
|
36
|
+
types.last.name.should == 'Freelance'
|
37
|
+
end
|
38
|
+
|
39
|
+
should "return a list of job categories" do
|
40
|
+
stub_get("http://www.authenticjobs.com/api/?api_key=OU812&method=aj.categories.getList", "categories.json")
|
41
|
+
categories = @client.categories
|
42
|
+
categories.first.name.should == 'Design'
|
43
|
+
end
|
44
|
+
|
45
|
+
should "handle error codes" do
|
46
|
+
stub_get("http://www.authenticjobs.com/api/?api_key=OU812&method=aj.categories.getList", "error.json")
|
47
|
+
lambda {@client.categories}.should raise_error(AuthenticJobsError)
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
end
|
metadata
ADDED
@@ -0,0 +1,133 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: authentic_jobs
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Wynn Netherland
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-12-19 00:00:00 -06:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: hashie
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ~>
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.1.3
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: httparty
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.4.5
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: shoulda
|
37
|
+
type: :development
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 2.10.1
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: jnunemaker-matchy
|
47
|
+
type: :development
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.4.0
|
54
|
+
version:
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mocha
|
57
|
+
type: :development
|
58
|
+
version_requirement:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 0.9.4
|
64
|
+
version:
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: fakeweb
|
67
|
+
type: :development
|
68
|
+
version_requirement:
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 1.2.5
|
74
|
+
version:
|
75
|
+
description: Ruby wrapper for the Authentic Jobs API
|
76
|
+
email: wynn.netherland@gmail.com
|
77
|
+
executables: []
|
78
|
+
|
79
|
+
extensions: []
|
80
|
+
|
81
|
+
extra_rdoc_files:
|
82
|
+
- LICENSE
|
83
|
+
- README.markdown
|
84
|
+
files:
|
85
|
+
- .document
|
86
|
+
- .gitignore
|
87
|
+
- LICENSE
|
88
|
+
- README.markdown
|
89
|
+
- Rakefile
|
90
|
+
- VERSION
|
91
|
+
- changelog.markdown
|
92
|
+
- examples/search.rb
|
93
|
+
- lib/authentic_jobs.rb
|
94
|
+
- test/fixtures/categories.json
|
95
|
+
- test/fixtures/companies.json
|
96
|
+
- test/fixtures/error.json
|
97
|
+
- test/fixtures/locations.json
|
98
|
+
- test/fixtures/search.json
|
99
|
+
- test/fixtures/types.json
|
100
|
+
- test/helper.rb
|
101
|
+
- test/test_authentic_jobs.rb
|
102
|
+
has_rdoc: true
|
103
|
+
homepage: http://github.com/pengwynn/authentic_jobs
|
104
|
+
licenses: []
|
105
|
+
|
106
|
+
post_install_message:
|
107
|
+
rdoc_options:
|
108
|
+
- --charset=UTF-8
|
109
|
+
require_paths:
|
110
|
+
- lib
|
111
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ">="
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: "0"
|
116
|
+
version:
|
117
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - ">="
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: "0"
|
122
|
+
version:
|
123
|
+
requirements: []
|
124
|
+
|
125
|
+
rubyforge_project:
|
126
|
+
rubygems_version: 1.3.5
|
127
|
+
signing_key:
|
128
|
+
specification_version: 3
|
129
|
+
summary: Ruby wrapper for the Authenic Jobs API
|
130
|
+
test_files:
|
131
|
+
- test/helper.rb
|
132
|
+
- test/test_authentic_jobs.rb
|
133
|
+
- examples/search.rb
|