Google Sheets integration · Apps Script
Parse a folder of CVs into Google Sheets
Paste one Apps Script into your sheet and get a HireLayer menu: pick a Google Drive folder and every CV becomes a row with name, email, phone, job title, city, skills and languages. Two formulas score candidates against a job and normalize skills.
- Install
- Extensions → Apps Script, paste, save
- Menu
- Parse CVs from a Drive folder
- Formulas
- =HIRELAYER_SCORE(), =HIRELAYER_SKILLS()
- Cost
- 1 credit per CV; formula results cached 6 hours
- 1A Drive folder of CVsGoogle SheetsPDF, Word, OpenDocument, text and image files, for example the folder where your careers form stores uploads.
- 2Parse each CVHireLayerThe script sends every file not yet in the sheet to HireLayer and reads back the candidate data.
- 3One row per candidateGoogle SheetsA Candidates tab gets name, email, phone, job title, city, country, LinkedIn, experience level, skills and languages.
- 4Score in a formulaHireLayer=HIRELAYER_SCORE(job, resume) returns a match score from 0 to 1 that you can sort and filter.
Use cases
What the script does for small recruiting teams
A candidate database without an ATS
Collect CVs in one Drive folder and run the menu after each batch: the sheet becomes a searchable list you can filter by city, skill or langage.
Screen a pile of applications
Paste the job description in a cell, then fill a column with =HIRELAYER_SCORE($B$1, text) to sort applicants from the strongest match to the weekest.
Clean skill lists
=HIRELAYER_SKILLS(A2) turns “react.js, anglais courant, pack office” into standard skill names you can count with COUNTIF.
Hand-off to Excel
Download the sheet as .xlsx or CSV to import the candidates in another tool. Every column is plain text, no add-on needed to open it.
Setup
Install the script
It takes about two minutes. The script runs under your Google account; HireLayer only receives the files you parse.
- 1
Paste the script
In your Google Sheet, open Extensions → Apps Script, replace the content of Code.gs with the downloaded script, and save.
- 2
Set your API key
Reload the sheet. In the new HireLayer menu choose Set API key and paste a key from your HireLayer dashboard. Google asks you to authorize the script the first time.
- 3
Parse a folder
Choose HireLayer → Parse CVs from a Drive folder and paste the folder URL. A Candidates tab is created and filled. Files already in the tab are skipped, so you can run it again after adding CVs.
- 4
Use the formulas
Score or normalize from any cell (sheets set to a European locale use ; instead of , between arguments). Results are cached for six hours, so recalculating the sheet does not spend credits again.
FormulastextB1 Senior React Developer, Paris… (the job description) E2 =HIRELAYER_SCORE($B$1, D2) → 0.87 F2 =HIRELAYER_SKILLS(K2) → React, TypeScript, Leadership G2 =HIRELAYER_SKILLS(K2, "fr") → names in French
Field mapping
Columns of the Candidates tab
| HireLayer field | Sheet column | Note |
|---|---|---|
| info_candidate.full_name | Full name | |
| info_candidate.email | ||
| info_candidate.phone_number | Phone | |
| info_candidate.job_title | Job title | |
| info_candidate.location.city / .country | City, Country | |
| skills[].skill_title | Skills | Comma-separated |
| languages[].language + level | Languages | e.g. English (C2) |
Example
Read the script before you paste it
The script is short and commented. It calls three HireLayer endpoints and nothing else, keeps your key in the script properties, and writes only to the Candidates tab.
var result = hirelayerRequest_('post', '/api/v3/parser', {
form: { file: current.getBlob(), application_id: current.getId() },
timeoutSeconds: 150,
});
sheet.appendRow(hirelayerRow_(current, result));Limits
Good to know
About 6 CVs per run
Apps Script stops a run after 6 minutes and a parse takes about 35 seconds. The script stops starting new files after 4 minutes and tells you how many are left: run the menu again to continue.
Parsing is not a formula
Google limits formulas to 30 seconds, less than a parse takes, so parsing runs from the menu. Scoring and skills are fast enough for formulas.
Who can see the key
The API key is stored in the script properties, readable by anyone who can edit the script. Use a dedicated key and revoke it from your dashboard if the sheet changes hands.
Google quotas
Personal Google accounts can make 20,000 external calls a day and Workspace accounts 100,000, far above what the 6-minute runs alow.
HireLayer APIs used on this page
FAQ
HireLayer and Google Sheets: questions
How do I extract resume data into Google Sheets?
Install the HireLayer Apps Script in your sheet, set your API key, then run HireLayer → Parse CVs from a Drive folder. Each CV in the folder becomes a row with contact details, job title, location, skills and languages.
Can I get the data in Excel?
Yes. Download the Google Sheet as .xlsx with File → Download → Microsoft Excel. To parse directly from Excel, use the Power Automate connector instead.
Why is there no =PARSE_RESUME() formula?
Google stops formulas after 30 seconds and parsing a CV takes about 35. Parsing runs from the menu instead, which can work for up to 6 minutes per run.
How much does it cost?
Each parsed CV uses 1 HireLayer credit, a score uses 1 (plus 1 the first time a job is used) and a skills formula uses 1. The Free plan includes 50 credits a month.
Is it an official Google add-on?
No. It is an open script you paste into your own sheet, not a Google Workspace Marketplace add-on, so you can read every line before you run it.
Connect Google Sheets to HireLayer today
The Free plan includes 50 credits a month, no card required. One successful call is one credit, on every API.
