job_central 1.5.4

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.sw?
2
+ .DS_Store
3
+ coverage
4
+ rdoc
5
+ pkg
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Michael Guterl
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,22 @@
1
+ = job_central
2
+
3
+ Ruby library for fetching employers and their respective jobs from JobCentral.
4
+
5
+ == Synopsis
6
+
7
+ require 'job_central'
8
+ employers = JobCentral::Employer.all
9
+ employer = employers.first
10
+ job = employer.jobs.first
11
+
12
+ employer.name # => "1105 Media, Inc."
13
+ job.title # => "New Products Writer"
14
+ job.industries # => ["Media / Publishing"]
15
+
16
+ == Requirements
17
+
18
+ * nokogiri
19
+
20
+ == Copyright
21
+
22
+ Copyright (c) 2009 Michael Guterl. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,49 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'yaml'
4
+
5
+ begin
6
+ require 'jeweler'
7
+ Jeweler::Tasks.new do |gem|
8
+ gem.name = "job_central"
9
+ gem.summary = %Q{}
10
+ gem.email = "mguterl@gmail.com"
11
+ gem.homepage = "http://github.com/mguterl/job_central"
12
+ gem.authors = ["Michael Guterl"]
13
+ gem.add_dependency("nokogiri", "> 1.2.3")
14
+
15
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
+ end
17
+ rescue LoadError
18
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
19
+ end
20
+
21
+ require 'spec/rake/spectask'
22
+ Spec::Rake::SpecTask.new(:spec) do |spec|
23
+ spec.libs << 'lib' << 'spec'
24
+ spec.spec_files = FileList['spec/**/*_spec.rb']
25
+ end
26
+
27
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
28
+ spec.libs << 'lib' << 'spec'
29
+ spec.pattern = 'spec/**/*_spec.rb'
30
+ spec.rcov = true
31
+ end
32
+
33
+
34
+ task :default => :spec
35
+
36
+ require 'rake/rdoctask'
37
+ Rake::RDocTask.new do |rdoc|
38
+ if File.exist?('VERSION.yml')
39
+ config = YAML.load(File.read('VERSION.yml'))
40
+ version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
41
+ else
42
+ version = ""
43
+ end
44
+
45
+ rdoc.rdoc_dir = 'rdoc'
46
+ rdoc.title = "job_central #{version}"
47
+ rdoc.rdoc_files.include('README*')
48
+ rdoc.rdoc_files.include('lib/**/*.rb')
49
+ end
data/VERSION.yml ADDED
@@ -0,0 +1,5 @@
1
+ ---
2
+ :patch: 4
3
+ :build:
4
+ :major: 1
5
+ :minor: 5
@@ -0,0 +1,56 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{job_central}
8
+ s.version = "1.5.4"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Michael Guterl"]
12
+ s.date = %q{2010-11-08}
13
+ s.email = %q{mguterl@gmail.com}
14
+ s.extra_rdoc_files = [
15
+ "LICENSE",
16
+ "README.rdoc"
17
+ ]
18
+ s.files = [
19
+ ".document",
20
+ ".gitignore",
21
+ "LICENSE",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "VERSION.yml",
25
+ "job_central.gemspec",
26
+ "lib/job_central.rb",
27
+ "spec/fixtures/1105media-2.xml",
28
+ "spec/fixtures/1105media.xml",
29
+ "spec/fixtures/employers.html",
30
+ "spec/job_central_spec.rb",
31
+ "spec/spec_helper.rb"
32
+ ]
33
+ s.homepage = %q{http://github.com/mguterl/job_central}
34
+ s.rdoc_options = ["--charset=UTF-8"]
35
+ s.require_paths = ["lib"]
36
+ s.rubygems_version = %q{1.3.7}
37
+ s.summary = %q{}
38
+ s.test_files = [
39
+ "spec/job_central_spec.rb",
40
+ "spec/spec_helper.rb"
41
+ ]
42
+
43
+ if s.respond_to? :specification_version then
44
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
45
+ s.specification_version = 3
46
+
47
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
48
+ s.add_runtime_dependency(%q<nokogiri>, ["> 1.2.3"])
49
+ else
50
+ s.add_dependency(%q<nokogiri>, ["> 1.2.3"])
51
+ end
52
+ else
53
+ s.add_dependency(%q<nokogiri>, ["> 1.2.3"])
54
+ end
55
+ end
56
+
@@ -0,0 +1,189 @@
1
+ require 'rubygems'
2
+ require 'time'
3
+ require 'date'
4
+ require 'open-uri'
5
+ require 'nokogiri'
6
+
7
+ module JobCentral
8
+
9
+ BASE_URI = "http://xmlfeed.jobcentral.com".freeze
10
+
11
+ DATE_FORMAT = "%m/%d/%Y %H:%M:%S %p".freeze
12
+
13
+ DEFAULT_RETRY_LIMIT = 3
14
+
15
+ RESCUABLE_ERRORS = [OpenURI::HTTPError].freeze
16
+
17
+ ParseError = Class.new(StandardError)
18
+
19
+ module Helpers
20
+
21
+ extend self
22
+
23
+ def parse_date(date)
24
+ DateTime.strptime(date, DATE_FORMAT)
25
+ end
26
+
27
+ def open(*args, &block)
28
+ Kernel.open(*args, &block)
29
+ rescue OpenURI::HTTPError => e
30
+ retries ||= 0
31
+ if retries < DEFAULT_RETRY_LIMIT
32
+ retries += 1
33
+ retry
34
+ else
35
+ raise e
36
+ end
37
+ end
38
+
39
+ end
40
+
41
+ class Employer < Struct.new(:name, :date_updated)
42
+
43
+ include Helpers
44
+ extend Helpers
45
+
46
+ class << self
47
+
48
+ def all
49
+ parse(BASE_URI + "/index.asp")
50
+ end
51
+
52
+ def members
53
+ parse(BASE_URI + "/index.asp?member=member")
54
+ end
55
+
56
+ def parse(uri)
57
+ html = Nokogiri::HTML open(uri)
58
+ employer_rows = ((html/"table")[-1]/"tr")
59
+ employer_hash = Hash.new { |h, k| h[k] = Employer.new }
60
+
61
+ employer_rows.each_with_index do |element, idx|
62
+ next unless idx >= 2 # skip header rows
63
+ attributes = element/"td"
64
+ name = attributes[0].text.strip
65
+
66
+ employer = employer_hash[name]
67
+ employer.name = name
68
+ employer.date_updated = [employer.date_updated, parse_date(attributes[3].text)].compact.max
69
+ employer.feeds << BASE_URI + (attributes[1]/"a").attr('href')
70
+
71
+ end
72
+ employers = employer_hash.values
73
+ employers.extend Finders
74
+ employers
75
+ end
76
+
77
+ end
78
+
79
+ def jobs
80
+ feeds.map do |feed|
81
+ Job.from_xml(feed)
82
+ end.flatten
83
+ end
84
+
85
+ def feeds
86
+ @feeds ||= []
87
+ end
88
+
89
+ end
90
+
91
+ module Finders
92
+
93
+ def find_by_name(*names)
94
+ select { |employer| names.include?(employer.name) }
95
+ end
96
+
97
+ end
98
+
99
+ class Job < Struct.new(:guid, :title, :description, :link, :imagelink,
100
+ :industries, :expiration_date, :employer_name,
101
+ :location, :city, :state, :zip_code, :country)
102
+
103
+ include Helpers
104
+ extend Helpers
105
+
106
+ def self.from_xml(uri)
107
+ xml = Nokogiri::XML open(uri)
108
+ jobs = []
109
+ (xml/"job").each do |element|
110
+ location = extract_location(element)
111
+ parsed_location = LocationParser.parse(location)
112
+ job = Job.new
113
+ job.guid = extract_text(element, "guid")
114
+ job.title = extract_text(element, "title")
115
+ job.description = extract_text(element, "description")
116
+ job.link = extract_text(element, "link")
117
+ job.imagelink = extract_text(element, "imagelink")
118
+ job.expiration_date = Date.parse(extract_text(element, "expiration_date"))
119
+ job.employer_name = extract_text(element, "employer")
120
+ job.location = location
121
+ job.city = parsed_location[:city]
122
+ job.state = parsed_location[:state]
123
+ job.zip_code = parsed_location[:zip_code]
124
+ job.country = parsed_location[:country]
125
+ element.css("industry").each do |industry|
126
+ job.industries << industry.text
127
+ end
128
+ jobs << job
129
+ end
130
+ jobs
131
+ end
132
+
133
+ def self.extract_text(element, tag)
134
+ element = element.at(tag)
135
+ element && element.text
136
+ end
137
+
138
+ def self.extract_location(element)
139
+ location = extract_text(element, "location")
140
+ location.gsub(/^\,\s+/, '')
141
+ end
142
+
143
+ def industries
144
+ @industries ||= []
145
+ end
146
+ end
147
+
148
+ class LocationParser
149
+ def self.parse(string)
150
+ parser = new
151
+ parser.parse(string)
152
+ end
153
+
154
+ def parse(string)
155
+ pieces = string.split(', ')
156
+ case pieces.size
157
+ when 4
158
+ {
159
+ :city => parse_piece(pieces[0]),
160
+ :state => parse_piece(pieces[1]),
161
+ :zip_code => parse_piece(pieces[2]),
162
+ :country => parse_piece(pieces[3])
163
+ }
164
+ when 3
165
+ {
166
+ :city => parse_piece(pieces[0]),
167
+ :state => parse_piece(pieces[1]),
168
+ :zip_code => nil,
169
+ :country => parse_piece(pieces[2])
170
+ }
171
+ when 2
172
+ {
173
+ :city => nil,
174
+ :state => parse_piece(pieces[0]),
175
+ :zip_code => nil,
176
+ :country => parse_piece(pieces[1])
177
+ }
178
+ else
179
+ {}
180
+ end
181
+ end
182
+
183
+ private
184
+ def parse_piece(piece)
185
+ return nil if piece.empty?
186
+ piece
187
+ end
188
+ end
189
+ end
@@ -0,0 +1,251 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <jobs>
3
+ <job>
4
+ <title><![CDATA[New Products Writer]]></title>
5
+ <description><![CDATA[Job Details
6
+ New Products Writer
7
+ Send Job to Friend &amp;#187;
8
+ Apply Now &amp;#187;
9
+ Location: Dallas, TX
10
+ Department: Editorial
11
+ Job Type: Hire
12
+ Openings: 0 open, out of 1 available
13
+
14
+ *
15
+ 1105 Media is looking for a detail-oriented New Products Writer in its Dallas, Texas office who can write and edit new products for several B2B magazines.
16
+ Position Profile:
17
+
18
+ As a New Products Writer, you will be responsible for writing 120 to 200 products per month. This requires excellent copyediting and organizational skills and the ability to describe the features and benefits of a product in 80 words or fewer. Occasionally you will be needed to proof articles and pages.
19
+
20
+ Responsibilities include:
21
+ * Writing 120 to 200 products per month.
22
+ * Copyediting stories and page proofs.
23
+ * Helping the editorial team post products to Web sites.
24
+ * Sending out monthly e-mail blasts for new products.
25
+ * Producing e-newsletters for magazines.
26
+
27
+ The ideal candidate for this position will possess the following qualifications:
28
+ * At least one year professional experience, preferably in communications or journalism.
29
+ * BA/BS in Journalism/English/Communications or related field of study.
30
+ Experience in the following areas will be considered a plus:
31
+ * HMTL coding
32
+ * B2B publishing
33
+ * Sitecore CMS
34
+ 1105 Media is based in Chatsworth,CA, with primary offices throughtout the United States. The company was formed in April 2006 by Nautic Partners LLC, Alta Communications, and President/CEO Neal Vitale.
35
+ We offer a competitive salary and a comprehensive benefits package that includes medical/dental/vision insurance, life insurance, disability insurance, 401(k) plan, and a generous paid time off (PTO)/holiday plan.
36
+ We are an equal opportunity employer.
37
+ Send Job to Friend &amp;#187;
38
+ Apply Now &amp;#187;
39
+ ]]></description>
40
+ <link><![CDATA[http://jcnlx.com/3eca112f27834df8b7dbd803d6ecf097105]]></link>
41
+ <imagelink>http://images.jobcentral.com/companylogos/1105media.gif</imagelink>
42
+ <guid isPermaLink="false"><![CDATA[1105media-24065]]></guid>
43
+ <industries>
44
+ <industry><![CDATA[Media / Publishing]]></industry>
45
+ </industries>
46
+ <expiration_date>2009-04-16</expiration_date>
47
+ <employer><![CDATA[1105 Media, Inc.]]></employer>
48
+ <location><![CDATA[Dallas, TX, 75219, USA]]></location>
49
+ </job>
50
+ <job>
51
+ <title><![CDATA[Copywriter]]></title>
52
+ <description><![CDATA[Job Details
53
+ Copywriter
54
+ Send Job to Friend &amp;#187;
55
+ Apply Now &amp;#187;
56
+ Location: San Francisco, CA
57
+ Department: Attendee Marketing
58
+ Job Type: Hire
59
+ Openings: 1 open, out of 1 available
60
+
61
+ *
62
+ *
63
+
64
+ As a part of our creative team, you will be responsible for building and executing direct response programs in print, email, and direct mail and online to drive response for a portfolio of live business events. Working closely with operational managers, marketing directors, show/conference directors, and other members of the creative team, your persuasive and proven copy skills will support our event/conference brands in print and online, sales strategies and help us drive revenue and profits.
65
+
66
+ General responsibilities will include:
67
+ * Participate in internal strategy/brainstorm sessions with staff to develop new creative ideas or campaign tactics/content.
68
+ * Work closely with graphic designers to create marketing materials.
69
+ * Ensure web content meets editorial, quality and industry standards for web usability and accessibility.
70
+
71
+ The ideal candidate will possess the following qualifications:
72
+ * BA preferred in Communications, Journalism, Marketing or related field.
73
+ * Min. 5 years experience as a copywriter, with extensive experience in direct response marketing.
74
+ * Ability to come up with creative solutions and translate analytical skills or facts into copy concepts.
75
+ * Possess positive attitude, patient disposition with a respect for collaborative creativity.
76
+ * Ability to manage multiple projects with aggressive deadlines and to deliver creative copy solutions on focus and schedule.
77
+ * Demonstrated skills in generating direct response copy that produces results for emails, web sites, direct mail, newsletters, brochures, and print and web advertisements.
78
+ * Ability to deal with unexpected delays, revisions and changing priorities.
79
+ * Possess high level of attention to detail with strong sense of professionalism and responsibility.
80
+ * Proficient in MS Office.
81
+ * Possess working knowledge of the following: InDesign CS, HTML, and CSS. QuarkXPress and XHTML a plus.
82
+
83
+
84
+ * We offer a competitive salary and a comprehensive benefits package which includes: Medical/dental/vision insurance, life/AD&amp;amp;D insurance, long and short term disability insurance, 401(k) plan, and a generous paid time off program
85
+
86
+
87
+ Send Job to Friend &amp;#187;
88
+ Apply Now &amp;#187;
89
+ ]]></description>
90
+ <link><![CDATA[http://jcnlx.com/4ba6790e27b6482fbaa505bedfb5c1f0105]]></link>
91
+ <imagelink>http://images.jobcentral.com/companylogos/1105media.gif</imagelink>
92
+ <guid isPermaLink="false"><![CDATA[1105media-37413]]></guid>
93
+ <industries>
94
+ <industry><![CDATA[Media / Publishing]]></industry>
95
+ </industries>
96
+ <expiration_date>2009-04-16</expiration_date>
97
+ <employer><![CDATA[1105 Media, Inc.]]></employer>
98
+ <location><![CDATA[San Francisco, CA, 94175, USA]]></location>
99
+ </job>
100
+ <job>
101
+ <title><![CDATA[Senior Web Developer (Sitecore)]]></title>
102
+ <description><![CDATA[Job Details
103
+ Senior Web Developer (Sitecore)
104
+ Send Job to Friend &amp;#187;
105
+ Apply Now &amp;#187;
106
+ Location: Chatsworth, CA
107
+ Department: Web Applications
108
+ Job Type: Hire
109
+ Openings: 1 open, out of 1 available
110
+ 1105 Media, Inc. is looking for a strong Web Developer with experience in Web-based applications using C# and ASP.NET. This position will contribute to the design and development of our CMS solution implemented on Sitecore. The ideal candidate is motivated, has strong C# development skills on Sitecore, and enjoys working in a small collaborative environment. Knowledge of Coveo Enterprise Search is a definite plus.
111
+ The ideal candidate will have the following qualifications:
112
+ * 2+ years hands-on experience using Sitecore, ASP.NET and C#.
113
+ * 2+ years experience with Linq, SQL/TSQL and SQL Server 2005.
114
+ * Ability to design database tables, stored procedures, and SQL queries.
115
+ * Experience with VS2008, source code control, and task-tracking systems such as OnTime.
116
+ * Experience developing data-intensive, high-traffic Web applications that deliver complex content over WANs.
117
+ * Ability to work in a small team, taking ownership of solutions from kick-off to launch. Experience in a startup or similar high-energy environment a plus.
118
+ * Possess agile methodologies, test and verify development, ability to work with other developers and software engineers, and ability to effectively communicate with business units.
119
+ * Ability to translate markup designs into ASPX.
120
+ * Bachelor degree in Computer Science or related major.
121
+ * Experience addressing performance and scalability issues a plus.
122
+ * Knowledge of Internet and Web technologies and best practices.
123
+ * Highly motivated, detail-oriented with excellent problem solving skills and a passion for creating highly usable Web sites.
124
+ We offer a competitive salary and a comprehensive benefits package that includes medical/dental/vision insurance, life insurance, disability insurance, 401(k) plan and a generous paid time off (PTO)/holiday plan.
125
+ We are an equal opportunity employer.
126
+ Send Job to Friend &amp;#187;
127
+ Apply Now &amp;#187;
128
+ ]]></description>
129
+ <link><![CDATA[http://jcnlx.com/b7bf54d64a734617a86f39723069a24e105]]></link>
130
+ <imagelink>http://images.jobcentral.com/companylogos/1105media.gif</imagelink>
131
+ <guid isPermaLink="false"><![CDATA[1105media-72210]]></guid>
132
+ <industries>
133
+ <industry><![CDATA[Media / Publishing]]></industry>
134
+ </industries>
135
+ <expiration_date>2009-04-16</expiration_date>
136
+ <employer><![CDATA[1105 Media, Inc.]]></employer>
137
+ <location><![CDATA[Chatsworth, CA, 91311, USA]]></location>
138
+ </job>
139
+ <job>
140
+ <title><![CDATA[Print Production Coordinator]]></title>
141
+ <description><![CDATA[Job Details
142
+ Print Production Coordinator
143
+ Send Job to Friend &amp;#187;
144
+ Apply Now &amp;#187;
145
+ Location: Chatsworth, CA
146
+ Department: Print &amp; Online Production
147
+ Job Type: Hire
148
+ Openings: 1 open, out of 1 available
149
+
150
+ 1105 Media, Inc. is searching for a Print Production Coordinator to provide vital support to the Print Production department of our award-winning publishing company. The Print Production Coordinator will need to work well and thrive in a fast paced environment and handle time sensitive requests.
151
+ Daily responsibilities include:
152
+ * Creation of the publication imposition/printer layout
153
+ * Data entry of production information
154
+ * Customer service support for sales and client base
155
+ * Quality Control
156
+ * Adherence to production schedule
157
+ * Manage sales reports for print publications and provide to sales team
158
+ * Traffic advertising materials for print publications
159
+ Required skills and experience include:
160
+ * Familiar with DataTrax and Impoze
161
+ * Knowledge of Microsoft Excel
162
+ * Working knowledge of reporting systems for reports to be distributed to the executive team, publishers, sales team and advertisers
163
+ * Strong communication skills (including email and phone) to work closely with sales and clients
164
+ * Excellent organizational skills
165
+ * Time management skills, including setting priorities and adapting to changes quickly
166
+ * Team player with ability to take direction and work independently as needed
167
+ We offer a competitive salary and a comprehensive benefits package that includes medical/dental/vision insurance, life insurance, disability insurance, 401(k) plan and a generous paid time off (PTO)/holiday plan.
168
+ We are an equal opportunity employer.
169
+ Send Job to Friend &amp;#187;
170
+ Apply Now &amp;#187;
171
+ ]]></description>
172
+ <link><![CDATA[http://jcnlx.com/15793d3069c044119bd66089db3a9fb8105]]></link>
173
+ <imagelink>http://images.jobcentral.com/companylogos/1105media.gif</imagelink>
174
+ <guid isPermaLink="false"><![CDATA[1105media-71808]]></guid>
175
+ <industries>
176
+ <industry><![CDATA[Media / Publishing]]></industry>
177
+ </industries>
178
+ <expiration_date>2009-04-16</expiration_date>
179
+ <employer><![CDATA[1105 Media, Inc.]]></employer>
180
+ <location><![CDATA[Chatsworth, CA, 91311, USA]]></location>
181
+ </job>
182
+ <job>
183
+ <title><![CDATA[Graphics Reporter/Copy Editor]]></title>
184
+ <description><![CDATA[Job Details
185
+ Graphics Reporter/Copy Editor
186
+ Send Job to Friend &amp;#187;
187
+ Apply Now &amp;#187;
188
+ Location: Falls Church, VA
189
+ Department: Art &amp; Production
190
+ Job Type: Hire
191
+ Openings: 1 open, out of 1 available
192
+ 1105 Government Information Group, a division of 1105 Media, Inc., is seeking a creative Graphics Reporter who has a sharp eye for details and can work with writers and reporters to provide detailed data for information graphics. The position includes a significant amount of copy editing and a talent for explaining dense data concisely. The position reports to the Creative Director and involves close interaction with reporters, editors and graphic artists. We are seeking an energetic, hard-working individual who is eager to take on new challenges.
193
+ The ideal candidate is a strong writer who:
194
+ * Can critically review numbers to identify patterns and trends.
195
+ * Has ability to clearly depict and explain raw information in charts and graphics.
196
+ * Has one to two years of professional experience in a journalism, editorial, or research position.
197
+ * Has a four year degree; journalism or communications-related major a plus.
198
+ * Has a background or interest in technology and its application in government.
199
+ * Has experience in working with Web software, such as Flash and Dreamweaver
200
+ * Collaborates well with others.
201
+ We offer a competitive salary and a comprehensive benefits package that includes medical/dental/vision insurance, life insurance, disability insurance, 401(k) plan and a generous paid time off (PTO)/holiday plan.
202
+ We are an equal opportunity employer.
203
+ Send Job to Friend &amp;#187;
204
+ Apply Now &amp;#187;
205
+ ]]></description>
206
+ <link><![CDATA[http://jcnlx.com/2e9252a5120345cea95dfad411124b71105]]></link>
207
+ <imagelink>http://images.jobcentral.com/companylogos/1105media.gif</imagelink>
208
+ <guid isPermaLink="false"><![CDATA[1105media-73028]]></guid>
209
+ <industries>
210
+ <industry><![CDATA[Media / Publishing]]></industry>
211
+ </industries>
212
+ <expiration_date>2009-04-16</expiration_date>
213
+ <employer><![CDATA[1105 Media, Inc.]]></employer>
214
+ <location><![CDATA[Falls Church, VA, 22047, USA]]></location>
215
+ </job>
216
+ <job>
217
+ <title><![CDATA[Corporate Database Manager]]></title>
218
+ <description><![CDATA[Job Details
219
+ Corporate Database Manager
220
+ Send Job to Friend &amp;#187;
221
+ Apply Now &amp;#187;
222
+ Location: Chatsworth, CA
223
+ Department:
224
+ Job Type: Hire
225
+ Openings: 1 open, out of 1 available
226
+
227
+ 1105 Media Inc., an integrated business-to-business information and media company, has an opening for a Corporate Database Manager position in the Data Services department.
228
+ As a Corporate Database Manager, you will manage the 1105 Media Master Database. This includes all build rules, overseeing the regular feeds of several hundred lists, and maintaining the accuracy of permission levels. You will create new product feeds into the Master Database, regularly check specific segments as QC points, implement data hygiene, and create and manage reports. This position involves providing training to 1105 Media employees, individually and in groups, on using the Master Database as well as responding and helping with any Master Database related questions. You will work closely with our Master Database vendor to resolve any issues, questions, fixes and upgrades. Additional responsibilities include reviewing policies, procedures, and adjusting processes as need be. No technical programming and/or development skills are necessary for this position.
229
+ JOB QUALIFICATIONS
230
+ * Minimum 2 years managing databases required
231
+ * Strong verbal and written communication skills
232
+ * Very detail orientated and organized
233
+ * Excellent troubleshooting ability
234
+ * Multi-tasks and prioritizes effectively and quickly
235
+ * Manages pressure well
236
+ This is a position in a fast-paced environment, for a company with great benefits at the intersection of industries including publishing, marketing, technology and advertising.
237
+ We are an equal opportunity employer.
238
+ Send Job to Friend &amp;#187;
239
+ Apply Now &amp;#187;
240
+ ]]></description>
241
+ <link><![CDATA[http://jcnlx.com/7eaa099cedc549c39ad63f2f3e763606105]]></link>
242
+ <imagelink>http://images.jobcentral.com/companylogos/1105media.gif</imagelink>
243
+ <guid isPermaLink="false"><![CDATA[1105media-64627]]></guid>
244
+ <industries>
245
+ <industry><![CDATA[Media / Publishing]]></industry>
246
+ </industries>
247
+ <expiration_date>2009-04-16</expiration_date>
248
+ <employer><![CDATA[1105 Media, Inc.]]></employer>
249
+ <location><![CDATA[Chatsworth, CA, 91311, USA]]></location>
250
+ </job>
251
+ </jobs>
@@ -0,0 +1,251 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <jobs>
3
+ <job>
4
+ <title><![CDATA[New Products Writer]]></title>
5
+ <description><![CDATA[Job Details
6
+ New Products Writer
7
+ Send Job to Friend &amp;#187;
8
+ Apply Now &amp;#187;
9
+ Location: Dallas, TX
10
+ Department: Editorial
11
+ Job Type: Hire
12
+ Openings: 0 open, out of 1 available
13
+
14
+ *
15
+ 1105 Media is looking for a detail-oriented New Products Writer in its Dallas, Texas office who can write and edit new products for several B2B magazines.
16
+ Position Profile:
17
+
18
+ As a New Products Writer, you will be responsible for writing 120 to 200 products per month. This requires excellent copyediting and organizational skills and the ability to describe the features and benefits of a product in 80 words or fewer. Occasionally you will be needed to proof articles and pages.
19
+
20
+ Responsibilities include:
21
+ * Writing 120 to 200 products per month.
22
+ * Copyediting stories and page proofs.
23
+ * Helping the editorial team post products to Web sites.
24
+ * Sending out monthly e-mail blasts for new products.
25
+ * Producing e-newsletters for magazines.
26
+
27
+ The ideal candidate for this position will possess the following qualifications:
28
+ * At least one year professional experience, preferably in communications or journalism.
29
+ * BA/BS in Journalism/English/Communications or related field of study.
30
+ Experience in the following areas will be considered a plus:
31
+ * HMTL coding
32
+ * B2B publishing
33
+ * Sitecore CMS
34
+ 1105 Media is based in Chatsworth,CA, with primary offices throughtout the United States. The company was formed in April 2006 by Nautic Partners LLC, Alta Communications, and President/CEO Neal Vitale.
35
+ We offer a competitive salary and a comprehensive benefits package that includes medical/dental/vision insurance, life insurance, disability insurance, 401(k) plan, and a generous paid time off (PTO)/holiday plan.
36
+ We are an equal opportunity employer.
37
+ Send Job to Friend &amp;#187;
38
+ Apply Now &amp;#187;
39
+ ]]></description>
40
+ <link><![CDATA[http://jcnlx.com/3eca112f27834df8b7dbd803d6ecf097105]]></link>
41
+ <imagelink>http://images.jobcentral.com/companylogos/1105media.gif</imagelink>
42
+ <guid isPermaLink="false"><![CDATA[1105media-24064]]></guid>
43
+ <industries>
44
+ <industry><![CDATA[Media / Publishing]]></industry>
45
+ </industries>
46
+ <expiration_date>2009-04-16</expiration_date>
47
+ <employer><![CDATA[1105 Media, Inc.]]></employer>
48
+ <location><![CDATA[Dallas, TX, 75219, USA]]></location>
49
+ </job>
50
+ <job>
51
+ <title><![CDATA[Copywriter]]></title>
52
+ <description><![CDATA[Job Details
53
+ Copywriter
54
+ Send Job to Friend &amp;#187;
55
+ Apply Now &amp;#187;
56
+ Location: San Francisco, CA
57
+ Department: Attendee Marketing
58
+ Job Type: Hire
59
+ Openings: 1 open, out of 1 available
60
+
61
+ *
62
+ *
63
+
64
+ As a part of our creative team, you will be responsible for building and executing direct response programs in print, email, and direct mail and online to drive response for a portfolio of live business events. Working closely with operational managers, marketing directors, show/conference directors, and other members of the creative team, your persuasive and proven copy skills will support our event/conference brands in print and online, sales strategies and help us drive revenue and profits.
65
+
66
+ General responsibilities will include:
67
+ * Participate in internal strategy/brainstorm sessions with staff to develop new creative ideas or campaign tactics/content.
68
+ * Work closely with graphic designers to create marketing materials.
69
+ * Ensure web content meets editorial, quality and industry standards for web usability and accessibility.
70
+
71
+ The ideal candidate will possess the following qualifications:
72
+ * BA preferred in Communications, Journalism, Marketing or related field.
73
+ * Min. 5 years experience as a copywriter, with extensive experience in direct response marketing.
74
+ * Ability to come up with creative solutions and translate analytical skills or facts into copy concepts.
75
+ * Possess positive attitude, patient disposition with a respect for collaborative creativity.
76
+ * Ability to manage multiple projects with aggressive deadlines and to deliver creative copy solutions on focus and schedule.
77
+ * Demonstrated skills in generating direct response copy that produces results for emails, web sites, direct mail, newsletters, brochures, and print and web advertisements.
78
+ * Ability to deal with unexpected delays, revisions and changing priorities.
79
+ * Possess high level of attention to detail with strong sense of professionalism and responsibility.
80
+ * Proficient in MS Office.
81
+ * Possess working knowledge of the following: InDesign CS, HTML, and CSS. QuarkXPress and XHTML a plus.
82
+
83
+
84
+ * We offer a competitive salary and a comprehensive benefits package which includes: Medical/dental/vision insurance, life/AD&amp;amp;D insurance, long and short term disability insurance, 401(k) plan, and a generous paid time off program
85
+
86
+
87
+ Send Job to Friend &amp;#187;
88
+ Apply Now &amp;#187;
89
+ ]]></description>
90
+ <link><![CDATA[http://jcnlx.com/4ba6790e27b6482fbaa505bedfb5c1f0105]]></link>
91
+ <imagelink>http://images.jobcentral.com/companylogos/1105media.gif</imagelink>
92
+ <guid isPermaLink="false"><![CDATA[1105media-37412]]></guid>
93
+ <industries>
94
+ <industry><![CDATA[Media / Publishing]]></industry>
95
+ </industries>
96
+ <expiration_date>2009-04-16</expiration_date>
97
+ <employer><![CDATA[1105 Media, Inc.]]></employer>
98
+ <location><![CDATA[San Francisco, CA, 94175, USA]]></location>
99
+ </job>
100
+ <job>
101
+ <title><![CDATA[Senior Web Developer (Sitecore)]]></title>
102
+ <description><![CDATA[Job Details
103
+ Senior Web Developer (Sitecore)
104
+ Send Job to Friend &amp;#187;
105
+ Apply Now &amp;#187;
106
+ Location: Chatsworth, CA
107
+ Department: Web Applications
108
+ Job Type: Hire
109
+ Openings: 1 open, out of 1 available
110
+ 1105 Media, Inc. is looking for a strong Web Developer with experience in Web-based applications using C# and ASP.NET. This position will contribute to the design and development of our CMS solution implemented on Sitecore. The ideal candidate is motivated, has strong C# development skills on Sitecore, and enjoys working in a small collaborative environment. Knowledge of Coveo Enterprise Search is a definite plus.
111
+ The ideal candidate will have the following qualifications:
112
+ * 2+ years hands-on experience using Sitecore, ASP.NET and C#.
113
+ * 2+ years experience with Linq, SQL/TSQL and SQL Server 2005.
114
+ * Ability to design database tables, stored procedures, and SQL queries.
115
+ * Experience with VS2008, source code control, and task-tracking systems such as OnTime.
116
+ * Experience developing data-intensive, high-traffic Web applications that deliver complex content over WANs.
117
+ * Ability to work in a small team, taking ownership of solutions from kick-off to launch. Experience in a startup or similar high-energy environment a plus.
118
+ * Possess agile methodologies, test and verify development, ability to work with other developers and software engineers, and ability to effectively communicate with business units.
119
+ * Ability to translate markup designs into ASPX.
120
+ * Bachelor degree in Computer Science or related major.
121
+ * Experience addressing performance and scalability issues a plus.
122
+ * Knowledge of Internet and Web technologies and best practices.
123
+ * Highly motivated, detail-oriented with excellent problem solving skills and a passion for creating highly usable Web sites.
124
+ We offer a competitive salary and a comprehensive benefits package that includes medical/dental/vision insurance, life insurance, disability insurance, 401(k) plan and a generous paid time off (PTO)/holiday plan.
125
+ We are an equal opportunity employer.
126
+ Send Job to Friend &amp;#187;
127
+ Apply Now &amp;#187;
128
+ ]]></description>
129
+ <link><![CDATA[http://jcnlx.com/b7bf54d64a734617a86f39723069a24e105]]></link>
130
+ <imagelink>http://images.jobcentral.com/companylogos/1105media.gif</imagelink>
131
+ <guid isPermaLink="false"><![CDATA[1105media-72209]]></guid>
132
+ <industries>
133
+ <industry><![CDATA[Media / Publishing]]></industry>
134
+ </industries>
135
+ <expiration_date>2009-04-16</expiration_date>
136
+ <employer><![CDATA[1105 Media, Inc.]]></employer>
137
+ <location><![CDATA[Chatsworth, CA, 91311, USA]]></location>
138
+ </job>
139
+ <job>
140
+ <title><![CDATA[Print Production Coordinator]]></title>
141
+ <description><![CDATA[Job Details
142
+ Print Production Coordinator
143
+ Send Job to Friend &amp;#187;
144
+ Apply Now &amp;#187;
145
+ Location: Chatsworth, CA
146
+ Department: Print &amp; Online Production
147
+ Job Type: Hire
148
+ Openings: 1 open, out of 1 available
149
+
150
+ 1105 Media, Inc. is searching for a Print Production Coordinator to provide vital support to the Print Production department of our award-winning publishing company. The Print Production Coordinator will need to work well and thrive in a fast paced environment and handle time sensitive requests.
151
+ Daily responsibilities include:
152
+ * Creation of the publication imposition/printer layout
153
+ * Data entry of production information
154
+ * Customer service support for sales and client base
155
+ * Quality Control
156
+ * Adherence to production schedule
157
+ * Manage sales reports for print publications and provide to sales team
158
+ * Traffic advertising materials for print publications
159
+ Required skills and experience include:
160
+ * Familiar with DataTrax and Impoze
161
+ * Knowledge of Microsoft Excel
162
+ * Working knowledge of reporting systems for reports to be distributed to the executive team, publishers, sales team and advertisers
163
+ * Strong communication skills (including email and phone) to work closely with sales and clients
164
+ * Excellent organizational skills
165
+ * Time management skills, including setting priorities and adapting to changes quickly
166
+ * Team player with ability to take direction and work independently as needed
167
+ We offer a competitive salary and a comprehensive benefits package that includes medical/dental/vision insurance, life insurance, disability insurance, 401(k) plan and a generous paid time off (PTO)/holiday plan.
168
+ We are an equal opportunity employer.
169
+ Send Job to Friend &amp;#187;
170
+ Apply Now &amp;#187;
171
+ ]]></description>
172
+ <link><![CDATA[http://jcnlx.com/15793d3069c044119bd66089db3a9fb8105]]></link>
173
+ <imagelink>http://images.jobcentral.com/companylogos/1105media.gif</imagelink>
174
+ <guid isPermaLink="false"><![CDATA[1105media-71807]]></guid>
175
+ <industries>
176
+ <industry><![CDATA[Media / Publishing]]></industry>
177
+ </industries>
178
+ <expiration_date>2009-04-16</expiration_date>
179
+ <employer><![CDATA[1105 Media, Inc.]]></employer>
180
+ <location><![CDATA[Chatsworth, CA, 91311, USA]]></location>
181
+ </job>
182
+ <job>
183
+ <title><![CDATA[Graphics Reporter/Copy Editor]]></title>
184
+ <description><![CDATA[Job Details
185
+ Graphics Reporter/Copy Editor
186
+ Send Job to Friend &amp;#187;
187
+ Apply Now &amp;#187;
188
+ Location: Falls Church, VA
189
+ Department: Art &amp; Production
190
+ Job Type: Hire
191
+ Openings: 1 open, out of 1 available
192
+ 1105 Government Information Group, a division of 1105 Media, Inc., is seeking a creative Graphics Reporter who has a sharp eye for details and can work with writers and reporters to provide detailed data for information graphics. The position includes a significant amount of copy editing and a talent for explaining dense data concisely. The position reports to the Creative Director and involves close interaction with reporters, editors and graphic artists. We are seeking an energetic, hard-working individual who is eager to take on new challenges.
193
+ The ideal candidate is a strong writer who:
194
+ * Can critically review numbers to identify patterns and trends.
195
+ * Has ability to clearly depict and explain raw information in charts and graphics.
196
+ * Has one to two years of professional experience in a journalism, editorial, or research position.
197
+ * Has a four year degree; journalism or communications-related major a plus.
198
+ * Has a background or interest in technology and its application in government.
199
+ * Has experience in working with Web software, such as Flash and Dreamweaver
200
+ * Collaborates well with others.
201
+ We offer a competitive salary and a comprehensive benefits package that includes medical/dental/vision insurance, life insurance, disability insurance, 401(k) plan and a generous paid time off (PTO)/holiday plan.
202
+ We are an equal opportunity employer.
203
+ Send Job to Friend &amp;#187;
204
+ Apply Now &amp;#187;
205
+ ]]></description>
206
+ <link><![CDATA[http://jcnlx.com/2e9252a5120345cea95dfad411124b71105]]></link>
207
+ <imagelink>http://images.jobcentral.com/companylogos/1105media.gif</imagelink>
208
+ <guid isPermaLink="false"><![CDATA[1105media-73027]]></guid>
209
+ <industries>
210
+ <industry><![CDATA[Media / Publishing]]></industry>
211
+ </industries>
212
+ <expiration_date>2009-04-16</expiration_date>
213
+ <employer><![CDATA[1105 Media, Inc.]]></employer>
214
+ <location><![CDATA[Falls Church, VA, 22047, USA]]></location>
215
+ </job>
216
+ <job>
217
+ <title><![CDATA[Corporate Database Manager]]></title>
218
+ <description><![CDATA[Job Details
219
+ Corporate Database Manager
220
+ Send Job to Friend &amp;#187;
221
+ Apply Now &amp;#187;
222
+ Location: Chatsworth, CA
223
+ Department:
224
+ Job Type: Hire
225
+ Openings: 1 open, out of 1 available
226
+
227
+ 1105 Media Inc., an integrated business-to-business information and media company, has an opening for a Corporate Database Manager position in the Data Services department.
228
+ As a Corporate Database Manager, you will manage the 1105 Media Master Database. This includes all build rules, overseeing the regular feeds of several hundred lists, and maintaining the accuracy of permission levels. You will create new product feeds into the Master Database, regularly check specific segments as QC points, implement data hygiene, and create and manage reports. This position involves providing training to 1105 Media employees, individually and in groups, on using the Master Database as well as responding and helping with any Master Database related questions. You will work closely with our Master Database vendor to resolve any issues, questions, fixes and upgrades. Additional responsibilities include reviewing policies, procedures, and adjusting processes as need be. No technical programming and/or development skills are necessary for this position.
229
+ JOB QUALIFICATIONS
230
+ * Minimum 2 years managing databases required
231
+ * Strong verbal and written communication skills
232
+ * Very detail orientated and organized
233
+ * Excellent troubleshooting ability
234
+ * Multi-tasks and prioritizes effectively and quickly
235
+ * Manages pressure well
236
+ This is a position in a fast-paced environment, for a company with great benefits at the intersection of industries including publishing, marketing, technology and advertising.
237
+ We are an equal opportunity employer.
238
+ Send Job to Friend &amp;#187;
239
+ Apply Now &amp;#187;
240
+ ]]></description>
241
+ <link><![CDATA[http://jcnlx.com/7eaa099cedc549c39ad63f2f3e763606105]]></link>
242
+ <imagelink>http://images.jobcentral.com/companylogos/1105media.gif</imagelink>
243
+ <guid isPermaLink="false"><![CDATA[1105media-64626]]></guid>
244
+ <industries>
245
+ <industry><![CDATA[Media / Publishing]]></industry>
246
+ </industries>
247
+ <expiration_date>2009-04-16</expiration_date>
248
+ <employer><![CDATA[1105 Media, Inc.]]></employer>
249
+ <location><![CDATA[Chatsworth, CA, 91311, USA]]></location>
250
+ </job>
251
+ </jobs>
@@ -0,0 +1,123 @@
1
+ <html>
2
+ <body>
3
+ <style>
4
+ TD
5
+ {
6
+ COLOR: #333333;
7
+ FONT-FAMILY: Arial, Helvetica;
8
+ FONT-SIZE: 13px;
9
+ FONT-STYLE: normal;
10
+ FONT-WEIGHT: normal;
11
+ TEXT-DECORATION: none;
12
+ }
13
+ </style>
14
+ <table border="0" width="600">
15
+ <tr><td bgcolor="#ffffff"><h1>JobCentral Jobs - via XML</h1></td></tr>
16
+ </table>
17
+ <form name="thisForm" method="POST" action="/index.asp">
18
+ <table border="0" width="600" cellpadding="2" cellspacing="0" bgcolor="#CCCCCC">
19
+ <tr><td>
20
+ <table border="0" width="600" cellpadding="1" cellspacing="1">
21
+ <tr>
22
+
23
+ <td bgcolor="#ffffff"><b>Search the XML Feed Database</b></td>
24
+ </tr>
25
+ <tr>
26
+ <td bgcolor="#ffffff">Company Names (separate multiple names by commas):<br><input type="text" name="company" value="" size="60"></td>
27
+ </tr>
28
+ <tr>
29
+ <td bgcolor="#ffffff">Employer Type: <br><select name="emptype"><option value="">--All Types--</option><option value="0">Direct Employer</option><option value="1">Staffing Firm</option></select></td>
30
+
31
+ </tr>
32
+ <tr>
33
+ <td bgcolor="#ffffff">Industry:<br>
34
+ <select name="industry">
35
+ <option value="">All Industries</option>
36
+ <option value="1">Aerospace / Defense</option>
37
+ <option value="2">Automotive / Transport</option>
38
+
39
+ <option value="3">Banking</option>
40
+ <option value="4">Chemicals</option>
41
+ <option value="5">Computer Hardware</option>
42
+ <option value="6">Computer Software</option>
43
+ <option value="7">Conglomerates</option>
44
+ <option value="8">Consumer Products</option>
45
+
46
+ <option value="10">Diversified Services</option>
47
+ <option value="11">Drugs / Pharmaceuticals</option>
48
+ <option value="30">Education/Higher Education</option>
49
+ <option value="12">Electronics & Misc. Tech.</option>
50
+ <option value="13">Energy</option>
51
+ <option value="14">Financial Services</option>
52
+
53
+ <option value="15">Food, Beverage & Tobacco</option>
54
+ <option value="17">Health Products & Services</option>
55
+ <option value="16">Hospital / Healthcare</option>
56
+ <option value="18">Insurance</option>
57
+ <option value="19">Leisure</option>
58
+
59
+ <option value="20">Manufacturing</option>
60
+ <option value="21">Materials & Construction</option>
61
+ <option value="22">Media / Publishing</option>
62
+ <option value="23">Metals & Mining</option>
63
+ <option value="24">Real Estate</option>
64
+
65
+ <option value="25">Retail</option>
66
+ <option value="27">Telecommunications</option>
67
+ <option value="28">Transportation</option>
68
+ <option value="29">Utilities</option>
69
+ </select>
70
+ </td>
71
+ </tr>
72
+
73
+ <tr>
74
+ <td bgcolor="#ffffff">Company Class:<br>
75
+ <select name="member">
76
+ <option value="all">--All Companies--</option>
77
+ <option value="member">DE Member Companies</option>
78
+ <option value="nonmember">DE Non Member Companies</option>
79
+ </select>
80
+
81
+ </td>
82
+ </tr>
83
+ <tr>
84
+ <td bgcolor="#ffffff"><input type="submit" value="Search" name="submit"></td>
85
+ </tr>
86
+ </table>
87
+ </td></tr>
88
+ </table>
89
+ </form>
90
+ <hr>
91
+ <table border="0" width="600">
92
+
93
+ <tr><td align="center"><font size="+2"><a href="/feeds/jobcentral.xsd">Click here to view the XML Schema</a></font></td></tr>
94
+ </table>
95
+ <table border="0" width="600">
96
+ <!--SELECT DISTINCT WrappingCompanyName, Company FROM [JobWrappingJobs] JWJ (nolock) JOIN [WrappingCompanies] WC (nolock) ON JWJ.Company = WC.WrappingCompanyNameShort ORDER BY Company-->
97
+ <tr>
98
+ <td colspan="5"><b>SEARCH CRITERIA</b><br>You performed an open search</b></td>
99
+ </tr>
100
+ <tr>
101
+ <td width="220"><b>Company</b></td>
102
+ <td width="130"><b>File Name</b></td>
103
+
104
+ <td width="100"><b>File Size</b></td>
105
+ <td width="150"><b>Date Updated</b></td>
106
+ </tr>
107
+ <tr>
108
+ <td>1105 Media, Inc.</td>
109
+ <td><a href="/feeds/1105media.xml">1105media.xml</a></td>
110
+ <td>15 KB</td>
111
+
112
+ <td>4/12/2009 5:59:01 AM</td>
113
+ </tr>
114
+ <tr>
115
+ <td>1105 Media, Inc.</td>
116
+ <td><a href="/feeds/1105media-2.xml">1105media-2.xml</a></td>
117
+ <td>15 KB</td>
118
+
119
+ <td>4/12/2009 5:59:02 AM</td>
120
+ </tr>
121
+ <hr>
122
+ </body>
123
+ </html>
@@ -0,0 +1,151 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ __DIR__ = File.dirname(__FILE__)
4
+
5
+ FakeWeb.register_uri(:get, JobCentral::BASE_URI + "/index.asp",
6
+ :body => File.read(__DIR__ + "/fixtures/employers.html"))
7
+ FakeWeb.register_uri(:get, JobCentral::BASE_URI + "/feeds/1105media.xml",
8
+ :body => File.read(__DIR__ + "/fixtures/1105media.xml"))
9
+ FakeWeb.register_uri(:get, JobCentral::BASE_URI + "/feeds/1105media-2.xml",
10
+ :body => File.read(__DIR__ + "/fixtures/1105media-2.xml"))
11
+
12
+ JOB_DESCRIPTION = "Job Details\nNew Products Writer\nSend Job to Friend &amp;#187;\nApply Now &amp;#187;\nLocation: Dallas, TX\nDepartment: Editorial\nJob Type: Hire\nOpenings: 0 open, out of 1 available\n\n* \n1105 Media is looking for a detail-oriented New Products Writer in its Dallas, Texas office who can write and edit new products for several B2B magazines.\nPosition Profile:\n\nAs a New Products Writer, you will be responsible for writing 120 to 200 products per month. This requires excellent copyediting and organizational skills and the ability to describe the features and benefits of a product in 80 words or fewer. Occasionally you will be needed to proof articles and pages.\n\nResponsibilities include:\n* Writing 120 to 200 products per month.\n* Copyediting stories and page proofs.\n* Helping the editorial team post products to Web sites.\n* Sending out monthly e-mail blasts for new products.\n* Producing e-newsletters for magazines.\n\nThe ideal candidate for this position will possess the following qualifications:\n* At least one year professional experience, preferably in communications or journalism.\n* BA/BS in Journalism/English/Communications or related field of study.\nExperience in the following areas will be considered a plus:\n* HMTL coding\n* B2B publishing\n* Sitecore CMS\n1105 Media is based in Chatsworth,CA, with primary offices throughtout the United States. The company was formed in April 2006 by Nautic Partners LLC, Alta Communications, and President/CEO Neal Vitale.\nWe offer a competitive salary and a comprehensive benefits package that includes medical/dental/vision insurance, life insurance, disability insurance, 401(k) plan, and a generous paid time off (PTO)/holiday plan.\nWe are an equal opportunity employer.\nSend Job to Friend &amp;#187;\nApply Now &amp;#187;\n"
13
+
14
+ describe JobCentral do
15
+ before(:each) do
16
+ @employers = JobCentral::Employer.all
17
+ end
18
+
19
+ it "should fetch the list of employers" do
20
+ @employers.should respond_to(:each)
21
+ end
22
+
23
+ it "should parse the format from the feed" do
24
+ JobCentral::Helpers.parse_date("4/12/2009 5:59:01 AM").
25
+ should == DateTime.new(2009, 4, 12, 5, 59, 1)
26
+ end
27
+
28
+ describe JobCentral::Employer do
29
+ before(:each) do
30
+ @media = @employers.first
31
+ end
32
+
33
+ describe ".parse" do
34
+
35
+ let(:error) { OpenURI::HTTPError.new "500 Internal Server Error", "" }
36
+
37
+ it 'should retry on errors up to the limit' do
38
+ Kernel.should_receive(:open).exactly(2).times.and_raise(error)
39
+ Kernel.should_receive(:open).once.and_return(File.read(__DIR__ + "/fixtures/employers.html"))
40
+ JobCentral::Employer.parse(JobCentral::BASE_URI + "/index.asp")
41
+ end
42
+
43
+ it 'should retry on errors up to the limit and then raise if over' do
44
+ Kernel.stub(:open).and_raise(error)
45
+ expect {
46
+ JobCentral::Employer.parse(JobCentral::BASE_URI + "/index.asp")
47
+ }.to raise_error(OpenURI::HTTPError)
48
+ end
49
+
50
+ end
51
+
52
+ it "should have attributes parsed from the html" do
53
+ @media.should_not be_nil
54
+ @media.name.should == "1105 Media, Inc."
55
+ @media.feeds.should == ["#{JobCentral::BASE_URI}/feeds/1105media.xml", "#{JobCentral::BASE_URI}/feeds/1105media-2.xml"]
56
+ @media.date_updated.should == DateTime.new(2009, 4, 12, 5, 59, 2)
57
+ @media.jobs.should respond_to(:each)
58
+ @media.jobs.size.should == 12 # should span across both feeds
59
+ end
60
+
61
+ describe JobCentral::Job do
62
+
63
+ describe "#extract_location" do
64
+
65
+ it 'stripgs the location of leading spaces / commas' do
66
+ element = double("element", :at => double(:text => ", NY, USA"))
67
+ JobCentral::Job.extract_location(element).should == "NY, USA"
68
+ end
69
+
70
+ end
71
+
72
+ describe "from xml" do
73
+ before(:each) do
74
+ @jobs = JobCentral::Job.from_xml(JobCentral::BASE_URI + "/feeds/1105media.xml")
75
+ @writer = @jobs.first
76
+ end
77
+
78
+ it "should have attributes parsed from the xml" do
79
+ @writer.guid.should == "1105media-24064"
80
+ @writer.title.should == "New Products Writer"
81
+ @writer.description.should == JOB_DESCRIPTION # check eof
82
+ @writer.link.should == "http://jcnlx.com/3eca112f27834df8b7dbd803d6ecf097105"
83
+ @writer.imagelink.should == "http://images.jobcentral.com/companylogos/1105media.gif"
84
+ @writer.industries.should == ["Media / Publishing"]
85
+ @writer.expiration_date.should == Date.new(2009, 4, 16)
86
+ @writer.employer_name.should == "1105 Media, Inc."
87
+ @writer.location.should == "Dallas, TX, 75219, USA"
88
+ @writer.city.should == "Dallas"
89
+ @writer.state.should == "TX"
90
+ @writer.zip_code.should == "75219"
91
+ @writer.country.should == "USA"
92
+ end
93
+ end
94
+
95
+ before(:each) do
96
+ @writer = @media.jobs.first
97
+ end
98
+
99
+ it "should have attributes parsed from the xml" do
100
+ @writer.guid.should == "1105media-24064"
101
+ @writer.title.should == "New Products Writer"
102
+ @writer.description.should == JOB_DESCRIPTION # check eof
103
+ @writer.link.should == "http://jcnlx.com/3eca112f27834df8b7dbd803d6ecf097105"
104
+ @writer.imagelink.should == "http://images.jobcentral.com/companylogos/1105media.gif"
105
+ @writer.industries.should == ["Media / Publishing"]
106
+ @writer.expiration_date.should == Date.new(2009, 4, 16)
107
+ @writer.employer_name.should == "1105 Media, Inc."
108
+ @writer.location.should == "Dallas, TX, 75219, USA"
109
+ @writer.city.should == "Dallas"
110
+ @writer.state.should == "TX"
111
+ @writer.zip_code.should == "75219"
112
+ @writer.country.should == "USA"
113
+ end
114
+ end
115
+ end
116
+ { "Dallas, TX, 75219, USA" => {
117
+ :city => "Dallas",
118
+ :state => "TX",
119
+ :zip_code => "75219",
120
+ :country => "USA"
121
+ }, "Darfur, SDN" => {
122
+ :city => nil,
123
+ :state => "Darfur",
124
+ :zip_code => nil,
125
+ :country => "SDN"
126
+ }, ", USA" => {
127
+ :city => nil,
128
+ :state => nil,
129
+ :zip_code => nil,
130
+ :country => "USA"
131
+ }, "US, DC, USA" => {
132
+ :city => "US",
133
+ :state => "DC",
134
+ :zip_code => nil,
135
+ :country => "USA"
136
+ }, ", GA, USA" => {
137
+ :city => nil,
138
+ :state => "GA",
139
+ :zip_code => nil,
140
+ :country => "USA"
141
+ }
142
+ }.each do |string, location|
143
+ it "should parse #{string}" do
144
+ JobCentral::LocationParser.parse(string).should == location
145
+ end
146
+ end
147
+
148
+ it 'should return an empty hash when failing to parse' do
149
+ JobCentral::LocationParser.parse("Farmington Hills, OH, MI, 48332, USA").should == {}
150
+ end
151
+ end
@@ -0,0 +1,11 @@
1
+ require 'rubygems'
2
+ require 'spec'
3
+ require 'fakeweb'
4
+
5
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
6
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+ require 'job_central'
8
+
9
+ Spec::Runner.configure do |config|
10
+
11
+ end
metadata ADDED
@@ -0,0 +1,96 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: job_central
3
+ version: !ruby/object:Gem::Version
4
+ hash: 11
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 5
9
+ - 4
10
+ version: 1.5.4
11
+ platform: ruby
12
+ authors:
13
+ - Michael Guterl
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-11-08 00:00:00 -05:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: nokogiri
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">"
28
+ - !ruby/object:Gem::Version
29
+ hash: 25
30
+ segments:
31
+ - 1
32
+ - 2
33
+ - 3
34
+ version: 1.2.3
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ description:
38
+ email: mguterl@gmail.com
39
+ executables: []
40
+
41
+ extensions: []
42
+
43
+ extra_rdoc_files:
44
+ - LICENSE
45
+ - README.rdoc
46
+ files:
47
+ - .document
48
+ - .gitignore
49
+ - LICENSE
50
+ - README.rdoc
51
+ - Rakefile
52
+ - VERSION.yml
53
+ - job_central.gemspec
54
+ - lib/job_central.rb
55
+ - spec/fixtures/1105media-2.xml
56
+ - spec/fixtures/1105media.xml
57
+ - spec/fixtures/employers.html
58
+ - spec/job_central_spec.rb
59
+ - spec/spec_helper.rb
60
+ has_rdoc: true
61
+ homepage: http://github.com/mguterl/job_central
62
+ licenses: []
63
+
64
+ post_install_message:
65
+ rdoc_options:
66
+ - --charset=UTF-8
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ none: false
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ hash: 3
84
+ segments:
85
+ - 0
86
+ version: "0"
87
+ requirements: []
88
+
89
+ rubyforge_project:
90
+ rubygems_version: 1.3.7
91
+ signing_key:
92
+ specification_version: 3
93
+ summary: ""
94
+ test_files:
95
+ - spec/job_central_spec.rb
96
+ - spec/spec_helper.rb