True client/server refactor

This commit is contained in:
Charles N Wyble 2024-12-13 11:33:46 -06:00
parent 7d70e0ecfd
commit 5c63ee2049
26 changed files with 24 additions and 843 deletions

View File

@ -1,121 +0,0 @@
# {{CandidateName}} Candidate Information Sheet
## Introduction
Hello,
I apologize for the form letter response.
I receive a high volume of recruiter emails every day and I've found this letter to be the most efficient way to
handle the high volume of emails and reduce back and forth emails/texts/calls.
If you have any questions/comments/concerns not covered by this document, please let me know via e-mail and I'm happy to address them!
If you ask me something answered in this document, I will not respond and will not move forward with the opportunity, so please read it in detail!
## Re: share my ID over email
I WILL NOT share my (full or redacted) photo ID over email or any other electronic written
communication. If that is "required" then I have no interest in moving forward with this opportunity.
I am happy to get on a teams/zoom/google meet etc call and show my ID.
## Re: professional references
I am happy to provide professional references once an interview with the end client/customer/hiring manager/team has been scheduled. I will NOT provide references up front. If that is "required" then I have no interest in moving forward with this opportunity.
## Re: relocation
if the role is not based in **{{CandidateLocation}}** or **Other Location** I will need to re-locate
| Question | Answer |
|-------------------------------------------|--------|
| Am I open to relocation? | Yes |
| Am I willing to re-locate at own expense? | No |
| Am I open to up to 100% travel | Yes |
Please be aware that:
- I will **only re-locate at the employer expense**.
- I will need **two weeks of time** to re-locate.
- The net amount of the re-location benefit **MUST be at least {{CandidateRelocationNetMinimumAmount}}** to fully compensate me for the time/effort to re-locate.
- The full re-location benefit **must be provided prior to the confirmed start date**.
- I **will NOT** accept a reimbursement based re-location package.
- I am happy to come onsite (at client expense (paid up front)) for training/orientation etc.
\pagebreak
## Rate Schedule (compensation expectations)
### Fully remote roles
I have a **very strong** preference for fully remote roles.
I am open to (at the absolute bottom of my range):
- **{{CandidateRateSheetRemoteW2HourlyMinimum}}** per hour(w2)
- **{{CandidateRateSheetRemoteW2AnnualMinimum}}** annually
- **{{CandidateRateSheetRemote1099HourlyMinimum}}** per hour (1099/corp to corp)
I have a strong preference for roles that are :
- **{{CandidateRateSheetRemoteW2HourlyPrefer}}** per hour(w2) or more
- **{{CandidateRateSheetRemoteW2AnnualPrefer}}** annually or more
- **{{CandidateRateSheetRemote1099HourlyPrefer}}** per hour (1099/corp to corp) or more
### On-site/hybrid roles
- **{{CandidateRateSheetRemoteW2HourlyPrefer}}** per hour(w2) or more
- **{{CandidateRateSheetRemoteW2AnnualPrefer}}** annually or more
- **{{CandidateRateSheetRemote1099HourlyPrefer}}** per hour (1099/corp to corp) or more
In regards to compensation type, I am open to:
- w2
- corp to corp (I have my own LLC)
- 1099
If you have a rate for any of the compensation options above, send them all. I will pick which one works best for my situation and the opportunity.
If it's a different rate with/without benefits, send both.
If the above is in alignment with this opportunity, please feel free to send me an RTR with the best rate you can offer.
\pagebreak
## Details needed for submission
### My resume
[Download Candidate resume(format)](https://some.resume.somewhere/some-Resume.pdf)
I am happy to discuss and make edits to the resume content specific to the opportunity if you feel they are needed.
### Candidate details
Here are my complete candidate details for submission to the role.
| Question | Answer |
|---------------------------------------|-------------------------------------|
| Full name | {{CandidateName}} |
| E-mail address | {{CandiateEmail}} |
| Phone number | {{CandidatePhone}} |
| Preferred form of contact | {{CandidatePreferredContactMethod}} |
| Work authorization | {{CandidateWorkAuthorization}} |
| Are you employed presently? | {{CandidateEmploymentStatus}} |
| Current location | {{CandidateCurrentLocation}} |
| Current timezone | {{CandidateCurrentTimezone}} |
| Timezones I can work in | {{CandidateWorkableTimezones}} |
| Availability to interview | {{CandidateInterviewAvailability}} |
| Availability to start | {{CandidateStartAvailability}} |
| Highest Education | {{CandidateHighestEducation}} |
| Graduated Year | {{CandidateGraduationYear}} |
| Name of school | {{CandidateSchoolName}} |
| Location of school | {{CandidateSchoolLocation}} |
| Linkedin Profile | ({{CandidateLinkedin}}) |
| Github Profile | ({{CandidateGithub}}) |
| Last project | {{CandidateLastProject}} |
| DOB | {{CandidateDOB}} |
| Total IT/career experience | {{CandidateTotalExperience}} |
| Open to in-office/hybrid/remote | Yes |
| Any trips planned in next six months? | No |

View File

@ -1,4 +0,0 @@
{{CandidateName}}
=====
{{CandidateOneLinerSummary}}

View File

@ -1,6 +0,0 @@
{{CandidateName}}
=====
{{CandidateOneLinerSummary}}
[ [Github Profile]({{CandidateGithub}}) ] . [ [Linkedin Profile]({{CandidateLinkedin}}) ] . [ {{CandidateEmail}} ] . [ {{CandidatePhone}} ] . [ {{CandidateLocation}} ]

View File

@ -1,3 +0,0 @@
- Stuff
- Things
- Amazing project!

View File

@ -1,3 +0,0 @@
- Stuff
- Things
- Amazing project!

View File

@ -1,2 +0,0 @@
- Cool project 1.
- cool project 2.

View File

@ -1,2 +0,0 @@
skill1|1 years|skill,1,details,and,stuff
skill2|2 years|skill2,2,details,and,stuff,and,things
1 skill1 1 years skill,1,details,and,stuff
2 skill2 2 years skill2,2,details,and,stuff,and,things

View File

@ -1,2 +0,0 @@
job1,Title of job 1,January 1 1970 - January 6 1980
job2,Title of Job 2,January 1 1970 - January 6 1980
1 job1 Title of job 1 January 1 1970 - January 6 1980
2 job2 Title of Job 2 January 1 1970 - January 6 1980

View File

@ -1,4 +0,0 @@
title,date,awarder,summary
Outstanding Achievement Award,2014-11-01,Tech Company Inc,Excellence in software architecture and team leadership
Innovation Prize,2016-03-15,Industry Association,Breakthrough development in cloud infrastructure
Open Source Contributor Award,2018-06-30,GitHub,Significant contributions to developer tools and libraries
1 title date awarder summary
2 Outstanding Achievement Award 2014-11-01 Tech Company Inc Excellence in software architecture and team leadership
3 Innovation Prize 2016-03-15 Industry Association Breakthrough development in cloud infrastructure
4 Open Source Contributor Award 2018-06-30 GitHub Significant contributions to developer tools and libraries

View File

@ -1,5 +0,0 @@
name,keywords
Gardening,Lazy Gardening
Music,Guitar|Singing|Dancing
Books,Reading|Writing|History
Open Source,All of it
1 name keywords
2 Gardening Lazy Gardening
3 Music Guitar|Singing|Dancing
4 Books Reading|Writing|History
5 Open Source All of it

View File

@ -1,2 +0,0 @@
language,fluency
English,Native speaker
1 language fluency
2 English Native speaker

View File

@ -1,2 +0,0 @@
name,publisher,releaseDate,url,summary
Advanced JavaScript Techniques,Tech Books Publishing,2019-08-01,http://techbookspublishing.com/advanced-javascript,A comprehensive guide to modern JavaScript development.
1 name publisher releaseDate url summary
2 Advanced JavaScript Techniques Tech Books Publishing 2019-08-01 http://techbookspublishing.com/advanced-javascript A comprehensive guide to modern JavaScript development.

View File

@ -1,4 +0,0 @@
name,level,keywords
Frontend,Senior,HTML / JSX|SCSS / CSS / BEM / Styled Components|Javascript / Typescript|React / Next|Redux / Apollo
Backend,Senior,Node|Ruby|Python|Postgres|Redis|Serverless
Devops,Senior,AWS|G Cloud|Heroku|Caching
1 name level keywords
2 Frontend Senior HTML / JSX|SCSS / CSS / BEM / Styled Components|Javascript / Typescript|React / Next|Redux / Apollo
3 Backend Senior Node|Ruby|Python|Postgres|Redis|Serverless
4 Devops Senior AWS|G Cloud|Heroku|Caching

View File

@ -1,2 +0,0 @@
organization,position,url,startDate,summary,highlights
Open Source Project,Contributor,http://opensourceproject.com,2016-01-01,Contributing to open source projects to improve software quality.,Fixed critical bugs and added new features.|Mentored new contributors.
1 organization position url startDate summary highlights
2 Open Source Project Contributor http://opensourceproject.com 2016-01-01 Contributing to open source projects to improve software quality. Fixed critical bugs and added new features.|Mentored new contributors.

View File

@ -1,4 +0,0 @@
name,position,url,startDate,endDate,summary,highlights
Company,President,https://company.com,2013-01-01,2014-01-01,Description...,Started the company
Google,Senior Engineer,https://google.com,2014-01-01,2016-06-30,Led frontend infrastructure.,Launched major features|Mentored junior developers|Improved build system
Startup Inc,CTO,https://startup.com,2016-07-01,,Building next-gen tech.,Grew team to 20 engineers|Architected core platform|Secured Series A funding
1 name position url startDate endDate summary highlights
2 Company President https://company.com 2013-01-01 2014-01-01 Description... Started the company
3 Google Senior Engineer https://google.com 2014-01-01 2016-06-30 Led frontend infrastructure. Launched major features|Mentored junior developers|Improved build system
4 Startup Inc CTO https://startup.com 2016-07-01 Building next-gen tech. Grew team to 20 engineers|Architected core platform|Secured Series A funding

View File

@ -1 +0,0 @@
Working directory for the pipeline. Don't use.

View File

@ -1 +0,0 @@
Working directory for the pipeline. Don't use.

View File

@ -1,14 +0,0 @@
title: "{{CandidateName}} Candidate Information Sheet"
titlepage: true
titlepage-logo: "{{CandidateLogo}}"
toc: true
toc-own-page: true
date: \today
header-left: "\\hspace{1cm}"
header-center: "\\leftmark"
header-right: "Page \\thepage"
footer-left: "{{CandidateName}}"
footer-center: "{{CandidateTagline}}"
footer-right: "[Source code]({{SourceCode}})"
urlcolor: {{URLCOLOR}}
page-background: "{{PAGEBACKGROUND}}"

View File

@ -1,7 +0,0 @@
title: "{{CandidateName}} Resume"
header-left: "\\hspace{1cm}"
header-center: "\\leftmark"
header-right: "Page \\thepage"
footer-left: "{{CandidateName}}"
urlcolor: {{URLCOLOR}}
page-background: "{{PAGEBACKGROUND}}"

View File

@ -1,12 +0,0 @@
title: "{{CandidateName}} Resume"
titlepage: true
titlepage-logo: "{{CandidateLogo}}"
date: \today
header-left: "\\hspace{1cm}"
header-center: "\\leftmark"
header-right: "Page \\thepage"
footer-left: "{{CandidateName}}"
footer-center: "{{CandidateTagline}}"
footer-right: "[Source code]({{SourceCode}})"
urlcolor: {{URLCOLOR}}
page-background: "{{PAGEBACKGROUND}}"

View File

@ -1,77 +0,0 @@
###################################################
# Modify these values to suit
###################################################
########################
# Contact info
########################
export CandidateName="First Middle Last"
export CandidatePhone="1 123 456 7890"
export CandidateRole="Jack of all trades"
export CandidateLocation="Place 1/Place 2"
export CandidateCity="City"
export CandidateCountry="Country"
export CandidateZipCode="Zip"
export CandidateSkypeID="SkypeID"
export CandidateEmail="candidate@domain.com"
export CandidateAvatar="URLTOAVATAR"
export CandidateWebsite="URLTOCANDIDATEWEbSITE"
########################
# Profile information
########################
export CandidateTagline="Your.Tagline.Here."
export CandidateOneLineSummary="Super awesome and stuff."
export CandidateLinkedin="https://www.linkedin.com/in/ab1"
export CandidateGithubUsername="ghuser"
export CandidateTwitterUsername="twxuser"
##########################################
# Layout/title page /formatting options
##########################################
export CandidateLogo=""
export SourceCode="https://git.knownelement.com/reachableceo/MarkdownResume-Pipeline"
export URLCOLOR="blue"
export PAGEBACKGROUND="./background3.pdf"
export JSONRESUME_THEME="professional"
##########################
# Candidate info sheet
##########################
export CandidatePreferredContactMethod="Email will get the fastest response."
export CandidateWorkAuthorization="US Citizen"
export CandidateEmploymentStatus="Not currently employed"
export CandidateCurrentLocation="City,State,Country etc"
export CandidateCurrentTimezone="Timezone"
export CandidateWorkableTimezones="Timezones"
export CandidateInterviewAvailability="Sometime"
export CandidateStartAvailability="Sometime"
export CandidateHighestEducation="Some education level"
export CandidateGraduationYear="Graduation year"
export CandidateSchoolName="School name"
export CandidateSchoolLocation="School location"
export CandidateLastProject="Last project"
export CandidateDOB="MM/DD"
export CandidateTotalExperience="epoch"
########################
#Compensation targets
########################
export CandidateRelocationNetMinimumAmount="1,987.11"
export CandidateRateSheetRemoteW2HourlyMinimum="\$12.34"
export CandidateRateSheetRemoteW2AnnualMinimum="\$123,456.00"
export CandidateRateSheetRemote1099HourlyMinimum="\$56.78"
export CandidateRateSheetRemoteW2HourlyPrefer="\$34.56"
export CandidateRateSheetRemoteW2AnnualPrefer="\$321,987.00"
export CandidateRateSheetRemote1099HourlyPrefer="\$78.90"
export CandidateCertifications=""
export CandidateReferences=""

Binary file not shown.

View File

@ -1,329 +0,0 @@
#!/bin/bash
#####################################################################################################
#JSON Resume
#####################################################################################################
export BUILD_OUTPUT_DIR="../build-output/JSONResume/"
export JSON_TEMPLATE_DIRECTORY="../Templates/JSONResume/"
###################################################################
# Modify the CandiateVariables.env file to refelct your information
###################################################################
###################################################
source "./CandidateVariables.env"
####################################################
####################################################
####################################################
#DO NOT CHANGE ANYTHING BELOW THIS LINE
####################################################
####################################################
####################################################
add_header()
{
echo "{" > $BUILD_OUTPUT_DIR/resume.json
}
add_meta_section()
{
cat << META >> $BUILD_OUTPUT_DIR/resume.json
"meta": {
"theme": "$JSONRESUME_THEME"
},
META
}
add_basics_section()
{
cat << BASICS >> $BUILD_OUTPUT_DIR/resume.json
"basics": {
"name": "$CandidateName",
"phone": "$CandidatePhone",
"label": "$CandidateRole",
"image": "$CandidateAvatar",
"summary": "$CandidateOneLineSummary",
"website": "$CandidateWebsite",
"url": "https://lordajax.com",
"email": "$CandidateEmail",
"location": {
"city": "$CandidateLocation",
"countryCode": "$CandidateCountry"
},
},
BASICS
}
add_work_section()
{
local input_file=$JSON_TEMPLATE_DIRECTORY/work.csv
cat << 'WORK_START'
"work": [
WORK_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"name\": \"%s\",\n", $1
printf " \"position\": \"%s\",\n", $2
printf " \"url\": \"%s\",\n", $3
printf " \"startDate\": \"%s\",\n", $4
if ($5 != "") printf " \"endDate\": \"%s\",\n", $5
printf " \"summary\": \"%s\",\n", $6
printf " \"highlights\": [\n \"%s\"\n ]\n", gensub(/\|/, "\",\n \"", "g", $7)
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'WORK_END'
],
WORK_END
}
add_volunteer_section()
{
local input_file="$JSON_TEMPLATE_DIRECTORY/volunteer.csv"
cat << 'VOLUNTEER_START' >> $BUILD_OUTPUT_DIR/resume.json
"volunteer": [
VOLUNTEER_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"organization\": \"%s\",\n", $1
printf " \"position\": \"%s\",\n", $2
printf " \"url\": \"%s\",\n", $3
printf " \"startDate\": \"%s\",\n", $3
printf " \"endDate\": \"%s\",\n", $3
printf " \"summary\": \"%s\"\n", $4
printf " \"highlights\": ["
printf " " $7
printf " ]"
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'VOLUNTEER_END'
],
VOLUNTEER_END
}
add_awards_section()
{
local input_file=$JSON_TEMPLATE_DIRECTORY/awards.csv
cat << 'AWARDS_START' >> $BUILD_OUTPUT_DIR/resume.json
"awards": [
AWARDS_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"title\": \"%s\",\n", $1
printf " \"date\": \"%s\",\n", $2
printf " \"awarder\": \"%s\",\n", $3
printf " \"summary\": \"%s\"\n", $4
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'AWARDS_END'
],
AWARDS_END
}
add_publications_section()
{
local input_file=$JSON_TEMPLATE_DIRECTORY/publications.csv
cat << 'PUBLICATIONS_START' >> $BUILD_OUTPUT_DIR/resume.json
"publications": [
PUBLICATIONS_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"name\": \"%s\",\n", $1
printf " \"publisher\": \"%s\",\n", $2
printf " \"releaseDate\": \"%s\",\n", $3
printf " \"url\": \"%s\",\n", $4
printf " \"summary\": \"%s\"\n", $5
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'PUBLICATIONS_END'
],
PUBLICATIONS_END
}
add_volunteer_section()
{
local input_file=$JSON_TEMPLATE_DIRECTORY/volunteer.csv
cat << 'VOLUNTEER_START' >> $BUILD_OUTPUT_DIR/resume.json
"volunteer": [
VOLUNTEER_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"organization\": \"%s\",\n", $1
printf " \"position\": \"%s\",\n", $2
printf " \"url\": \"%s\",\n", $3
printf " \"startDate\": \"%s\",\n", $4
printf " \"summary\": \"%s\",\n", $5
printf " \"highlights\": [\n \"%s\"\n ]\n", gensub(/\|/, "\",\n \"", "g", $6)
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'VOLUNTEER_END'
],
VOLUNTEER_END
}
add_skills_section()
{
local input_file="$JSON_TEMPLATE_DIRECTORY/skills.csv"
cat << 'SKILLS_START' >> $BUILD_OUTPUT_DIR/resume.json
"skills": [
SKILLS_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"keywords\": [\n \"%s\"\n ],\n", gensub(/\|/, "\",\n \"", "g", $3)
printf " \"level\": \"%s\",\n", $2
printf " \"name\": \"%s\"\n", $1
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'SKILLS_END'
],
SKILLS_END
}
add_education_section()
{
local input_file="$JSON_TEMPLATE_DIRECTORY/education.csv"
cat << 'EDUCATION_START' >> $BUILD_OUTPUT_DIR/resume.json
"education": [
EDUCATION_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"institution\": \"%s\",\n", $1
if ($2 != "") printf " \"url\": \"%s\",\n", $2
printf " \"area\": \"%s\",\n", $3
printf " \"studyType\": \"%s\",\n", $4
printf " \"startDate\": \"%s\",\n", $5
printf " \"endDate\": \"%s\"", $6
if ($7 != "") printf ",\n \"score\": \"%s\"", $7
if ($8 != "") printf ",\n \"courses\": [\n \"%s\"\n ]", gensub(/\|/, "\",\n \"", "g", $8)
printf "\n }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'EDUCATION_END'
],
EDUCATION_END
}
add_languages_section()
{
local input_file="$JSON_TEMPLATE_DIRECTORY/languages.csv"
cat << 'LANGUAGES_START' >> $BUILD_OUTPUT_DIR/resume.json
"languages": [
LANGUAGES_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"language\": \"%s\",\n", $1
printf " \"fluency\": \"%s\"\n", $2
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'LANGUAGES_END'
],
LANGUAGES_END
}
add_interests_section()
{
local input_file="$JSON_TEMPLATE_DIRECTORY/interests.csv"
cat << 'INTERESTS_START' >> $BUILD_OUTPUT_DIR/resume.json
"interests": [
INTERESTS_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"name\": \"%s\",\n", $1
printf " \"keywords\": [\n \"%s\"\n ]\n", gensub(/\|/, "\",\n \"", "g", $2)
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'INTERESTS_END'
],
INTERESTS_END
}
add_references_section()
{
local input_file="$JSON_TEMPLATE_DIRECTORY/references.csv"
cat << 'REFERENCES_START' >> $BUILD_OUTPUT_DIR/resume.json
"references": [
REFERENCES_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"name\": \"%s\",\n", $1
printf " \"reference\": \"%s\"\n", $2
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'REFERENCES_END'
]
REFERENCES_END
}
add_footer()
{
echo "}" >> $BUILD_OUTPUT_DIR/resume.json
}
main()
{
add_header
add_meta_section $JSON_TEMPLATE_DIRECTORY/meta.csv
add_basics_section $JSON_TEMPLATE_DIRECTORY/basics.csv
#add_profiles_section $JSON_TEMPLATE_DIRECTORY/profiles.csv
#add_work_section $JSON_TEMPLATE_DIRECTORY/work.csv
#add_volunteer_section $JSON_TEMPLATE_DIRECTORY/volunteer.csv
#add_education-section $JSON_TEMPLATE_DIRECTORY/education.csv
#add_awards_section $JSON_TEMPLATE_DIRECTORY/awards.csv
#add_certificates_section $JSON_TEMPLATE_DIRECTORY/certificates.csv
#add_publications_section $JSON_TEMPLATE_DIRECTORY/publications.csv
#add_skills_section $JSON_TEMPLATE_DIRECTORY/skills.csv
#add_languages_section $JSON_TEMPLATE_DIRECTORY/languages.csv
#add_interests_section $JSON_TEMPLATE_DIRECTORY/interests.csv
#add_references_section $JSON_TEMPLATE_DIRECTORY/references.csv
#add_projects_section $JSON_TEMPLATE_DIRECTORY/projects.csv
add_footer
}
main

View File

@ -1,212 +0,0 @@
#!/usr/bin/env bash
# This is a demo used for testing the build pipeline end to end in a self contained way.
# It's only used by developers of this repository for testing/validating changes.
# Your client repository has a build-pipeline-client.sh script and it uses
# build-pipeline-server.sh, not this script.
###################################################################
# Modify the CandiateVariables.env file to refelct your information
###################################################################
###################################################
source "./CandidateVariables.env"
####################################################
####################################################
####################################################
#DO NOT CHANGE ANYTHING BELOW THIS LINE
####################################################
####################################################
####################################################
############################################################
# Setup globals
############################################################
readonly MO_PATH="bash ../vendor/git.knownelement.com/ExternalVendorCode/mo/mo"
readonly BUILD_OUTPUT_DIR="../build-output/MarkdownResume/"
readonly BUILD_TEMP_DIR="../build-temp/MarkdownResume"
readonly BUILDYAML_JOBBOARD="$BUILD_TEMP_DIR/JobBoard.yml"
readonly BUILDYAML_CLIENTSUBMISSION="$BUILD_TEMP_DIR/ClientSubmission.yml"
readonly BUILDYAML_CANDIDATEINFOSHEET="$BUILD_TEMP_DIR/CandidateInfoSheet.yml"
CandidateInfoSheetMarkdownOutputFile="$BUILD_OUTPUT_DIR/CandidateInfoSheet.md"
CandidateInfoSheetPDFOutputFIle="$BUILD_OUTPUT_DIR/CandidateInfoSheet.pdf"
JobBoardMarkdownOutputFile="$BUILD_OUTPUT_DIR/job-board/Resume.md"
JobBoardPDFOutputFile="$BUILD_OUTPUT_DIR/job-board/Resume.pdf"
JobBoardMSWordOutputFile="$BUILD_OUTPUT_DIR/job-board/Resume.doc"
ClientSubmissionMarkdownOutputFile="$BUILD_OUTPUT_DIR/client-submission/Resume.md"
ClientSubmissionPDFOutputFile="$BUILD_OUTPUT_DIR/client-submission//Resume.pdf"
ClientSubmissionMSWordOutputFile="$BUILD_OUTPUT_DIR/client-submission/Resume.doc"
echo "Cleaning up from previous runs..."
rm $BUILDYAML_CANDIDATEINFOSHEET
rm $CandidateInfoSheetMarkdownOutputFile
rm $CandidateInfoSheetPDFOutputFIle
rm $BUILDYAML_JOBBOARD
rm $JobBoardMarkdownOutputFile
rm $JobBoardPDFOutputFile
rm $JobBoardMSWordOutputFile
rm $BUILDYAML_CLIENTSUBMISSION
rm $ClientSubmissionMarkdownOutputFile
rm $ClientSubmissionPDFOutputFile
rm $ClientSubmissionMSWordOutputFile
# Expand variables into rendered YAML files. These will be used by pandoc to create the output artifacts
$MO_PATH ./BuildTemplate-CandidateInfoSheet.yml > $BUILDYAML_CANDIDATEINFOSHEET
$MO_PATH ./BuildTemplate-JobBoard.yml > $BUILDYAML_JOBBOARD
$MO_PATH ./BuildTemplate-ClientSubmission.yml > $BUILDYAML_CLIENTSUBMISSION
echo "Creating candidate info sheet..."
$MO_PATH ../Templates/MarkdownResume/CandidateInfoSheet/CandidateInfoSheet.md > $CandidateInfoSheetMarkdownOutputFile
pandoc \
"$CandidateInfoSheetMarkdownOutputFile" \
--template eisvogel \
--metadata-file="$BUILD_TEMP_DIR/CandidateInfoSheet.yml" \
--from markdown \
--to=pdf \
--output $CandidateInfoSheetPDFOutputFIle
echo "Combining markdown files into single input file for pandoc..."
# Create contact info md file
$MO_PATH ../Templates/MarkdownResume/ContactInfo/ContactInfo-JobBoard.md > $BUILD_TEMP_DIR/ContactInfo-JobBoard.md
$MO_PATH ../Templates/MarkdownResume/ContactInfo/ContactInfo-ClientSubmit.md > $BUILD_TEMP_DIR/ContactInfo-ClientSubmit.md
#Pull in contact info
cat $BUILD_TEMP_DIR/ContactInfo-JobBoard.md >> $JobBoardMarkdownOutputFile
echo " " >> $JobBoardMarkdownOutputFile
cat $BUILD_TEMP_DIR/ContactInfo-ClientSubmit.md >> $ClientSubmissionMarkdownOutputFile
echo " " >> $ClientSubmissionMarkdownOutputFile
echo "## Career Highlights" >> $JobBoardMarkdownOutputFile
echo "## Career Highlights" >> $ClientSubmissionMarkdownOutputFile
cat ../Templates/MarkdownResume/SkillsAndProjects/Projects.md >> $JobBoardMarkdownOutputFile
echo "\pagebreak" >> $JobBoardMarkdownOutputFile
cat ../Templates/MarkdownResume/SkillsAndProjects/Projects.md >> $ClientSubmissionMarkdownOutputFile
echo "\pagebreak" >> $ClientSubmissionMarkdownOutputFile
echo " " >> $JobBoardMarkdownOutputFile
echo "## Employment History" >> $JobBoardMarkdownOutputFile
echo " " >> $JobBoardMarkdownOutputFile
echo " " >> $ClientSubmissionMarkdownOutputFile
echo "## Employment History" >> $ClientSubmissionMarkdownOutputFile
echo " " >> $ClientSubmissionMarkdownOutputFile
#And here we do some magic...
#Pull in :
# employer
# title
# start/end dates of employment
# long form position summary data from each position
IFS=$'\n\t'
for position in \
$(cat ../Templates/MarkdownResume/WorkHistory/WorkHistory.csv); do
COMPANY="$(echo $position|awk -F ',' '{print $1}')"
TITLE="$(echo $position|awk -F ',' '{print $2}')"
DATEOFEMPLOY="$(echo $position|awk -F ',' '{print $3}')"
echo " " >> "$JobBoardMarkdownOutputFile"
echo "**$COMPANY | $TITLE | $DATEOFEMPLOY**" >> $JobBoardMarkdownOutputFile
echo " " >> "$JobBoardMarkdownOutputFile"
echo "**$COMPANY | $TITLE | $DATEOFEMPLOY**" >> $ClientSubmissionMarkdownOutputFile
echo " " >> "$ClientSubmissionMarkdownOutputFile"
echo " " >> "$JobBoardMarkdownOutputFile"
cat ../Templates/MarkdownResume/JobHistoryDetails/$COMPANY.md >> "$JobBoardMarkdownOutputFile"
echo " " >> "$JobBoardMarkdownOutputFile"
cat ../Templates/MarkdownResume/JobHistoryDetails/$COMPANY.md >> "$ClientSubmissionMarkdownOutputFile"
echo " " >> "$ClientSubmissionMarkdownOutputFile"
done
#Pull in my skills and generate a beautiful table.
echo "\pagebreak" >> $JobBoardMarkdownOutputFile
echo " " >> "$JobBoardMarkdownOutputFile"
echo "## Skills" >> "$JobBoardMarkdownOutputFile"
echo " " >> "$JobBoardMarkdownOutputFile"
echo "\pagebreak" >> $ClientSubmissionMarkdownOutputFile
echo " " >> "$ClientSubmissionMarkdownOutputFile"
echo "## Skills" >> "$ClientSubmissionMarkdownOutputFile"
echo " " >> "$ClientSubmissionMarkdownOutputFile"
#Table heading
echo "|Skill|Experience|Skill Details|" >> $JobBoardMarkdownOutputFile
echo "|---|---|---|" >> $JobBoardMarkdownOutputFile
echo "|Skill|Experience|Skill Details|" >> $ClientSubmissionMarkdownOutputFile
echo "|---|---|---|" >> $ClientSubmissionMarkdownOutputFile
#Table rows
IFS=$'\n\t'
for skill in \
$(cat ../Templates/MarkdownResume/SkillsAndProjects/Skills.csv); do
SKILL_NAME="$(echo $skill|awk -F '|' '{print $1}')"
SKILL_YEARS="$(echo $skill|awk -F '|' '{print $2}')"
SKILL_DETAIL="$(echo $skill|awk -F '|' '{print $3}')"
echo "|**$SKILL_NAME**|$SKILL_YEARS|$SKILL_DETAIL|" >> $JobBoardMarkdownOutputFile
echo "|**$SKILL_NAME**|$SKILL_YEARS|$SKILL_DETAIL|" >> $ClientSubmissionMarkdownOutputFile
done
unset IFS
echo "Generating PDF output for job board version..."
pandoc \
"$JobBoardMarkdownOutputFile" \
--template eisvogel \
--metadata-file="$BUILD_TEMP_DIR/JobBoard.yml" \
--from markdown \
--to=pdf \
--output $JobBoardPDFOutputFile
echo "Generating MSWord output for job board version..."
pandoc \
"$JobBoardMarkdownOutputFile" \
--metadata-file="$BUILD_TEMP_DIR/JobBoard.yml" \
--from markdown \
--to=docx \
--reference-doc=resume-docx-reference.docx \
--output $JobBoardMSWordOutputFile
echo "Generating PDF output for client submission version..."
pandoc \
"$ClientSubmissionMarkdownOutputFile" \
--template eisvogel \
--metadata-file="$BUILD_TEMP_DIR/ClientSubmission.yml" \
--from markdown \
--to=pdf \
--output $ClientSubmissionPDFOutputFile
echo "Generating MSWord output for client submission version..."
pandoc \
"$ClientSubmissionMarkdownOutputFile" \
--metadata-file="$BUILD_TEMP_DIR/ClientSubmission.yml" \
--from markdown \
--to=docx \
--reference-doc=resume-docx-reference.docx \
--output $ClientSubmissionMSWordOutputFile

View File

@ -41,32 +41,32 @@ pandoc \
echo "Combining markdown files into single input file for pandoc..." echo "Combining markdown files into single input file for pandoc..."
# Create contact info md file # Create contact info md file
$MO_PATH $PipelineClientWorkingDir/Templates/ContactInfo/ContactInfo-JobBoard.md > $BUILD_TEMP_DIR/ContactInfo-JobBoard.md $MO_PATH "$PipelineClientWorkingDir/Templates/ContactInfo/ContactInfo-JobBoard.md" > "$BUILD_TEMP_DIR/ContactInfo-JobBoard.md"
$MO_PATH $PipelineClientWorkingDir/Templates/ContactInfo/ContactInfo-ClientSubmit.md > $BUILD_TEMP_DIR/ContactInfo-ClientSubmit.md $MO_PATH "$PipelineClientWorkingDir/Templates/ContactInfo/ContactInfo-ClientSubmit.md" > "$BUILD_TEMP_DIR/ContactInfo-ClientSubmit.md"
#Pull in contact info #Pull in contact info
cat $BUILD_TEMP_DIR/ContactInfo-JobBoard.md >> $JobBoardMarkdownOutputFile cat $BUILD_TEMP_DIR/ContactInfo-JobBoard.md >> "$JobBoardMarkdownOutputFile"
echo " " >> $JobBoardMarkdownOutputFile echo " " >> "$JobBoardMarkdownOutputFile"
cat $BUILD_TEMP_DIR/ContactInfo-ClientSubmit.md >> $ClientSubmissionMarkdownOutputFile cat $BUILD_TEMP_DIR/ContactInfo-ClientSubmit.md >> $ClientSubmissionMarkdownOutputFile
echo " " >> $ClientSubmissionMarkdownOutputFile echo " " >> "$ClientSubmissionMarkdownOutputFile"
echo "## Career Highlights" >> $JobBoardMarkdownOutputFile echo "## Career Highlights" >> "$JobBoardMarkdownOutputFile"
echo "## Career Highlights" >> $ClientSubmissionMarkdownOutputFile echo "## Career Highlights" >> "$ClientSubmissionMarkdownOutputFile"
cat $PipelineClientWorkingDir/Templates/SkillsAndProjects/Projects.md >> $JobBoardMarkdownOutputFile cat $PipelineClientWorkingDir/Templates/SkillsAndProjects/Projects.md >> "$JobBoardMarkdownOutputFile"
echo "\pagebreak" >> $JobBoardMarkdownOutputFile echo "\pagebreak" >> $JobBoardMarkdownOutputFile
cat $PipelineClientWorkingDir/Templates/SkillsAndProjects/Projects.md >> $ClientSubmissionMarkdownOutputFile cat $PipelineClientWorkingDir/Templates/SkillsAndProjects/Projects.md >> "$ClientSubmissionMarkdownOutputFile"
echo "\pagebreak" >> $ClientSubmissionMarkdownOutputFile echo "\pagebreak" >> "$ClientSubmissionMarkdownOutputFile"
echo " " >> $JobBoardMarkdownOutputFile echo " " >> "$JobBoardMarkdownOutputFile"
echo "## Employment History" >> $JobBoardMarkdownOutputFile echo "## Employment History" >> "$JobBoardMarkdownOutputFile"
echo " " >> $JobBoardMarkdownOutputFile echo " " >> "$JobBoardMarkdownOutputFile"
echo " " >> $ClientSubmissionMarkdownOutputFile echo " " >> "$ClientSubmissionMarkdownOutputFile"
echo "## Employment History" >> $ClientSubmissionMarkdownOutputFile echo "## Employment History" >> "$ClientSubmissionMarkdownOutputFile"
echo " " >> $ClientSubmissionMarkdownOutputFile echo " " >> "$ClientSubmissionMarkdownOutputFile"
#And here we do some magic... #And here we do some magic...
#Pull in : #Pull in :
@ -101,12 +101,12 @@ done
#Pull in my skills and generate a beautiful table. #Pull in my skills and generate a beautiful table.
echo "\pagebreak" >> $JobBoardMarkdownOutputFile echo "\pagebreak" >> "$JobBoardMarkdownOutputFile"
echo " " >> "$JobBoardMarkdownOutputFile" echo " " >> "$JobBoardMarkdownOutputFile"
echo "## Skills" >> "$JobBoardMarkdownOutputFile" echo "## Skills" >> "$JobBoardMarkdownOutputFile"
echo " " >> "$JobBoardMarkdownOutputFile" echo " " >> "$JobBoardMarkdownOutputFile"
echo "\pagebreak" >> $ClientSubmissionMarkdownOutputFile echo "\pagebreak" >> "$ClientSubmissionMarkdownOutputFile"
echo " " >> "$ClientSubmissionMarkdownOutputFile" echo " " >> "$ClientSubmissionMarkdownOutputFile"
echo "## Skills" >> "$ClientSubmissionMarkdownOutputFile" echo "## Skills" >> "$ClientSubmissionMarkdownOutputFile"
echo " " >> "$ClientSubmissionMarkdownOutputFile" echo " " >> "$ClientSubmissionMarkdownOutputFile"
@ -125,8 +125,8 @@ $(cat $PipelineClientWorkingDir/Templates/SkillsAndProjects/Skills.csv); do
SKILL_NAME="$(echo $skill|awk -F '|' '{print $1}')" SKILL_NAME="$(echo $skill|awk -F '|' '{print $1}')"
SKILL_YEARS="$(echo $skill|awk -F '|' '{print $2}')" SKILL_YEARS="$(echo $skill|awk -F '|' '{print $2}')"
SKILL_DETAIL="$(echo $skill|awk -F '|' '{print $3}')" SKILL_DETAIL="$(echo $skill|awk -F '|' '{print $3}')"
echo "|**$SKILL_NAME**|$SKILL_YEARS|$SKILL_DETAIL|" >> $JobBoardMarkdownOutputFile echo "|**$SKILL_NAME**|$SKILL_YEARS|$SKILL_DETAIL|" >> "$JobBoardMarkdownOutputFile"
echo "|**$SKILL_NAME**|$SKILL_YEARS|$SKILL_DETAIL|" >> $ClientSubmissionMarkdownOutputFile echo "|**$SKILL_NAME**|$SKILL_YEARS|$SKILL_DETAIL|" >> "$ClientSubmissionMarkdownOutputFile"
done done
unset IFS unset IFS
@ -139,7 +139,7 @@ pandoc \
--metadata-file="$PipelineClientWorkingDir/build-temp/JobBoard.yml" \ --metadata-file="$PipelineClientWorkingDir/build-temp/JobBoard.yml" \
--from markdown \ --from markdown \
--to=pdf \ --to=pdf \
--output $JobBoardPDFOutputFile --output "$JobBoardPDFOutputFile"
echo "Generating MSWord output for job board version..." echo "Generating MSWord output for job board version..."
@ -149,7 +149,7 @@ pandoc \
--from markdown \ --from markdown \
--to=docx \ --to=docx \
--reference-doc="$PipelineClientWorkingDir/build/resume-docx-reference.docx" \ --reference-doc="$PipelineClientWorkingDir/build/resume-docx-reference.docx" \
--output $JobBoardMSWordOutputFile --output "$JobBoardMSWordOutputFile"
echo "Generating PDF output for client submission version..." echo "Generating PDF output for client submission version..."
@ -159,7 +159,7 @@ pandoc \
--metadata-file="$PipelineClientWorkingDir/build-temp/ClientSubmission.yml" \ --metadata-file="$PipelineClientWorkingDir/build-temp/ClientSubmission.yml" \
--from markdown \ --from markdown \
--to=pdf \ --to=pdf \
--output $ClientSubmissionPDFOutputFile --output "$ClientSubmissionPDFOutputFile"
echo "Generating MSWord output for client submission version..." echo "Generating MSWord output for client submission version..."
@ -169,7 +169,7 @@ pandoc \
--from markdown \ --from markdown \
--to=docx \ --to=docx \
--reference-doc="$PipelineClientWorkingDir/build/resume-docx-reference.docx" \ --reference-doc="$PipelineClientWorkingDir/build/resume-docx-reference.docx" \
--output $ClientSubmissionMSWordOutputFile --output "$ClientSubmissionMSWordOutputFile"

Binary file not shown.