Compare commits
38 Commits
56fc91fa68
...
main
Author | SHA1 | Date | |
---|---|---|---|
c13c07abe4 | |||
04d78dc9ba | |||
2d31c6b37e | |||
47596f7e3a | |||
30a6abf391 | |||
66bcba5584 | |||
7a9abe314a | |||
a956f3ad42 | |||
0c3b9b4868 | |||
0ce7627edb | |||
d8eb0eefcc | |||
9511d3d6ba | |||
1d37671cfa | |||
d61770054b | |||
659ed76189 | |||
a62bcb3412 | |||
4665979277 | |||
aa9a9a9fb9 | |||
9e97af3bdc | |||
d9ef630835 | |||
171eb46522 | |||
1fba3a2642 | |||
5bb19c8dfe | |||
c5b5557270 | |||
5c63ee2049 | |||
7d70e0ecfd | |||
97fff8372e | |||
7f7f28410b | |||
f734bc78ab | |||
7454badfb0 | |||
d49b3f0aae | |||
435d7cbef8 | |||
bee95a2d4a | |||
6b672228ad | |||
eaf5c35ba1 | |||
e850a726b2 | |||
5f86add57c | |||
c9fb7e1286 |
10
.gitignore
vendored
10
.gitignore
vendored
@@ -1,8 +1,2 @@
|
||||
build-output/client-submission/*.md
|
||||
build-output/client-submission/*.pdf
|
||||
build-output/client-submission/*.doc
|
||||
build-output/job-board/*.md
|
||||
build-output/job-board/*.pdf
|
||||
build-output/job-board/*.doc
|
||||
build-temp/*.yml
|
||||
build-temp/*.md
|
||||
build-output/*
|
||||
build-temp/*
|
31
README.md
31
README.md
@@ -2,27 +2,25 @@
|
||||
|
||||
- [MarkdownResume-Pipeline](#markdownresume-pipeline)
|
||||
- [Introduction](#introduction)
|
||||
- [Quickstart](#quickstart)
|
||||
- [Directory Overview](#directory-overview)
|
||||
- [Build pipeline](#build-pipeline)
|
||||
- [Outputs](#outputs)
|
||||
- [Production Use](#production-use)
|
||||
|
||||
## Quick licensing. One
|
||||
|
||||
- Only the code is covered by the AGOL v3.0 only. Data files are excluded.
|
||||
|
||||
- Any data files you pass to the code and any generated outputs are excluded from the AGPL v3.0. You retain all rights under applicable law to any input and output data.
|
||||
- This also includes anything you do with the illustrative example files included. They are not considered derivative works.
|
||||
|
||||
- Any use, inclusion , consumption of the code in source or binary or micro service etc form is covered under AGOL v3.0 only.
|
||||
|
||||
## Introduction
|
||||
|
||||
Resume formatting/publication/management is difficult, tedious, annoying etc. The @ReachableCEO has hacked the process and made it easy!
|
||||
Resume formatting/publication/management is difficult, tedious, annoying etc. The @ReachableCEO has hacked the process and made it easy! This repository is the core build scripts, templates etc used for resume management. It's meant as one half of a complete solution.
|
||||
|
||||
## Quickstart
|
||||
|
||||
I recommend doing these steps in order for efficency.
|
||||
|
||||
- Edit build/build.sh and alter the top section to refelct your information.
|
||||
- Edit Templates/WorkHistory/WorkHistory.csv
|
||||
- Create Templates/JobHistoryDetails/<position>.md to match the value in the first field of WorkHistory.csv
|
||||
- Edit SkillsAndProjects/Projects.md
|
||||
- Edit SkillsAndProjects/Skills.csv
|
||||
- Edit Templates/CandidateInfoSheet.md
|
||||
- cd to the build directory and bash build.sh
|
||||
Please see [MarkdownResum-Pipeline-ClientExample repository](https://git.knownelement.com/reachableceo/MarkdownResume-Pipeline-ClientExample) for the other half. You would clone that repository and follow the instructions. That repository has this repository vendored into it.
|
||||
|
||||
## Directory Overview
|
||||
|
||||
@@ -30,7 +28,7 @@ I recommend doing these steps in order for efficency.
|
||||
- build-output: markdown file for pandoc gets placed here. If you want to make formatting changes before conversion to PDF/Word, you can do so.
|
||||
- build-temp: working directory for the build process. In case you need to debug an intermediate step.
|
||||
- Templates
|
||||
- CandidateInfoSHeet: contains the markdown/yaml template files for a candidate information sheet. This allows you to produce a standardized reply to recruiters to eliminate an average of 6 emails/phone calls per inbound lead. It has a rate sheet and all the standard "matrix" tables they need to fill out for submission to an end client (or, in reality, to the US based recruiting team who interfaces with the client).
|
||||
- CandidateInfoSheet: contains the markdown/yaml template files for a candidate information sheet. This allows you to produce a standardized reply to recruiters to eliminate an average of 6 emails/phone calls per inbound lead. It has a rate sheet and all the standard "matrix" tables they need to fill out for submission to an end client (or, in reality, to the US based recruiting team who interfaces with the client).
|
||||
- ContactInfo: contact info (one version for the recruiter facing resume, one version for client facing).
|
||||
- JobHistoryDetails: details for each position listed in WorkHistory/WorkHistory.csv.
|
||||
- SkillsAndProjects: This contains what the name says. Holds a skills.csv file that gets turned into a skills table and a projects file that gets placed at beginning of resume as a career highlights section.
|
||||
@@ -40,7 +38,8 @@ I recommend doing these steps in order for efficency.
|
||||
|
||||
In the build directory:
|
||||
|
||||
- build.sh - Builds three assets:
|
||||
- build-demo.sh - End to end self contained build example for testing the repository after changes to templates.
|
||||
- build-pipeline-server.sh - Used by client repository to builds three assets:
|
||||
- PDF/Word for submitting to job portals
|
||||
- PDF/Word for submitting to end clients (strips cover sheet/contact info)
|
||||
- PDF of the candidate information sheet.
|
||||
@@ -56,7 +55,7 @@ In the build directory:
|
||||
|
||||
This system is in production use by the @ReachableCEO:
|
||||
|
||||
- [MarkdownResume-ReachableCEO](https://git.knownelement.com/reachableceo/MarkdownResume-ReachableCEO)
|
||||
- [MarkdownResume-ClientExample-ReachableCEO](https://git.knownelement.com/reachableceo/MarkdownResume-ReachableCEO)
|
||||
- [ReachableCEO Career Site](https://resume.reachableceo.com)
|
||||
- uploaded to all major job portals
|
||||
|
||||
|
@@ -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 |
|
@@ -1,4 +0,0 @@
|
||||
{{CandidateName}}
|
||||
=====
|
||||
|
||||
{{CandidateOneLinerSummary}}
|
@@ -1,6 +0,0 @@
|
||||
{{CandidateName}}
|
||||
=====
|
||||
|
||||
{{CandidateOneLinerSummary}}
|
||||
|
||||
[ [Github Profile]({{CandidateGithub}}) ] . [ [Linkedin Profile]({{CandidateLinkedin}}) ] . [ {{CandidateEmail}} ] . [ {{CandidatePhone}} ] . [ {{CandidateLocation}} ]
|
@@ -1,3 +0,0 @@
|
||||
- Stuff
|
||||
- Things
|
||||
- Amazing project!
|
@@ -1,3 +0,0 @@
|
||||
- Stuff
|
||||
- Things
|
||||
- Amazing project!
|
@@ -1,2 +0,0 @@
|
||||
- Cool project 1.
|
||||
- cool project 2.
|
@@ -1,2 +0,0 @@
|
||||
skill1|1 years|skill,1,details,and,stuff
|
||||
skill2|2 years|skill2,2,details,and,stuff,and,things
|
|
@@ -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,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 |
|
Binary file not shown.
@@ -1 +0,0 @@
|
||||
This directory is used by the build process. Ignore it.
|
@@ -1 +0,0 @@
|
||||
Working directory for the pipeline. Don't use.
|
@@ -1 +0,0 @@
|
||||
This directory is used by the build process. Ignore it.
|
@@ -1 +0,0 @@
|
||||
Working directory for the pipeline. Don't use.
|
@@ -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}}"
|
@@ -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}}"
|
@@ -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}}"
|
339
build/build-pipeline-server-json.sh
Normal file
339
build/build-pipeline-server-json.sh
Normal file
@@ -0,0 +1,339 @@
|
||||
#!/bin/bash
|
||||
|
||||
#####################################################################################################
|
||||
#JSON Resume
|
||||
#####################################################################################################
|
||||
|
||||
####################################################
|
||||
####################################################
|
||||
####################################################
|
||||
#DO NOT CHANGE ANYTHING BELOW THIS LINE
|
||||
####################################################
|
||||
####################################################
|
||||
####################################################
|
||||
|
||||
add_open_section()
|
||||
|
||||
{
|
||||
|
||||
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
|
||||
|
||||
}
|
||||
|
||||
|
||||
# Bash Function to Append JSON
|
||||
add_profiles_section ()
|
||||
|
||||
{
|
||||
|
||||
echo '{"profiles": [' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
while IFS=, read -r username url network; do
|
||||
cat <<EOF >> $BUILD_OUTPUT_DIR/resume.json
|
||||
{
|
||||
"username": "$username",
|
||||
"url": "$url",
|
||||
"network": "$network"
|
||||
},
|
||||
EOF
|
||||
done < $JSON_TEMPLATE_DIRECTORY/profiles.csv
|
||||
# Remove trailing comma and close JSON array
|
||||
sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json
|
||||
echo ']}' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
|
||||
}
|
||||
|
||||
add_certificates_section()
|
||||
|
||||
{
|
||||
|
||||
echo '{"certificates": [' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
while IFS=, read -r name date issuer url; do
|
||||
cat <<EOF >> $BUILD_OUTPUT_DIR/resume.json
|
||||
{
|
||||
"name": "$name",
|
||||
"date": "$date",
|
||||
"issuer": "$issuer",
|
||||
"url": "$url"
|
||||
},
|
||||
EOF
|
||||
done < $JSON_TEMPLATE_DIRECTORY/certificates.csv
|
||||
|
||||
# Remove trailing comma and close JSON array
|
||||
sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json
|
||||
echo ']}' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
|
||||
}
|
||||
|
||||
add_education_section()
|
||||
|
||||
{
|
||||
|
||||
echo '{"education": [' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
while IFS=, read -r institution url area studyType startDate endDate score courses; do
|
||||
cat <<EOF >> $BUILD_OUTPUT_DIR/resume.json
|
||||
{
|
||||
"institution": "$institution",
|
||||
"url": "$url",
|
||||
"area": "$area",
|
||||
"studyType": "$studyType",
|
||||
"startDate": "$startDate",
|
||||
"endDate": "$endDate",
|
||||
"score": "$score",
|
||||
"courses": [$(echo "$courses" | sed 's/;/","/g' | sed 's/^/"/;s/$/"/')]
|
||||
},
|
||||
EOF
|
||||
done < $JSON_TEMPLATE_DIRECTORY/education.csv
|
||||
|
||||
# Remove trailing comma and close JSON array
|
||||
sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json
|
||||
echo ']}' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
|
||||
}
|
||||
|
||||
add_references_section()
|
||||
|
||||
{
|
||||
|
||||
echo '{"references": [' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
while IFS=, read -r reference name; do
|
||||
cat <<EOF >> $BUILD_OUTPUT_DIR/resume.json
|
||||
{
|
||||
"reference": "$reference",
|
||||
"name": "$name"
|
||||
},
|
||||
EOF
|
||||
done < $JSON_TEMPLATE_DIRECTORY/references.csv
|
||||
|
||||
# Remove trailing comma and close JSON array
|
||||
sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json
|
||||
echo ']}' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
|
||||
}
|
||||
|
||||
add_skills_section()
|
||||
|
||||
{
|
||||
|
||||
echo '{"skills": [' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
while IFS=, read -r name level keywords; do
|
||||
cat <<EOF >> $BUILD_OUTPUT_DIR/resume.json
|
||||
{
|
||||
"name": "$name",
|
||||
"level": "$level",
|
||||
"keywords": [$(echo "$keywords" | sed 's/;/","/g' | sed 's/^/"/;s/$/"/')]
|
||||
},
|
||||
EOF
|
||||
done < $JSON_TEMPLATE_DIRECTORY/skills.csv
|
||||
|
||||
# Remove trailing comma and close JSON array
|
||||
sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json
|
||||
echo ']}' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
|
||||
}
|
||||
|
||||
add_awards_section()
|
||||
|
||||
{
|
||||
|
||||
echo '{"awards": [' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
while IFS=, read -r title awarder date summary; do
|
||||
cat <<EOF >> $BUILD_OUTPUT_DIR/resume.json
|
||||
{
|
||||
"title": "$title",
|
||||
"awarder": "$awarder",
|
||||
"date": "$date",
|
||||
"summary": "$summary"
|
||||
},
|
||||
EOF
|
||||
done < $JSON_TEMPLATE_DIRECTORY/awards.csv
|
||||
|
||||
# Remove trailing comma and close JSON array
|
||||
sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json
|
||||
echo ']}' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
|
||||
}
|
||||
|
||||
add_publications_section()
|
||||
|
||||
{
|
||||
|
||||
echo '{"publications": [' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
while IFS=, read -r name publisher releaseDate url summary; do
|
||||
cat <<EOF >> $BUILD_OUTPUT_DIR/resume.json
|
||||
{
|
||||
"name": "$name",
|
||||
"publisher": "$publisher",
|
||||
"releaseDate": "$releaseDate",
|
||||
"url": "$url",
|
||||
"summary": "$summary"
|
||||
},
|
||||
EOF
|
||||
done < $JSON_TEMPLATE_DIRECTORY/publications.csv
|
||||
|
||||
# Remove trailing comma and close JSON array
|
||||
sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json
|
||||
echo ']}' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
|
||||
}
|
||||
|
||||
add_volunteer_section()
|
||||
|
||||
{
|
||||
|
||||
echo '{"volunteer": [' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
while IFS=, read -r organization position url startDate summary highlights; do
|
||||
cat <<EOF >> $BUILD_OUTPUT_DIR/resume.json
|
||||
{
|
||||
"organization": "$organization",
|
||||
"position": "$position",
|
||||
"url": "$url",
|
||||
"startDate": "$startDate",
|
||||
"summary": "$summary",
|
||||
"highlights": [$(echo "$highlights" | sed 's/;/","/g' | sed 's/^/"/;s/$/"/')]
|
||||
},
|
||||
EOF
|
||||
done < $JSON_TEMPLATE_DIRECTORY/volunteer.csv
|
||||
|
||||
# Remove trailing comma and close JSON array
|
||||
sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json
|
||||
echo ']}' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
|
||||
}
|
||||
|
||||
add_work_section()
|
||||
|
||||
{
|
||||
|
||||
echo '{"work": [' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
while IFS=, read -r name position location website startDate endDate summary highlights; do
|
||||
cat <<EOF >> $BUILD_OUTPUT_DIR/resume.json
|
||||
{
|
||||
"name": "$name",
|
||||
"position": "$position",
|
||||
"location": "$location",
|
||||
"website": "$website",
|
||||
"startDate": "$startDate",
|
||||
"endDate": "$endDate",
|
||||
"summary": "$summary",
|
||||
"highlights": [$(echo "$highlights" | sed 's/;/","/g' | sed 's/^/"/;s/$/"/')]
|
||||
},
|
||||
EOF
|
||||
done < $JSON_TEMPLATE_DIRECTORY/work.csv
|
||||
|
||||
# Remove trailing comma and close JSON array
|
||||
sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json
|
||||
echo ']}' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
|
||||
}
|
||||
|
||||
|
||||
add_languages_section()
|
||||
|
||||
{
|
||||
|
||||
echo '{"languages": [' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
while IFS=, read -r language fluency; do
|
||||
cat <<EOF >> $BUILD_OUTPUT_DIR/resume.json
|
||||
{
|
||||
"language": "$language",
|
||||
"fluency": "$fluency"
|
||||
},
|
||||
EOF
|
||||
done < $JSON_TEMPLATE_DIRECTORY/languages.csv
|
||||
|
||||
# Remove trailing comma and close JSON array
|
||||
sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json
|
||||
echo ']}' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
|
||||
}
|
||||
|
||||
add_interests_section()
|
||||
|
||||
{
|
||||
|
||||
echo '{"interests": [' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
while IFS=, read -r name keywords; do
|
||||
cat <<EOF >> $BUILD_OUTPUT_DIR/resume.json
|
||||
{
|
||||
"name": "$name",
|
||||
"keywords": [$(echo "$keywords" | sed 's/;/","/g' | sed 's/^/"/;s/$/"/')]
|
||||
},
|
||||
EOF
|
||||
done < $JSON_TEMPLATE_DIRECTORY/interests.csv
|
||||
|
||||
# Remove trailing comma and close JSON array
|
||||
sed -i '$ s/},/}/' $BUILD_OUTPUT_DIR/resume.json
|
||||
echo ']}' >> $BUILD_OUTPUT_DIR/resume.json
|
||||
|
||||
}
|
||||
|
||||
add_close_section()
|
||||
|
||||
{
|
||||
|
||||
echo "}" >> $BUILD_OUTPUT_DIR/resume.json
|
||||
|
||||
}
|
||||
|
||||
main()
|
||||
|
||||
{
|
||||
|
||||
add_open_section
|
||||
add_meta_section
|
||||
add_basics_section
|
||||
add_profiles_section
|
||||
add_work_section
|
||||
add_volunteer_section
|
||||
add_education_section
|
||||
add_awards_section
|
||||
add_certificates_section
|
||||
add_publications_section
|
||||
add_skills_section
|
||||
add_languages_section
|
||||
add_interests_section
|
||||
add_references_section
|
||||
add_close_section
|
||||
|
||||
}
|
||||
|
||||
|
||||
main
|
164
build/build-pipeline-server-markdown.sh
Normal file
164
build/build-pipeline-server-markdown.sh
Normal file
@@ -0,0 +1,164 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
#####################################################################################################
|
||||
#Markdown to PDF/MSWord Resumek and candidate info sheet
|
||||
#####################################################################################################
|
||||
|
||||
#############################################
|
||||
# Create the candidate information PDF
|
||||
#############################################
|
||||
|
||||
# Expand variables into rendered YAML files. These will be used by pandoc to create the output artifacts
|
||||
|
||||
$MO_PATH $YamlInputTemplateFileJobBoard > $BUILDYAML_JOBBOARD
|
||||
$MO_PATH $YamlInputTemplateFileClientSubmission > $BUILDYAML_CLIENTSUBMISSION
|
||||
$MO_PATH $YamlInputTemplateFileClientSubmission > $BUILDYAML_CANDIDATEINFOSHEET
|
||||
|
||||
echo "Creating candidate info sheet..."
|
||||
|
||||
$MO_PATH $PipelineClientWorkingDir/Templates/MarkdownResume/CandidateInfoSheet/CandidateInfoSheet.md > "$CandidateInfoSheetMarkdownOutputFile"
|
||||
|
||||
pandoc \
|
||||
"$CandidateInfoSheetMarkdownOutputFile" \
|
||||
--template $PANDOC_TEMPLATE \
|
||||
--metadata-file="$BUILDYAML_CANDIDATEINFOSHEET" \
|
||||
--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 $PANDOC_TEMPLATE \
|
||||
--metadata-file="$BUILDYAML_JOBBOARD" \
|
||||
--from markdown \
|
||||
--to=pdf \
|
||||
--output "$JobBoardPDFOutputFile"
|
||||
|
||||
echo "Generating PDF output for client submission version..."
|
||||
|
||||
pandoc \
|
||||
"$ClientSubmissionMarkdownOutputFile" \
|
||||
--template "$PANDOC_TEMPLATE" \
|
||||
--metadata-file="$BUILDYAML_CLIENTSUBMISSION" \
|
||||
--from markdown \
|
||||
--to=pdf \
|
||||
--output "$ClientSubmissionPDFOutputFile"
|
||||
|
||||
echo "Generating MSWord output for job board version..."
|
||||
|
||||
pandoc \
|
||||
"$JobBoardMarkdownOutputFile" \
|
||||
--metadata-file="$BUILDYAML_JOBBOARD" \
|
||||
--from markdown \
|
||||
--to=docx \
|
||||
--reference-doc="$WordOutputReferenceDoc" \
|
||||
--output "$JobBoardMSWordOutputFile"
|
||||
|
||||
echo "Generating MSWord output for client submission version..."
|
||||
|
||||
pandoc \
|
||||
"$ClientSubmissionMarkdownOutputFile" \
|
||||
--metadata-file="$BUILDYAML_CLIENTSUBMISSION" \
|
||||
--from markdown \
|
||||
--to=docx \
|
||||
--reference-doc="$WordOutputReferenceDoc" \
|
||||
--output "$ClientSubmissionMSWordOutputFile"
|
262
build/build.sh
262
build/build.sh
@@ -1,262 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
###################################################
|
||||
# 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="../vendor/git.knownelement.com/ExternalVendorCode/pandoc-latex-template/examples/page-background/backgrounds/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
|
Binary file not shown.
Reference in New Issue
Block a user