Skip to content

Commit f146928

Browse files
authored
Issue #6 - Add new action gemini-tailor and deprecate gemini-rewrite (#8)
* fix typo and resulting copy-pasta * Mark gemini-rewrite as deprecated in documentation * fix copy-pasta * initial tailor-resume action * improve key names, wording * improve wording for the desired response formatting * prevent an empty list which screws up formatting * update readme to document gemini-tailor
1 parent bb9099c commit f146928

File tree

5 files changed

+155
-136
lines changed

5 files changed

+155
-136
lines changed

README.md

Lines changed: 43 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ Uses the free tier of Google Gemini to compare a resume to a job description and
1515
|CAREER_GROWTH_KEYWORDS|A list of keywords used to create a score to evaluate if the position will take your career in the desired direction|Y||
1616
|JOB_DESCRIPTION|The body of the job description to evaluate|Y||
1717
|JOB_DESCRIPTION_MIME_TYPE|The http mime type for the job description format|Y|`text/plain`|
18-
|PERSONA|The role Gemini should play (typically starts, "You are..." or "Act as a...")|Y|`Act as an expert technical recruiter with a previous career in software engineering who can crtically compare resumes to job descriptions to determine if a candidate is a fit for a role.`|
18+
|PERSONA|The role Gemini should play (typically starts, "You are..." or "Act as a...")|Y|`Act as an expert technical recruiter with a previous career in software engineering who can critically compare resumes to job descriptions to determine if a candidate is a fit for a role.`|
1919

2020
#### Outputs
2121
|Output Name|Output Description|
2222
|-----------|------------------|
23-
|RAW|The raw, JSON _string_ returned by Gemini|
23+
|RAW|The full, raw JSON _string_ returned by Gemini|
2424
|RESPONSE_TEXT|Just the generated string from Gemini|
2525

2626
The content of `RESPONSE_TEXT` is expected to be a JSON _string_ where Gemini has been given the following key/value descriptions:
@@ -39,8 +39,8 @@ The content of `RESPONSE_TEXT` is expected to be a JSON _string_ where Gemini ha
3939
- `job_company_sentiment_score`: without referencing the job description or resume, provide a score between 1 and 100 for how well the company is likely to treat its employees.
4040
- `job_company_explanation`: without referencing the job description or resume, write an explanation of job_company_sentiment_score no longer than 250 words.
4141

42-
### dev-dull/job-search-automations/gemini-rewrite
43-
Uses the free tier of Google Gemini to compare a resume to a job description and tailor the resume to target the specific role.
42+
### dev-dull/job-search-automations/gemini-tailor
43+
Uses the free tier of Google Gemini to compare a resume to a job description to make suggestions on what to focus on to tailor your resume to target the open role.
4444
#### Inputs
4545
|Input Name|Input Description|Required Y/N|Default Value|
4646
|----------|-----------------|------------|-------------|
@@ -50,15 +50,24 @@ Uses the free tier of Google Gemini to compare a resume to a job description and
5050
|RESUME_MIME_TYPE|The http mime type for the resume format|Y|`text/plain`|
5151
|JOB_DESCRIPTION|The body of the job description to evaluate|Y||
5252
|JOB_DESCRIPTION_MIME_TYPE|The http mime type for the job description format|Y|`text/plain`|
53-
|PERSONA|The role Gemini should play (typically starts, "You are..." or "Act as a...")|Y|`Act as an expert technical recruiter and career coach with a previous career in software engineering who assists candidates with tailoring their resume for a specific job application.`|
53+
|PERSONA|The role Gemini should play (typically starts, "You are..." or "Act as a...")|Y|`Act as an expert technical recruiter with a previous career in software engineering who can critically compare resumes to job descriptions to help a candidate tailor their resume to the open position.`|
5454

5555
#### Outputs
5656
|Output Name|Output Description|
5757
|-----------|------------------|
58-
|RAW|The raw, JSON _string_ returned by Gemini|
58+
|RAW|The full, raw JSON _string_ returned by Gemini|
5959
|RESPONSE_TEXT|Just the generated string from Gemini|
6060

61-
The content of `RESPONSE_TEXT` is expected to the modified resume written in an HTML format.
61+
The content of `RESPONSE_TEXT` is expected to be a JSON _string_ where Gemini has been given the following key/value descriptions:
62+
- `company_name`: The name of the company where the candidate has worked.
63+
- `position_name`: The name of the position held by the candidate.
64+
- `remove`: Make a determination if the position should be removed from the resume entirely based on its relevance to the job description. If it is not relevant, set this to true, otherwise false.
65+
- `add_emphasis`: A brief paragraph of the experience the candidate has from this position and should emphasize when applying to this role.
66+
- `remove_emphasis`: A brief paragraph of the experience the candidate has from this position that may not be relevant to the job they are applying for and should be deemphasized or removed in the resume.
67+
- `errors`: a list of spelling and grammar errors in the resume. If none are found, set the list to a single result that says "No errors found."
68+
- `suggested_wording`: A list of specific wording the candidate should use to better align their resume with the job description. This should include keywords and phrases from the job description that are relevant to the candidate's experience. If you have no suggestions, set the list to a single item that says, "N/A"
69+
- `additional_help`: Any additional suggestions for the candidate to consider when tailoring their resume for this position.
70+
6271

6372
### dev-dull/job-search-automations/gemini-cover-outline
6473
Uses the free tier of Google Gemini to compare a resume to a job description and the company's career information to generate an outline to a cover letter to aid the user in writing an effective letter to use when applying to a role.
@@ -73,16 +82,41 @@ Uses the free tier of Google Gemini to compare a resume to a job description and
7382
|JOB_DESCRIPTION_MIME_TYPE|The http mime type for the job description format|Y|`text/plain`|
7483
|COMPANY_CAREER_INFO|Text found on the company's websites that describes the company culture, values, mission, and any other details provided on the Company's website which they present to prospective candidates|Y||
7584
|COMPANY_CAREER_INFO_MIME_TYPE|The http mime type for the company career information|`text/plain`|
76-
|PERSONA|The role Gemini should play (typically starts, "You are..." or "Act as a...")|Y|`Act as an expert technical recruiter with a previous career in software engineering who can crtically compare resumes to job descriptions to help a candidate write a cover letter.`|
85+
|PERSONA|The role Gemini should play (typically starts, "You are..." or "Act as a...")|Y|`Act as an expert technical recruiter with a previous career in software engineering who can critically compare resumes to job descriptions to help a candidate write a cover letter.`|
7786

7887
#### Outputs
7988
|Output Name|Output Description|
8089
|-----------|------------------|
81-
|RAW|The raw, JSON _string_ returned by Gemini|
90+
|RAW|The full, raw JSON _string_ returned by Gemini|
8291
|RESPONSE_TEXT|Just the generated string from Gemini|
8392

8493
The content of `RESPONSE_TEXT` is expected to be a JSON _string_ where Gemini has been given the following key/value descriptions:
8594
- `introduction_help`: a short paragraph to help the candidate write an introduction to the cover letter that includes some suggested phrasing that will help the candidate get started with a friendly and professional tone.
8695
- `outline`: a list of brief descriptions of what to include in the cover letter. Be sure to incorporate the company career information provided in the input.
8796
- `conclusion_help`: a short paragraph to help the candidate write a conclusion to the cover letter that includes some suggested phrasing that will help the candidate finish the letter with a friendly and professional tone.
8897
- `additional_help`: a short paragraph to help the candidate write a cover letter that includes some suggested phrasing that will help the candidate finish the letter with a friendly and professional tone.
98+
99+
## Deprecated Actions
100+
### dev-dull/job-search-automations/gemini-rewrite@v0.3.0
101+
***Deprecated:*** Not included in releases after `@v0.3.0`. The resumes generated by this action did not result in a net-benefit. Instead, It is recommended that you use `gemini-tailor` and manually update your resume based on the generated suggestions.
102+
103+
Uses the free tier of Google Gemini to compare a resume to a job description and tailor the resume to target the specific role.
104+
105+
#### Inputs
106+
|Input Name|Input Description|Required Y/N|Default Value|
107+
|----------|-----------------|------------|-------------|
108+
|GOOGLE_API_KEY|Google API key for Gemini|Y||
109+
|GEMINI_MODEL|The Gemini model to use (as found in the API URL)|Y|`gemini-2.0-flash`|
110+
|RESUME_TEXT|The body of the resume to evaluate|Y||
111+
|RESUME_MIME_TYPE|The http mime type for the resume format|Y|`text/plain`|
112+
|JOB_DESCRIPTION|The body of the job description to evaluate|Y||
113+
|JOB_DESCRIPTION_MIME_TYPE|The http mime type for the job description format|Y|`text/plain`|
114+
|PERSONA|The role Gemini should play (typically starts, "You are..." or "Act as a...")|Y|`Act as an expert technical recruiter and career coach with a previous career in software engineering who assists candidates with tailoring their resume for a specific job application.`|
115+
116+
#### Outputs
117+
|Output Name|Output Description|
118+
|-----------|------------------|
119+
|RAW|The full, raw JSON _string_ returned by Gemini|
120+
|RESPONSE_TEXT|Just the generated string from Gemini|
121+
122+
The content of `RESPONSE_TEXT` is expected to the modified resume written in an HTML format.

gemini-cover-outline/action.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,20 @@ inputs:
3434
PERSONA:
3535
description: The persona to use for the system instruction. This is used to set the tone and style of the response.
3636
required: true
37-
default: Act as an expert technical recruiter with a previous career in software engineering who can crtically compare resumes to job descriptions to help a candidate write a cover letter.
37+
default: Act as an expert technical recruiter with a previous career in software engineering who can critically compare resumes to job descriptions to help a candidate write a cover letter.
3838

3939
outputs:
4040
RAW:
4141
description: The raw response generated by Gemini.
4242
value: ${{ steps.gemini-check.outputs.RAW }}
4343
RESPONSE_TEXT:
44-
description: 'The text response generated by Gemini which was instructed to output JSON with they keys: score, explanation, deficiencies, strengths, and recommendations.'
44+
description: 'The text response generated by Gemini which was instructed to output JSON with they keys: introduction_help, outline, conclusion_help, additional_help.'
4545
value: ${{ steps.gemini-check.outputs.RESPONSE_TEXT }}
4646

4747
runs:
4848
using: composite
4949
steps:
50-
- name: Query Candidate Qualification
50+
- name: Compare Candidate Qualifications for Cover Letter Outline
5151
id: gemini-check
5252
uses: actions/github-script@v7
5353
env:

gemini-qualified/action.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ inputs:
2929
PERSONA:
3030
description: The persona to use for the system instruction. This is used to set the tone and style of the response.
3131
required: true
32-
default: Act as an expert technical recruiter with a previous career in software engineering who can crtically compare resumes to job descriptions to determine if a candidate is a fit for a role.
32+
default: Act as an expert technical recruiter with a previous career in software engineering who can critically compare resumes to job descriptions to determine if a candidate is a fit for a role.
3333

3434
outputs:
3535
RAW:

gemini-rewrite/action.yaml

Lines changed: 0 additions & 123 deletions
This file was deleted.

0 commit comments

Comments
 (0)