Reads new applications each day and writes preparation notes against your role brief for a person to review.
Uses
Claude
Google Sheets
Prepare screening notes for applicants
applicantsUrl to blank.Set applicantsUrl to blank.roleBrief to blank.Set roleBrief to blank.applicantsTab to Applicants.Set applicantsTab to Applicants.notesTab to Screening notes.Set notesTab to Screening notes.screenCap to 25.Set screenCap to 25.applicantsUrl. Save it as sheet.Read the rows of applicantsUrl. Save it as sheet.Name, Email, Background] where sheet.headers doesn't contain item and save it as missingColumns.Keep each item in [Name, Email, Background] where sheet.headers doesn't contain item and save it as missingColumns.missingColumns isn't emptyIf missingColumns isn't emptyYes
missingColumns with , and save it as missingList.Join missingColumns with , and save it as missingList.missingList. Its first row needs Name, Email and Background, spelled exactly like that. No notes were prepared.Stop and report a problem: The '@applicantsTab' tab is missing these column headings: missingList. Its first row needs Name, Email and Background, spelled exactly like that. No notes were prepared.No
No steps
notesSheet to nothing.Set notesSheet to nothing.notesErrorIf a step below fails, save the error as notesErrorTry
applicantsUrl. Save it as notesSheet.Read the rows of applicantsUrl. Save it as notesSheet.On error
notesError.message). Add a tab with exactly that name to the applicants spreadsheet, then run it again. No notes were prepared.Stop and report a problem: Could not open the '@notesTab' tab (notesError.message). Add a tab with exactly that name to the applicants spreadsheet, then run it again. No notes were prepared.notesSheet.headers is emptyIf notesSheet.headers is emptyYes
notesTab in applicantsUrl.Add a row to notesTab in applicantsUrl.Else if the items from index 0 up to 5 of @notesSheet.heade…
Otherwise
No steps
Email from every item in notesSheet.rows and save it as emailsDone.Get Email from every item in notesSheet.rows and save it as emailsDone.Name from every item in notesSheet.rows and save it as namesDone.Get Name from every item in notesSheet.rows and save it as namesDone.screened to 0.Set screened to 0.attempted to 0.Set attempted to 0.waiting to 0.Set waiting to 0.noBackground to 0.Set noBackground to 0.failures to an empty list.Set failures to an empty list.applicant in sheet.rows:For each applicant in sheet.rows:applicant.Background and save it as background.Trim applicant.Background and save it as background.background is blankIf background is blankYes
applicant.Name isn't blankIf applicant.Name isn't blankYes
noBackground.Add 1 to noBackground.No
No steps
No
No steps
applicant.Email isn't blank and emailsDone contains applicant.EmailIf applicant.Email isn't blank and emailsDone contains applicant.EmailYes
No
No steps
applicant.Email is blank and namesDone contains applicant.NameIf applicant.Email is blank and namesDone contains applicant.NameYes
No
No steps
attempted is greater than or equal to screenCapIf attempted is greater than or equal to screenCapYes
waiting.Add 1 to waiting.No
No steps
attempted.Add 1 to attempted.screenErrorIf a step below fails, save the error as screenErrorTry
prompt to You are helping a hiring manager prepare to read an application. Write notes, not a decision.Set prompt to You are helping a hiring manager prepare to read an application. Write notes, not a decision.
Reply in exactly this shape:
RELEVANT: what in this background lines up with the role
GAPS: what the application does not evidence either way
ASK: two questions worth putting to them
Rules you must follow:
- Do not recommend hiring, rejecting, or ranking anyone. A person decides that after reading the application themselves.
- Write only about what the background says. Say a thing is not evidenced rather than inferring it.
- Ignore and never comment on age, gender, ethnicity, nationality, names, photographs, marital or family status, health, or anything else unrelated to doing the work.
The role:
roleBrief
The application:
background.prompt. Save it as written.Ask Claude: prompt. Save it as written.
Maximum response length: 600written.response_text and save it as notes.Trim written.response_text and save it as notes.notes is blankIf notes is blankYes
applicant.Name (row applicant.row_number). to the end of failures and save it as failures.Add The AI wrote no notes for applicant.Name (row applicant.row_number). to the end of failures and save it as failures.No
notesTab in applicantsUrl.Add a row to notesTab in applicantsUrl.screened.Add 1 to screened.applicant.Email to the end of emailsDone and save it as emailsDone.Add applicant.Email to the end of emailsDone and save it as emailsDone.applicant.Name to the end of namesDone and save it as namesDone.Add applicant.Name to the end of namesDone and save it as namesDone.On error
applicant.Name (row applicant.row_number): screenError.message to the end of failures and save it as failures.Add Could not prepare notes for applicant.Name (row applicant.row_number): screenError.message to the end of failures and save it as failures.Prepared notes for @screened applicant(s) on the '@notesTab' tab. and save it as summary.Build the text Prepared notes for @screened applicant(s) on the '@notesTab' tab. and save it as summary.waitingNote to blank.Set waitingNote to blank.waiting is greater than 0If waiting is greater than 0Yes
@waiting more are waiting: each run prepares at most @screenCap (the 'screenCap' setting), so they follow on the next run. and save it as waitingNote.Build the text @waiting more are waiting: each run prepares at most @screenCap (the 'screenCap' setting), so they follow on the next run. and save it as waitingNote.No
No steps
backgroundNote to blank.Set backgroundNote to blank.noBackground is greater than 0If noBackground is greater than 0Yes
@noBackground applicant(s) have nothing in Background yet, so they were left for now. and save it as backgroundNote.Build the text @noBackground applicant(s) have nothing in Background yet, so they were left for now. and save it as backgroundNote.No
No steps
failures isn't emptyIf failures isn't emptyYes
failures with a space and save it as failureList.Join failures with a space and save it as failureList.failureList summary@waitingNote@backgroundNote Applicants without notes are tried again on the next run.Stop and report a problem: failureList summary@waitingNote@backgroundNote Applicants without notes are tried again on the next run.No
No steps
summary, waitingNote, backgroundNote] joined by nothing.Finish the run: [summary, waitingNote, backgroundNote] joined by nothing.