Client server refactor

This commit is contained in:
Charles N Wyble 2024-12-13 11:57:42 -06:00
parent ea3a252bed
commit f99dc2a112
24 changed files with 695 additions and 0 deletions

View File

@ -0,0 +1,121 @@
# 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

@ -0,0 +1,30 @@
First Middle Last
=====
## Career Highlights
- Cool project 1.
- cool project 2.
\pagebreak
## Employment History
**job1 | Title of job 1 | January 1 1970 - January 6 1980**
- Stuff
- Things
- Amazing project!
**job2 | Title of Job 2 | January 1 1970 - January 6 1980**
- Stuff
- Things
- Amazing project!
\pagebreak
## Skills
|Skill|Experience|Skill Details|
|---|---|---|
|**skill1**|1 years|skill,1,details,and,stuff|
|**skill2**|2 years|skill2,2,details,and,stuff,and,things|

Binary file not shown.

View File

@ -0,0 +1,36 @@
First Middle Last
=====
[ [Github Profile](https://www.github.com/) ] . [ [Linkedin Profile](https://www.linkedin.com/) ] . [ candidate@domain.com ] . [ 1 123 456 7890 ] . [ Place 1/Place 2 ]
## Career Highlights
- Cool project 1.
- cool project 2.
\pagebreak
## Employment History
**job1 | Title of job 1 | January 1 1970 - January 6 1980**
- Stuff
- Things
- Amazing project!
**job2 | Title of Job 2 | January 1 1970 - January 6 1980**
- Stuff
- Things
- Amazing project!
\pagebreak
## Skills
|Skill|Experience|Skill Details|
|---|---|---|
|**skill1**|1 years|skill,1,details,and,stuff|
|**skill2**|2 years|skill2,2,details,and,stuff,and,things|

Binary file not shown.

View File

@ -0,0 +1,14 @@
title: "First Middle Last Candidate Information Sheet"
titlepage: true
titlepage-logo: ""
toc: true
toc-own-page: true
date: \today
header-left: "\\hspace{1cm}"
header-center: "\\leftmark"
header-right: "Page \\thepage"
footer-left: "First Middle Last"
footer-center: "Your.Tagline.Here."
footer-right: "[Source code](https://git.knownelement.com/reachableceo/MarkdownResume-Pipeline)"
urlcolor: blue
page-background: "D:/tsys/@ReachableCEO/MarkdownResume-Pipeline-ClientExample/local/build/background3.pdf"

View File

@ -0,0 +1,7 @@
title: "First Middle Last Resume"
header-left: "\\hspace{1cm}"
header-center: "\\leftmark"
header-right: "Page \\thepage"
footer-left: "First Middle Last"
urlcolor: blue
page-background: "D:/tsys/@ReachableCEO/MarkdownResume-Pipeline-ClientExample/local/build/background3.pdf"

View File

@ -0,0 +1,4 @@
First Middle Last
=====

View File

@ -0,0 +1,6 @@
First Middle Last
=====
[ [Github Profile](https://www.github.com/) ] . [ [Linkedin Profile](https://www.linkedin.com/) ] . [ candidate@domain.com ] . [ 1 123 456 7890 ] . [ Place 1/Place 2 ]

View File

@ -0,0 +1,12 @@
title: "First Middle Last Resume"
titlepage: true
titlepage-logo: ""
date: \today
header-left: "\\hspace{1cm}"
header-center: "\\leftmark"
header-right: "Page \\thepage"
footer-left: "First Middle Last"
footer-center: "Your.Tagline.Here."
footer-right: "[Source code](https://git.knownelement.com/reachableceo/MarkdownResume-Pipeline)"
urlcolor: blue
page-background: "D:/tsys/@ReachableCEO/MarkdownResume-Pipeline-ClientExample/local/build/background3.pdf"

View File

@ -0,0 +1,77 @@
###################################################
# 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=""

View File

@ -0,0 +1,329 @@
#!/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

@ -0,0 +1,59 @@
#!/usr/bin/env bash
# This is a demo script for the MarkdownResumePipeline server
# This script creates PDF/MSWord output from markdown/csv input
############################################
#Edit this file to reflect your information
############################################
souurce ./CandidateVariables.env
####################################################
####################################################
####################################################
#DO NOT CHANGE ANYTHING BELOW THIS LINE
####################################################
####################################################
####################################################
######################################################################################
# Setup key variables that will be used by the build-pipeline-server-markdown.sh script
######################################################################################
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
bash ../vendor/git.knownelement.com/reachableceo/MarkdownResume-Pipeline/build/build-pipeline-server-markdown.sh