Searches each account in your sheet for hiring pages once a week and records what it found, in the pages' own words.
Uses
Google Sheets
Serper
Track hiring activity at your target accounts
Every Monday at 07:00, each account in your spreadsheet is searched on the web for its hiring and careers pages, and a row is appended to your signals tab recording what came back, so the tab becomes a history of how each account's hiring moves.
Each row holds the date, the company, how many hiring pages the search returned, the titles of up to five of them exactly as listed, one example link and the search that was run. Nothing is rated or scored: it reports a signal and leaves the conclusion to you, and nothing is written that the search did not return. Personal profiles, social posts and anything carrying an email address are dropped first, so the row is about the organisation only. If a search fails, that company is skipped rather than recorded as a zero.
You need an accounts tab with a 'Company' column, plus an existing tab for the signals. Rows are only ever appended to it, and your accounts tab is never changed.
accountsSpreadsheetUrl to blank.Set accountsSpreadsheetUrl to blank.accountsTabName to blank.Set accountsTabName to blank.signalsTabName to blank.Set signalsTabName to blank.maxCompaniesPerRun to 12.Set maxCompaniesPerRun to 12.accountsSpreadsheetUrl. Save it as accounts.Read the rows of accountsSpreadsheetUrl. Save it as accounts.accountRows to accounts.rows.Set accountRows to accounts.rows.companiesChecked to 0.Set companiesChecked to 0.companiesRecorded to 0.Set companiesRecorded to 0.accountRow in accountRows:For each accountRow in accountRows:accountRow.Company and save it as company.Trim accountRow.Company and save it as company.company is empty or company is nullIf company is empty or company is nullcompaniesChecked is greater than or equal to maxCompaniesPerRun multiplied by…If companiesChecked is greater than or equal to maxCompaniesPerRun multiplied by…companiesChecked.Add 1 to companiesChecked.searchQuery to company careers job openings.Set searchQuery to company careers job openings.searchResults to an empty list.Set searchResults to an empty list.searchErrorIf a step below fails, save the error as searchErrorsearchResults to the results from the Serper “Search Google” step.Change searchResults to the results from the Serper “Search Google” step.company did not run, so nothing was recorded for it this week. A missing row means no search, not no hiring.Show in the output: The search for company did not run, so nothing was recorded for it this week. A missing row means no search, not no hiring.rolesAsListed to an empty list.Set rolesAsListed to an empty list.hiringPages to 0.Set hiringPages to 0.exampleLink to blank.Set exampleLink to blank.searchResult in searchResults:For each searchResult in searchResults:searchResult.title and save it as resultTitle.Trim searchResult.title and save it as resultTitle.searchResult.link and save it as resultLink.Trim searchResult.link and save it as resultLink.resultTitle is empty or resultLink is emptyIf resultTitle is empty or resultLink is emptyresultLink in lowercase contains linkedin.com/in/ (ignoring case) or…If resultLink in lowercase contains linkedin.com/in/ (ignoring case) or…resultTitle contains hiring (ignoring case) or resultTitle contains…If not resultTitle contains hiring (ignoring case) or resultTitle contains…hiringPages.Add 1 to hiringPages.rolesAsListed is less than 5If the length of rolesAsListed is less than 5resultTitle to the end of rolesAsListed and save it as rolesAsListed.Add resultTitle to the end of rolesAsListed and save it as rolesAsListed.exampleLink is emptyIf exampleLink is emptyexampleLink to resultLink.Change exampleLink to resultLink.signalsTabName in accountsSpreadsheetUrl.Add a row to signalsTabName in accountsSpreadsheetUrl.companiesRecorded.Add 1 to companiesRecorded.companiesRecorded of the companiesChecked companies checked. Every role line is the wording of a page the search returned.Show in the output: Recorded hiring activity for companiesRecorded of the companiesChecked companies checked. Every role line is the wording of a page the search returned.