authentic_jobs 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 \/>&nbsp;<br \/><strong>Who We Want:<\/strong><br \/>&nbsp;<br \/>Bazaarvoice is looking for a skilled and technically savvy visual\/web designer with superior HTML &amp; CSS skills. This is a high-impact role with responsibilities that include design of our corporate web &nbsp;sites (www.bazaarvoice.com, &nbsp;twitter.bazaarvoice.com &amp; www.bazaarblog.com) and creation of infographics &nbsp;and other design materials for the&nbsp;Product Marketing team.<br \/><br \/>Each team is different here at Bazaarvoice; we all bring our outside interests into BV daily.&nbsp; 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.&nbsp;<br \/>&nbsp;<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&nbsp; 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.&nbsp; 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. &nbsp;This role is one of the main points of interaction customers, prospects, employees, investors, job applicants, the press, and analysts have with our brand.&nbsp; The Marcom Designer is a face of Bazaarvoice.<br \/>&nbsp;<br \/><strong>In Sum:<\/strong><br \/>&nbsp;<br \/>Bazaarvoice is helping to shape social commerce.&nbsp; 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 \/>&nbsp;<br \/><br \/>&nbsp;<\/p><\/p>",
7
+ "perks": null,
8
+ "howto_apply": "PLEASE APPLY AT:<a href=\"\"><a href=\"http:\/\/www.jobvite.com\/j\/?cj=ouXfVfwl&amp;s=authentic+jobs\">http:\/\/www.jobvite.com\/j\/?cj=ouXfVfwl&amp;s=authentic+jobs<\/a>http:\/\/www.jobvite.com\/j\/?cj=ouXfVfwl&amp;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.&nbsp; 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&rsquo;s online presence, such as web user interface design, page layouts, promotional landing pages, online newsletters, advertising, and many additional online components.&nbsp; 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 &ndash; evaluate deliverables.<\/li>\r\n<li>Work proactively to address the team&rsquo;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&rsquo;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.&nbsp; 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.&nbsp; <\/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.&nbsp; 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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\r\n<p>Affiniscape&rsquo;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"}
@@ -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