linkedin2cv 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +7 -0
  2. data/.buildpacks +2 -0
  3. data/.bundle/config +1 -0
  4. data/.gitignore +7 -0
  5. data/.node +1 -0
  6. data/.travis.yml +21 -0
  7. data/Gemfile +5 -0
  8. data/Gemfile.lock +119 -0
  9. data/Procfile +3 -0
  10. data/README.md +32 -0
  11. data/Rakefile +6 -0
  12. data/Vagrantfile +16 -0
  13. data/app/routes/api.rb +101 -0
  14. data/app/routes/web.rb +132 -0
  15. data/app/views/hello.erb +36 -0
  16. data/app/views/home.erb +12 -0
  17. data/app/views/index.haml +11 -0
  18. data/app.rb +26 -0
  19. data/config.ru +6 -0
  20. data/config.yml +31 -0
  21. data/lib/linkedin2cv/cli/command.rb +46 -0
  22. data/lib/linkedin2cv/converter.rb +116 -0
  23. data/lib/linkedin2cv/logging.rb +35 -0
  24. data/lib/linkedin2cv/renderer/latex_renderer.rb +64 -0
  25. data/lib/linkedin2cv/version.rb +3 -0
  26. data/linkedin2cv.gemspec +49 -0
  27. data/public/.bowerrc +3 -0
  28. data/public/.editorconfig +21 -0
  29. data/public/.gitattributes +1 -0
  30. data/public/.gitignore +5 -0
  31. data/public/.jshintrc +24 -0
  32. data/public/.travis.yml +7 -0
  33. data/public/Gruntfile.js +487 -0
  34. data/public/app/.buildignore +1 -0
  35. data/public/app/.htaccess +543 -0
  36. data/public/app/404.html +157 -0
  37. data/public/app/favicon.ico +0 -0
  38. data/public/app/images/yeoman.png +0 -0
  39. data/public/app/index.html +73 -0
  40. data/public/app/robots.txt +3 -0
  41. data/public/app/scripts/app.js +20 -0
  42. data/public/app/scripts/controllers/main.js +21 -0
  43. data/public/app/scripts/services/linkedin2cv.js +93 -0
  44. data/public/app/styles/main.scss +95 -0
  45. data/public/app/views/main.html +23 -0
  46. data/public/bower.json +19 -0
  47. data/public/karma-e2e.conf.js +54 -0
  48. data/public/karma.conf.js +56 -0
  49. data/public/package.json +41 -0
  50. data/public/test/.jshintrc +36 -0
  51. data/public/test/runner.html +10 -0
  52. data/public/test/spec/controllers/main.js +22 -0
  53. data/public/test/spec/services/happyapi.js +18 -0
  54. data/public/test/spec/services/happyservice.js +18 -0
  55. data/spec/converter_spec.rb +83 -0
  56. data/spec/mocks/config.yml +31 -0
  57. data/spec/mocks/profile.json +866 -0
  58. data/spec/spec_helper.rb +13 -0
  59. data/templates/cv.erb +327 -0
  60. data/templates/foo.asciidoc +11 -0
  61. data/templates/foo.latex +230 -0
  62. data/test.rb +109 -0
  63. data/test.sh +6 -0
  64. data/teust.rb +75 -0
  65. metadata +434 -0
@@ -0,0 +1,13 @@
1
+ require 'rspec'
2
+ require 'webmock/rspec'
3
+ WebMock.disable_net_connect!(allow_localhost: true)
4
+
5
+ RSpec.configure do |config|
6
+ config.before(:each) do
7
+ response_mock = File.read(__dir__ + "/mocks/profile.json")
8
+
9
+ stub_request(:get, /.*api.linkedin.com.*/).
10
+ with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>'Faraday v0.9.0', 'X-Li-Format'=>'json'}).
11
+ to_return(status: 200, body: response_mock, headers: {})
12
+ end
13
+ end
data/templates/cv.erb ADDED
@@ -0,0 +1,327 @@
1
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
+ % Classicthesis-Styled CV
3
+ % LaTeX Template
4
+ % Version 1.0 (22/2/13)
5
+ %
6
+ % This template has been downloaded from:
7
+ % http://www.LaTeXTemplates.com
8
+ %
9
+ % Original author:
10
+ % Alessandro Plasmati
11
+ %
12
+ % License:
13
+ % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
14
+ %
15
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16
+
17
+
18
+
19
+ %----------------------------------------------------------------------------------------
20
+ % Re-usable template functions
21
+ %----------------------------------------------------------------------------------------
22
+
23
+ <%
24
+ def check_reference(options, project)
25
+ s = ""
26
+
27
+ begin
28
+ options['references'].each do |ref|
29
+ ref.keys.each do |key|
30
+ # puts "comparing #{project} with #{ref[key]['projects']}"
31
+ if ref[key]['projects'].concat(ref[key]['roles']).index(project) != nil
32
+ r = ref[key]
33
+ s = "Reference: #{r['first_name']} \\textsc{#{r['last_name']}}\\\ \\\ $\\cdotp$\\\ \\\ #{r['phone']}\\\ \\\ $\\cdotp$\\\ \\\ \\\href{mailto:#{r['email']}}{#{r['email']}}"
34
+ end
35
+ end
36
+ end
37
+ rescue
38
+ puts "Couldn't find reference for project"
39
+ end
40
+ s
41
+ end
42
+ %>
43
+
44
+ <%
45
+ def check_project_company(options, project)
46
+ s = "Personal"
47
+
48
+ begin
49
+ options['projects'].each do |ref|
50
+ ref.keys.each do |key|
51
+ puts "comparing #{project} with #{key}"
52
+ if key == project
53
+ s = "#{ref[key]}"
54
+ end
55
+ end
56
+ end
57
+ rescue
58
+ puts "Couldn't find project company"
59
+ end
60
+ s
61
+ end
62
+ %>
63
+
64
+ %----------------------------------------------------------------------------------------
65
+ % PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
66
+ %----------------------------------------------------------------------------------------
67
+
68
+ \documentclass{scrartcl}
69
+
70
+ \usepackage[T1]{fontenc}
71
+
72
+ \reversemarginpar % Move the margin to the left of the page
73
+
74
+ \newcommand{\MarginText}[1]{\marginpar{\raggedleft\itshape\small#1}} % New command defining the margin text style
75
+
76
+ \usepackage[nochapters]{classicthesis} % Use the classicthesis style for the style of the document
77
+ \usepackage[LabelsAligned]{currvita} % Use the currvita style for the layout of the document
78
+
79
+ \renewcommand{\cvheadingfont}{\LARGE\color{Maroon}} % Font color of your name at the top
80
+
81
+ \usepackage{hyperref} % Required for adding links and customizing them
82
+ \hypersetup{colorlinks, breaklinks, urlcolor=Maroon, linkcolor=Maroon} % Set link colors
83
+
84
+ \newlength{\datebox}\settowidth{\datebox}{13-2012--12/2014} % Set the width of the date box in each block
85
+
86
+ \newcommand{\NewEntry}[3]{\noindent\hangindent=2em\hangafter=0 \parbox{\datebox}{\small \textit{#1}}\hspace{1.5em} #2 #3 % Define a command for each new block - change spacing and font sizes here: #1 is the left margin, #2 is the italic date field and #3 is the position/employer/location field
87
+ \vspace{0.5em}} % Add some white space after each new entry
88
+
89
+ \newcommand{\Description}[1]{\hangindent=2em\hangafter=0\noindent\raggedright\footnotesize{#1}\par\normalsize\vspace{1em}} % Define a command for descriptions of each entry - change spacing and font sizes here
90
+
91
+ %----------------------------------------------------------------------------------------
92
+
93
+ \begin{document}
94
+
95
+ \thispagestyle{empty} % Stop the page count at the bottom of the first page
96
+
97
+ %----------------------------------------------------------------------------------------
98
+ % NAME AND CONTACT INFORMATION SECTION
99
+ %----------------------------------------------------------------------------------------
100
+
101
+ \begin{cv}{\spacedallcaps{<%= profile.first_name %> <%= profile.last_name %>}}\vspace{1.5em} % Your name
102
+
103
+ \noindent\spacedlowsmallcaps{Personal Information}\vspace{0.5em} % Personal information heading
104
+
105
+ <% if !profile.location.name.nil? %>
106
+ \NewEntry{}{\textit{Resides in <%= profile.location.name %>}} % Birthplace and date
107
+
108
+ \NewEntry{email}{\href{mailto:<%= profile.email_address %>}{<%= profile.email_address %>}} % Email address
109
+
110
+ <% end %>
111
+
112
+ <% for @url in profile.member_url_resources.all %>
113
+ \NewEntry{website}{\href{<%= @url.url %>}{<%= @url.url %>}} % Personal website
114
+
115
+ <% end %>
116
+
117
+ <% if !options['home_phone'].nil? && !options['mobile_phone'].nil? %>
118
+ \NewEntry{phone}{(H) <%= options['home_phone'] %>\ \ $\cdotp$\ \ (M)<%= options['mobile_phone'] %>} % Phone number(s)
119
+ <% end %>
120
+
121
+ \vspace{1em} % Extra white space between the personal information section and goal
122
+
123
+ <% if !profile.summary.nil? %>
124
+ \noindent\spacedlowsmallcaps{Introduction}\vspace{1em} % Goal heading, could be used for a quotation or short profile instead
125
+
126
+ <% for @blurb in profile.summary.split("\n") %>
127
+ <% if !@blurb.strip.empty? %>
128
+ \Description{<%= @blurb %>}
129
+ <% end %>
130
+ <% end %>
131
+ \vspace{2em} % Goal text
132
+ <% end %>
133
+
134
+ %----------------------------------------------------------------------------------------
135
+ % WORK EXPERIENCE
136
+ %----------------------------------------------------------------------------------------
137
+
138
+ \noindent\spacedlowsmallcaps{Professional Experience}\vspace{1em}
139
+
140
+ <% for @position in profile.positions.all %>
141
+ <% if !@position.summary.nil? %>
142
+ <% if @position.is_current %>
143
+ \NewEntry{<%=@position.start_date.year %>--Present}{<%= @position.title %>, \textsc{<%= @position.company.name %>}}
144
+ <% else %>
145
+ \NewEntry{<%=@position.start_date.year %>--<%=@position.end_date.year %>}{<%= @position.title %>, \textsc{<%= @position.company.name %>}}
146
+ <% end %>
147
+ \Description{\MarginText{<%= @position.company.name %>}
148
+ <% if !@position.summary.nil? %>
149
+ <% for @line in @position.summary.lines %>
150
+ <% if @line.strip.match(/^(\* |\- )/) %>
151
+ \begin{itemize}
152
+ \item <%= @line.strip.gsub(/^(\* |\- )/, '') %>
153
+ \end{itemize}
154
+ <% else %>
155
+ <%= @line %>
156
+ <% end %>
157
+ <% end %>
158
+ <% end %>
159
+
160
+ <%= check_reference(options, @position.title) %>}
161
+
162
+ \vspace{.5em} % Extra space between sections
163
+ <% end %>
164
+ <% end %>
165
+ %------------------------------------------------
166
+
167
+ \vspace{1em} % Extra space between major sections
168
+
169
+ %----------------------------------------------------------------------------------------
170
+ % PROJECTS
171
+ %----------------------------------------------------------------------------------------
172
+
173
+ \noindent\spacedlowsmallcaps{Projects}\vspace{1em}
174
+
175
+ <% for @project in profile.projects.all %>
176
+ <% if @project.url %>
177
+ %\NewEntry{website}{\href{<%= @project.url %>}{<%= @project.url %>}} % Project website
178
+ <% end %>
179
+
180
+ <% if @project.end_date.nil? %>
181
+ \NewEntry{<%=@project.start_date.year %>--Present}{\textsc{<%= check_project_company(options, @project.name) %>}}
182
+ <% else %>
183
+ \NewEntry{<%=@project.start_date.month %>/<%=@project.start_date.year %>--<%=@project.end_date.month %>/<%=@project.end_date.year %>}{\textsc{<%= check_project_company(options, @project.name) %>}}
184
+ <% end %>
185
+
186
+ \Description{\MarginText{<%=@project.name %>}
187
+ <% for @line in @project.description.lines %>
188
+ <% if @line.strip.match(/^(\* |\- )/) %>
189
+ \begin{itemize}
190
+ \item <%= @line.strip.gsub(/^(\* |\- )/, '') %>
191
+ \end{itemize}
192
+ <% else %>
193
+ <%= @line %>
194
+ <% end %>
195
+ <% end %>
196
+
197
+ <%= check_reference(options, @project.name) %>}
198
+
199
+ \vspace{.5em} % Extra space between sections
200
+ %------------------------------------------------
201
+
202
+ <% end %>
203
+
204
+ \vspace{1em} % Extra space between major sections
205
+
206
+ %----------------------------------------------------------------------------------------
207
+ % EDUCATION
208
+ %----------------------------------------------------------------------------------------
209
+
210
+ \spacedlowsmallcaps{Education}\vspace{1em}
211
+
212
+ <% for @education in profile.educations.all %>
213
+
214
+ \NewEntry{<%=@education.start_date.year %>-<%=@education.end_date.year %>}{<%= @education.school_name %>}
215
+
216
+
217
+ <% if !@education.degree.nil? %>
218
+ \Description{\MarginText{<%=@education.degree %>}GPA: <%=@education.grade %> \ $\cdotp$\ \ Field of study: <%=@education.field_of_study %>\newline
219
+ <% else %>
220
+ \Description{\MarginText{High School}
221
+ <% end %>
222
+
223
+ <% if !@education.activities.nil? %>
224
+ <% for @line in @education.activities.lines %>
225
+ <% if @line.strip.match(/^(\* |\- )/) %>
226
+ \begin{itemize}
227
+ \item <%= @line.strip.gsub(/^(\* |\- )/, '') %>
228
+ \end{itemize}
229
+ <% else %>
230
+ <%= @line %>
231
+ <% end %>
232
+
233
+ <% end %>
234
+ <% end %>
235
+
236
+ <% if !@education.description.nil? %>
237
+ <% for @line in @education.description.lines %>
238
+ <% if @line.strip.match(/^(\* |\- )/) %>
239
+ \begin{itemize}
240
+ \item <%= @line.strip.gsub(/^(\* |\- )/, '') %>
241
+ \end{itemize}
242
+ <% else %>
243
+ <%= @line %>
244
+ <% end %>
245
+
246
+ <% end %>
247
+ <% end %>}
248
+ \vspace{.5em} % Extra space between sections
249
+
250
+ <% end %>
251
+
252
+ %------------------------------------------------
253
+
254
+ \vspace{1em} % Extra space between major sections
255
+
256
+ %----------------------------------------------------------------------------------------
257
+ % PUBLICATIONS
258
+ %----------------------------------------------------------------------------------------
259
+
260
+ %\spacedlowsmallcaps{Publications}\vspace{1em}
261
+
262
+ %\NewEntry{January 2013}{Publication Title}
263
+
264
+ %\Description{\MarginText{Full Journal Name}Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut nisl tellus, sodales non pulvinar in, adipiscing sit amet purus. Suspendisse sed facilisis diam. Sed ornare sem nec justo adipiscing nec venenatis lectus commodo. Mauris non neque ligula. Pellentesque sed quam eu felis iaculis iaculis ac a leo. Suspendisse neque neque, placerat id adipiscing et, elementum eu sem.\\ Authors: John \textsc{Smith}, ~James \textsc{Smith}}
265
+
266
+ %------------------------------------------------
267
+
268
+ %\NewEntry{Sept. 2012}{Publication Title}
269
+
270
+ %\Description{\MarginText{Full Journal Name}Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut nisl tellus, sodales non pulvinar in, adipiscing sit amet purus. Suspendisse sed facilisis diam. Sed ornare sem nec justo adipiscing nec venenatis lectus commodo. Mauris non neque ligula. Pellentesque sed quam eu felis iaculis iaculis ac a leo. Suspendisse neque neque, placerat id adipiscing et, elementum eu sem.\\ Authors: John \textsc{Smith}, ~James \textsc{Smith}}
271
+
272
+ %------------------------------------------------
273
+
274
+ \vspace{1em} % Extra space between major sections
275
+
276
+ %----------------------------------------------------------------------------------------
277
+ % COMPUTER SKILLS
278
+ %----------------------------------------------------------------------------------------
279
+
280
+ \spacedlowsmallcaps{Expertise\textbackslash Skills}\vspace{1em}
281
+
282
+ \Description{\MarginText{Leadership}
283
+
284
+ % Do LinkedIn Skills
285
+
286
+ <% for @skill in profile.skills.all.shift(9) %>
287
+ %\textsc{<%=@skill.skill.name%>}
288
+ <%=@skill.skill.name%>,
289
+ <% end %>
290
+ <% for @skill in profile.skills.all.shift(1) %>
291
+ <%=@skill.skill.name%>}
292
+ <% end %>
293
+
294
+ % Custom skills supplied via config
295
+
296
+ <% if !options['skills'].nil? && !options['skills']['extra'].nil? %>
297
+ <% for @extra in options['skills']['extra'] %>
298
+ <% for @category in @extra.keys %>
299
+ \Description{\MarginText{<%= @category.capitalize %>}
300
+ <% for @skill in @extra[@category].shift(@extra[@category].size-1) %><%=@skill %>, <% end %>
301
+ <% for @skill in @extra[@category].shift(1) %><%=@skill %> <% end %>}
302
+ <% end %>
303
+ <% end %>
304
+ <% end %>
305
+
306
+ %------------------------------------------------
307
+
308
+ \vspace{1em} % Extra space between major sections
309
+
310
+ %----------------------------------------------------------------------------------------
311
+ % OTHER INFORMATION
312
+ %----------------------------------------------------------------------------------------
313
+
314
+ \spacedlowsmallcaps{Other Information}\vspace{1em}
315
+
316
+ \Description{\MarginText{Interests}<%= profile.interests.gsub(',', '\\\ \\\ $\\\cdotp$\\\ \\\ ')%>}
317
+
318
+ %----------------------------------------------------------------------------------------
319
+
320
+ \AtEndDocument{\vfill%
321
+ % Your end-of-document content
322
+ Produced with love by Latex and https://github.com/mefellows/linkedin2cv
323
+ }
324
+
325
+ \end{cv}
326
+
327
+ \end{document}
@@ -0,0 +1,11 @@
1
+ AsciiDoc Home Page
2
+ ==================
3
+
4
+ Example Articles
5
+ ~~~~~~~~~~~~~~~~
6
+ :billy: Joel
7
+ - Item 1: {billy}
8
+
9
+ - Item 2: {billy}
10
+
11
+ - Item 3
@@ -0,0 +1,230 @@
1
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
+ % Classicthesis-Styled CV
3
+ % LaTeX Template
4
+ % Version 1.0 (22/2/13)
5
+ %
6
+ % This template has been downloaded from:
7
+ % http://www.LaTeXTemplates.com
8
+ %
9
+ % Original author:
10
+ % Alessandro Plasmati
11
+ %
12
+ % License:
13
+ % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
14
+ %
15
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16
+
17
+ %----------------------------------------------------------------------------------------
18
+ % PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
19
+ %----------------------------------------------------------------------------------------
20
+
21
+ \documentclass{scrartcl}
22
+
23
+ \reversemarginpar % Move the margin to the left of the page
24
+
25
+ \newcommand{\MarginText}[1]{\marginpar{\raggedleft\itshape\small#1}} % New command defining the margin text style
26
+
27
+ \usepackage[nochapters]{classicthesis} % Use the classicthesis style for the style of the document
28
+ \usepackage[LabelsAligned]{currvita} % Use the currvita style for the layout of the document
29
+
30
+ \renewcommand{\cvheadingfont}{\LARGE\color{Maroon}} % Font color of your name at the top
31
+
32
+ \usepackage{hyperref} % Required for adding links and customizing them
33
+ \hypersetup{colorlinks, breaklinks, urlcolor=Maroon, linkcolor=Maroon} % Set link colors
34
+
35
+ \newlength{\datebox}\settowidth{\datebox}{Spring 2011} % Set the width of the date box in each block
36
+
37
+ \newcommand{\NewEntry}[3]{\noindent\hangindent=2em\hangafter=0 \parbox{\datebox}{\small \textit{#1}}\hspace{1.5em} #2 #3 % Define a command for each new block - change spacing and font sizes here: #1 is the left margin, #2 is the italic date field and #3 is the position/employer/location field
38
+ \vspace{0.5em}} % Add some white space after each new entry
39
+
40
+ \newcommand{\Description}[1]{\hangindent=2em\hangafter=0\noindent\raggedright\footnotesize{#1}\par\normalsize\vspace{1em}} % Define a command for descriptions of each entry - change spacing and font sizes here
41
+
42
+ %----------------------------------------------------------------------------------------
43
+
44
+ \begin{document}
45
+
46
+ \thispagestyle{empty} % Stop the page count at the bottom of the first page
47
+
48
+ %----------------------------------------------------------------------------------------
49
+ % NAME AND CONTACT INFORMATION SECTION
50
+ %----------------------------------------------------------------------------------------
51
+
52
+ \begin{cv}{\spacedallcaps{<%= lastname %>, <%= firstname %>}}\vspace{1.5em} % Your name
53
+
54
+ \noindent\spacedlowsmallcaps{Personal Information}\vspace{0.5em} % Personal information heading
55
+
56
+ \NewEntry{}{\textit{Born in Canada,}}{20 November 1987} % Birthplace and date
57
+
58
+ \NewEntry{email}{\href{mailto:john@smith.com}{john@smith.com}} % Email address
59
+
60
+ \NewEntry{website}{\href{http://www.johnsmith.com}{http://www.johnsmith.com}} % Personal website
61
+
62
+ \NewEntry{phone}{(H) +1 (000) 111 1111\ \ $\cdotp$\ \ (M) +1 (000) 111 1112} % Phone number(s)
63
+
64
+ \vspace{1em} % Extra white space between the personal information section and goal
65
+
66
+ \noindent\spacedlowsmallcaps{Goal}\vspace{1em} % Goal heading, could be used for a quotation or short profile instead
67
+
68
+ \Description{Gain fundamental experience in my area of interest and expertise.}\vspace{2em} % Goal text
69
+
70
+ %----------------------------------------------------------------------------------------
71
+ % WORK EXPERIENCE
72
+ %----------------------------------------------------------------------------------------
73
+
74
+ \noindent\spacedlowsmallcaps{Work Experience}\vspace{1em}
75
+
76
+
77
+ \Description{\MarginText{Melbourne IT}Some crap stuff
78
+ \begin{itemize}
79
+ \item Thought leadership \& change management
80
+ \end{itemize}
81
+ \begin{itemize}
82
+ \item Drive development team agility via Scrum and DevOps approaches to software development
83
+ \end{itemize}
84
+ \begin{itemize}
85
+ \item Coach group on applying MVP thinking, delivering incremental business value
86
+ \end{itemize}
87
+ \begin{itemize}
88
+ \item Lead conversion rate optimisation for Melbourne IT web properties
89
+ \end{itemize}
90
+ \begin{itemize}
91
+ \item Lead design of modern RESTful API to support Internal/B2B/B2C/App channels
92
+ \end{itemize}
93
+ \begin{itemize}
94
+ \item Drive move from traditional web frameworks (Zend/PHP) to more performant Angular JS desktop \& mobile applications.
95
+ \end{itemize}
96
+
97
+
98
+
99
+
100
+
101
+ \NewEntry{2012--Present}{1\textsuperscript{st} Year Analyst, \textsc{Lehman Brothers}}
102
+
103
+ \Description{\MarginText{Lehman Brothers}Developed spreadsheets for risk analysis on exotic derivatives on a wide array of commodities (ags, oils, precious and base metals), managed blotter and secondary trades on structured notes, liaised with Middle Office, Sales and Structuring for bookkeeping. \\ Reference: John \textsc{McDonald}\ \ $\cdotp$\ \ +1 (000) 111 1111\ \ $\cdotp$\ \ \href{mailto:john@lehman.com}{john@lehman.com}}
104
+
105
+ %------------------------------------------------
106
+
107
+ \NewEntry{2010--2011}{Summer Intern, \textsc{Initech Inc} --- Chicago}
108
+
109
+ \Description{\MarginText{Initech Inc}Rated "truly distinctive" for Analytical Skills and Teamwork. \\ Reference: Bill \textsc{Lumbergh}\ \ +1 (000) 111 1111\ \ $\cdotp$\ \ \href{mailto:bill@initech.com}{bill@initech.com}}
110
+
111
+ %------------------------------------------------
112
+
113
+ \NewEntry{Jan-Mar 2011}{Computer Technician, \textsc{Buy More} --- Burbank}
114
+
115
+ \Description{\MarginText{Buy More}Worked in the Nerd Herd and helped to solve computer problems by asking customers to turn their computers off and on again. \\ Reference: Big \textsc{Mike}\ \ +1 (000) 111 1111\ \ $\cdotp$\ \ \href{mailto:mike@buymore.com}{mike@buymore.com}}
116
+
117
+ %------------------------------------------------
118
+
119
+ \vspace{1em} % Extra space between major sections
120
+
121
+ %----------------------------------------------------------------------------------------
122
+ % EDUCATION
123
+ %----------------------------------------------------------------------------------------
124
+
125
+ \spacedlowsmallcaps{Education}\vspace{1em}
126
+
127
+ \NewEntry{2011-2012}{The University of California, Berkeley}
128
+
129
+ \Description{\MarginText{Masters of Commerce}GPA: 8.0\ \ $\cdotp$\ \ \textit{First Class Honours}\ \ $\cdotp$\ \ School: Business and Administration\newline
130
+ Thesis: \textit{Money Is The Root Of All Evil -- Or Is It?}\newline
131
+ Description: This thesis explored the idea that money has been the cause of untold anguish and suffering in the world. I found that it has, in fact, not.\newline
132
+ Advisors: Prof.~James \textsc{Smith} \& Assoc. Prof.~Jane \textsc{Smith}}
133
+
134
+ %------------------------------------------------
135
+
136
+ \NewEntry{2007-2010}{The University of California, Berkeley}
137
+
138
+ \Description{\MarginText{Bachelor of Business Studies}GPA: 7.5\ \ $\cdotp$\ \ \textit{Commerce Specialization}\ \ $\cdotp$\ \ School: Business and Administration\newline
139
+ Description: This degree focussed heavily on important things such as personnel management and mundane paperwork.}
140
+
141
+ %------------------------------------------------
142
+
143
+ \vspace{1em} % Extra space between major sections
144
+
145
+ %----------------------------------------------------------------------------------------
146
+ % PUBLICATIONS
147
+ %----------------------------------------------------------------------------------------
148
+
149
+ \spacedlowsmallcaps{Publications}\vspace{1em}
150
+
151
+ \NewEntry{January 2013}{Publication Title}
152
+
153
+ \Description{\MarginText{Full Journal Name}Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut nisl tellus, sodales non pulvinar in, adipiscing sit amet purus. Suspendisse sed facilisis diam. Sed ornare sem nec justo adipiscing nec venenatis lectus commodo. Mauris non neque ligula. Pellentesque sed quam eu felis iaculis iaculis ac a leo. Suspendisse neque neque, placerat id adipiscing et, elementum eu sem.\\ Authors: John \textsc{Smith}, ~James \textsc{Smith}}
154
+
155
+ %------------------------------------------------
156
+
157
+ \NewEntry{Sept. 2012}{Publication Title}
158
+
159
+ \Description{\MarginText{Full Journal Name}Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut nisl tellus, sodales non pulvinar in, adipiscing sit amet purus. Suspendisse sed facilisis diam. Sed ornare sem nec justo adipiscing nec venenatis lectus commodo. Mauris non neque ligula. Pellentesque sed quam eu felis iaculis iaculis ac a leo. Suspendisse neque neque, placerat id adipiscing et, elementum eu sem.\\ Authors: John \textsc{Smith}, ~James \textsc{Smith}}
160
+
161
+ %------------------------------------------------
162
+
163
+ \vspace{1em} % Extra space between major sections
164
+
165
+ %----------------------------------------------------------------------------------------
166
+ % COMPUTER SKILLS
167
+ %----------------------------------------------------------------------------------------
168
+
169
+ \spacedlowsmallcaps{Computer Skills}\vspace{1em}
170
+
171
+ \Description{\MarginText{Basic}\textsc{java}, Adobe Illustrator}
172
+
173
+ \Description{\MarginText{Intermediate}\textsc{python}, \textsc{html}, \LaTeX, OpenOffice, Linux, Microsoft Windows}
174
+
175
+ \Description{\MarginText{Advanced}Computer Hardware and Support}
176
+
177
+ %------------------------------------------------
178
+
179
+ \vspace{1em} % Extra space between major sections
180
+
181
+ %----------------------------------------------------------------------------------------
182
+ % OTHER INFORMATION
183
+ %----------------------------------------------------------------------------------------
184
+
185
+ \spacedlowsmallcaps{Other Information}\vspace{1em}
186
+
187
+ \Description{\MarginText{Awards}2011\ \ $\cdotp$\ \ School of Business Postgraduate Scholarship}
188
+
189
+ \vspace{-0.5em} % Negative vertical space to counteract the vertical space between every \Description command
190
+
191
+ \Description{2010\ \ $\cdotp$\ \ Top Achiever Award -- Commerce}
192
+
193
+ %------------------------------------------------
194
+
195
+ \vspace{1em}
196
+
197
+ \Description{\MarginText{Communication Skills}2010\ \ $\cdotp$\ \ Oral Presentation at the California Business Conference}
198
+
199
+ \vspace{-0.5em} % Negative vertical space to counteract the vertical space between every \Description command
200
+
201
+ \Description{2009\ \ $\cdotp$\ \ Poster at the Annual Business Conference in Oregon}
202
+
203
+ %------------------------------------------------
204
+
205
+ \vspace{1em}
206
+
207
+ \newlength{\langbox} % Create a new length for the length of languages to keep them equally spaced
208
+ \settowidth{\langbox}{English} % Length equals the length of "English" - if you have a longer language in your list put it here
209
+
210
+ \Description{\MarginText{Languages}\parbox{\langbox}{\textsc{English}}\ \ $\cdotp$\ \ \ Mothertongue}
211
+
212
+ \vspace{-0.5em} % Negative vertical space to counteract the vertical space between every \Description command
213
+
214
+ \Description{\parbox{\langbox}{\textsc{Spanish}}\ \ $\cdotp$\ \ \ Intermediate (conversationally fluent)}
215
+
216
+ \vspace{-0.5em} % Negative vertical space to counteract the vertical space between every \Description command
217
+
218
+ \Description{\parbox{\langbox}{\textsc{Dutch}}\ \ $\cdotp$\ \ \ Basic (simple words and phrases only)}
219
+
220
+ \vspace{1em} % Negative vertical space to counteract the vertical space between every \Description command
221
+
222
+ %------------------------------------------------
223
+
224
+ \Description{\MarginText{Interests}Piano\ \ $\cdotp$\ \ Cooking\ \ $\cdotp$\ \ Running\ \ $\cdotp$\ \ Chess\ \ $\cdotp$\ \ Dancing}
225
+
226
+ %----------------------------------------------------------------------------------------
227
+
228
+ \end{cv}
229
+
230
+ \end{document}