Squashed 'vendor/git.knownelement.com/reachableceo/MarkdownResume-Pipeline/' changes from 7454bad..1d37671

1d37671 refactor...
d617700 refactor...
659ed76 refactor...
a62bcb3 refactor...
4665979 refactor...
aa9a9a9 refactor...
9e97af3 refactor...
d9ef630 refactor...
171eb46 refactor...
1fba3a2 refactor...
5bb19c8 more refactor bits
c5b5557 True client/server refactor .
5c63ee2 True client/server refactor
7d70e0e json refactor
97fff83 json resume skeleton coming together
7f7f284 merged various additional candidate fields from the json to markdown. going to use chatgpt for the csv/json bits .
f734bc7 starting work on json resume output for use with reactive resume and fluentcv

git-subtree-dir: vendor/git.knownelement.com/reachableceo/MarkdownResume-Pipeline
git-subtree-split: 1d37671cfa9e4b56894d66bb6d4f96e4626613c2
This commit is contained in:
Charles N Wyble 2024-12-13 13:01:31 -06:00
parent 0fc507c735
commit 9555692b51
22 changed files with 158 additions and 746 deletions

11
.gitignore vendored
View File

@ -1,9 +1,2 @@
build-output/client-submission/*.md build-output/*
build-output/client-submission/*.pdf build-temp/*
build-output/client-submission/*.doc
build-output/CandidateInfoSheet*
build-output/job-board/*.md
build-output/job-board/*.pdf
build-output/job-board/*.doc
build-temp/*.yml
build-temp/*.md

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,121 +0,0 @@
# First Middle Last 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 **Place 1/Place 2** 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 1,987.11** 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):
- **$12.34** per hour(w2)
- **$123,456.00** annually
- **$56.78** per hour (1099/corp to corp)
I have a strong preference for roles that are :
- **$34.56** per hour(w2) or more
- **$321,987.00** annually or more
- **$78.90** per hour (1099/corp to corp) or more
### On-site/hybrid roles
- **$34.56** per hour(w2) or more
- **$321,987.00** annually or more
- **$78.90** 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 | First Middle Last |
| E-mail address | |
| Phone number | 1 123 456 7890 |
| Preferred form of contact | Email will get the fastest response. |
| Work authorization | US Citizen |
| Are you employed presently? | Not currently employed |
| Current location | City,State,Country etc |
| Current timezone | Timezone |
| Timezones I can work in | Timezones |
| Availability to interview | Sometime |
| Availability to start | Sometime |
| Highest Education | Some education level |
| Graduated Year | Graduation year |
| Name of school | School name |
| Location of school | School location |
| Linkedin Profile | (https://www.linkedin.com/) |
| Github Profile | (https://www.github.com/) |
| Last project | Last project |
| DOB | MM/DD |
| Total IT/career experience | epoch |
| Open to in-office/hybrid/remote | Yes |
| Any trips planned in next six months? | No |

View File

@ -1 +0,0 @@
This directory is used by the build process. Ignore it.

View File

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

View File

@ -1 +0,0 @@
This directory is used by the build process. Ignore it.

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}}"

Binary file not shown.

View File

@ -1,268 +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 these values to suit
###################################################
########################
# Contact info
########################
export CandidateName="First Middle Last"
export CandidatePhone="1 123 456 7890"
export CandidateLocation="Place 1/Place 2"
export CandidateEmail="candidate@domain.com"
########################
# Profile information
########################
export CandidateOneLineSummary="Super awesome and stuff."
export CandidateLinkedin="https://www.linkedin.com/"
export CandidateGithub="https://www.github.com/"
export CandidateTagline="Your.Tagline.Here."
########################
# Formatting options
########################
export CandidateLogo=""
export SourceCode="https://git.knownelement.com/reachableceo/MarkdownResume-Pipeline"
export URLCOLOR="blue"
export PAGEBACKGROUND="./background3.pdf"
##########################
# 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"
####################################################
#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"
readonly BUILD_TEMP_DIR="../build-temp"
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/CandidateInfoSheet/CandidateInfoSheet.md > $CandidateInfoSheetMarkdownOutputFile
pandoc \
"$CandidateInfoSheetMarkdownOutputFile" \
--template eisvogel \
--metadata-file="../build-temp/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/ContactInfo/ContactInfo-JobBoard.md > $BUILD_TEMP_DIR/ContactInfo-JobBoard.md
$MO_PATH ../Templates/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/SkillsAndProjects/Projects.md >> $JobBoardMarkdownOutputFile
echo "\pagebreak" >> $JobBoardMarkdownOutputFile
cat ../Templates/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/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/JobHistoryDetails/$COMPANY.md >> "$JobBoardMarkdownOutputFile"
echo " " >> "$JobBoardMarkdownOutputFile"
cat ../Templates/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/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/JobBoard.yml" \
--from markdown \
--to=pdf \
--output $JobBoardPDFOutputFile
echo "Generating MSWord output for job board version..."
pandoc \
"$JobBoardMarkdownOutputFile" \
--metadata-file="../build-temp/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/ClientSubmission.yml" \
--from markdown \
--to=pdf \
--output $ClientSubmissionPDFOutputFile
echo "Generating MSWord output for client submission version..."
pandoc \
"$ClientSubmissionMarkdownOutputFile" \
--metadata-file="../build-temp/ClientSubmission.yml" \
--from markdown \
--to=docx \
--reference-doc=resume-docx-reference.docx \
--output $ClientSubmissionMSWordOutputFile

View File

@ -0,0 +1,156 @@
#!/usr/bin/env bash
#####################################################################################################
#Markdown to PDF/MSWord Resumek and candidate info sheet
#####################################################################################################
# Expand variables into rendered YAML files. These will be used by pandoc to create the output artifacts
$MO_PATH $PipelineClientWorkingDir/build/BuildTemplate-CandidateInfoSheet.yml > $BUILDYAML_CANDIDATEINFOSHEET
$MO_PATH $PipelineClientWorkingDir/build/BuildTemplate-JobBoard.yml > $BUILDYAML_JOBBOARD
$MO_PATH $PipelineClientWorkingDir/build/BuildTemplate-ClientSubmission.yml > $BUILDYAML_CLIENTSUBMISSION
echo "Creating candidate info sheet..."
$MO_PATH $PipelineClientWorkingDir/Templates/MarkdownResume/CandidateInfoSheet/CandidateInfoSheet.md > "$CandidateInfoSheetMarkdownOutputFile"
pandoc \
"$CandidateInfoSheetMarkdownOutputFile" \
--template eisvogel \
--metadata-file="$PipelineClientWorkingDir/build-temp/MarkdownResume/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 "$PipelineClientWorkingDir/Templates/MarkdownResume/ContactInfo/ContactInfo-JobBoard.md" > "$BUILD_TEMP_DIR/ContactInfo-JobBoard.md"
$MO_PATH "$PipelineClientWorkingDir/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 "$PipelineClientWorkingDir/Templates/MarkdownResume/SkillsAndProjects/Projects.md" >> "$JobBoardMarkdownOutputFile"
echo "\pagebreak" >> "$JobBoardMarkdownOutputFile"
cat "$PipelineClientWorkingDir/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 "$PipelineClientWorkingDir/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 "$PipelineClientWorkingDir/Templates/MarkdownResume/JobHistoryDetails/$COMPANY.md" >> "$JobBoardMarkdownOutputFile"
echo " " >> "$JobBoardMarkdownOutputFile"
cat "$PipelineClientWorkingDir/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 "$PipelineClientWorkingDir/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="$PipelineClientWorkingDir/build-temp/MarkdownResume/JobBoard.yml" \
--from markdown \
--to=pdf \
--output "$JobBoardPDFOutputFile"
echo "Generating MSWord output for job board version..."
pandoc \
"$JobBoardMarkdownOutputFile" \
--metadata-file="$PipelineClientWorkingDir/build-temp/MarkdownResume/JobBoard.yml" \
--from markdown \
--to=docx \
--reference-doc="$PipelineClientWorkingDir/build/resume-docx-reference.docx" \
--output "$JobBoardMSWordOutputFile"
echo "Generating PDF output for client submission version..."
pandoc \
"$ClientSubmissionMarkdownOutputFile" \
--template eisvogel \
--metadata-file="$PipelineClientWorkingDir/build-temp/MarkdownResume/ClientSubmission.yml" \
--from markdown \
--to=pdf \
--output "$ClientSubmissionPDFOutputFile"
echo "Generating MSWord output for client submission version..."
pandoc \
"$ClientSubmissionMarkdownOutputFile" \
--metadata-file="$PipelineClientWorkingDir/build-temp/MarkdownResume/ClientSubmission.yml" \
--from markdown \
--to=docx \
--reference-doc="$PipelineClientWorkingDir/build/resume-docx-reference.docx" \
--output "$ClientSubmissionMSWordOutputFile"

View File

@ -1,168 +0,0 @@
#!/usr/bin/env bash
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 $PipelineClientWorkingDir/build/BuildTemplate-CandidateInfoSheet.yml > $BUILDYAML_CANDIDATEINFOSHEET
$MO_PATH $PipelineClientWorkingDir/build/BuildTemplate-JobBoard.yml > $BUILDYAML_JOBBOARD
$MO_PATH $PipelineClientWorkingDir/build/BuildTemplate-ClientSubmission.yml > $BUILDYAML_CLIENTSUBMISSION
echo "Creating candidate info sheet..."
$MO_PATH $PipelineClientWorkingDir/Templates/CandidateInfoSheet/CandidateInfoSheet.md > $CandidateInfoSheetMarkdownOutputFile
pandoc \
"$CandidateInfoSheetMarkdownOutputFile" \
--template eisvogel \
--metadata-file="$PipelineClientWorkingDir/build-temp/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 $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
#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 $PipelineClientWorkingDir/Templates/SkillsAndProjects/Projects.md >> $JobBoardMarkdownOutputFile
echo "\pagebreak" >> $JobBoardMarkdownOutputFile
cat $PipelineClientWorkingDir/Templates/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 $PipelineClientWorkingDir/Templates/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 $PipelineClientWorkingDir/Templates/JobHistoryDetails/$COMPANY.md >> "$JobBoardMarkdownOutputFile"
echo " " >> "$JobBoardMarkdownOutputFile"
cat $PipelineClientWorkingDir/Templates/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 $PipelineClientWorkingDir/Templates/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="$PipelineClientWorkingDir/build-temp/JobBoard.yml" \
--from markdown \
--to=pdf \
--output $JobBoardPDFOutputFile
echo "Generating MSWord output for job board version..."
pandoc \
"$JobBoardMarkdownOutputFile" \
--metadata-file="$PipelineClientWorkingDir/build-temp/JobBoard.yml" \
--from markdown \
--to=docx \
--reference-doc="$PipelineClientWorkingDir/build/resume-docx-reference.docx" \
--output $JobBoardMSWordOutputFile
echo "Generating PDF output for client submission version..."
pandoc \
"$ClientSubmissionMarkdownOutputFile" \
--template eisvogel \
--metadata-file="$PipelineClientWorkingDir/build-temp/ClientSubmission.yml" \
--from markdown \
--to=pdf \
--output $ClientSubmissionPDFOutputFile
echo "Generating MSWord output for client submission version..."
pandoc \
"$ClientSubmissionMarkdownOutputFile" \
--metadata-file="$PipelineClientWorkingDir/build-temp/ClientSubmission.yml" \
--from markdown \
--to=docx \
--reference-doc="$PipelineClientWorkingDir/build/resume-docx-reference.docx" \
--output $ClientSubmissionMSWordOutputFile

Binary file not shown.