linkedin2cv 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.buildpacks +2 -0
- data/.bundle/config +1 -0
- data/.gitignore +7 -0
- data/.node +1 -0
- data/.travis.yml +21 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +119 -0
- data/Procfile +3 -0
- data/README.md +32 -0
- data/Rakefile +6 -0
- data/Vagrantfile +16 -0
- data/app/routes/api.rb +101 -0
- data/app/routes/web.rb +132 -0
- data/app/views/hello.erb +36 -0
- data/app/views/home.erb +12 -0
- data/app/views/index.haml +11 -0
- data/app.rb +26 -0
- data/config.ru +6 -0
- data/config.yml +31 -0
- data/lib/linkedin2cv/cli/command.rb +46 -0
- data/lib/linkedin2cv/converter.rb +116 -0
- data/lib/linkedin2cv/logging.rb +35 -0
- data/lib/linkedin2cv/renderer/latex_renderer.rb +64 -0
- data/lib/linkedin2cv/version.rb +3 -0
- data/linkedin2cv.gemspec +49 -0
- data/public/.bowerrc +3 -0
- data/public/.editorconfig +21 -0
- data/public/.gitattributes +1 -0
- data/public/.gitignore +5 -0
- data/public/.jshintrc +24 -0
- data/public/.travis.yml +7 -0
- data/public/Gruntfile.js +487 -0
- data/public/app/.buildignore +1 -0
- data/public/app/.htaccess +543 -0
- data/public/app/404.html +157 -0
- data/public/app/favicon.ico +0 -0
- data/public/app/images/yeoman.png +0 -0
- data/public/app/index.html +73 -0
- data/public/app/robots.txt +3 -0
- data/public/app/scripts/app.js +20 -0
- data/public/app/scripts/controllers/main.js +21 -0
- data/public/app/scripts/services/linkedin2cv.js +93 -0
- data/public/app/styles/main.scss +95 -0
- data/public/app/views/main.html +23 -0
- data/public/bower.json +19 -0
- data/public/karma-e2e.conf.js +54 -0
- data/public/karma.conf.js +56 -0
- data/public/package.json +41 -0
- data/public/test/.jshintrc +36 -0
- data/public/test/runner.html +10 -0
- data/public/test/spec/controllers/main.js +22 -0
- data/public/test/spec/services/happyapi.js +18 -0
- data/public/test/spec/services/happyservice.js +18 -0
- data/spec/converter_spec.rb +83 -0
- data/spec/mocks/config.yml +31 -0
- data/spec/mocks/profile.json +866 -0
- data/spec/spec_helper.rb +13 -0
- data/templates/cv.erb +327 -0
- data/templates/foo.asciidoc +11 -0
- data/templates/foo.latex +230 -0
- data/test.rb +109 -0
- data/test.sh +6 -0
- data/teust.rb +75 -0
- metadata +434 -0
data/spec/spec_helper.rb
ADDED
@@ -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}
|
data/templates/foo.latex
ADDED
@@ -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}
|