Back to Odoo in Google Sheets
SheetXAI logo
Odoo logo
Odoo · Google Sheets Guide

Bulk Parse Candidate Resumes Into a Google Sheet With Odoo

2026-05-14
5 min read

The Scenario

Your HR team just closed a job posting for a mid-level engineering role and received 30 applications through the company's careers page. The applicants submitted PDF resumes, and the links landed in column A of a Google Sheet titled "Applicant Pool — May 2026." Your task before the hiring manager reviews on Thursday is to extract structured data from each CV: candidate name, email address, phone number, mobile number. Reading 30 resumes manually to pull contact fields isn't a recruiting task. It's data entry.

The bad version:

  • Open each resume PDF link in a browser, scan for the contact section, locate the email and phone, and type them into columns C through F — 30 times, for candidates whose resumes you haven't actually reviewed yet.
  • Realize halfway through that four resumes are scanned documents where the text isn't selectable, so you're reading tiny fonts and hand-typing email addresses that might have typos.
  • Finish the contact extraction at noon Thursday, leaving 90 minutes before the hiring manager meeting to actually evaluate whether any of the 30 candidates are worth moving forward.

The contact extraction isn't the value you're adding to the hiring process. It's overhead that lands on you because nobody else is going to do it.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads the applicant sheet, connects to Odoo through its built-in integration, and can submit every resume URL for parsing, poll for extracted results, and write candidate contact fields into adjacent columns — so the hiring manager gets a sheet they can actually work with.

For each resume PDF URL in column A, submit to Odoo Parse Applicant and write the document_token into column B, then poll for results and write extracted name, email, phone, and mobile into columns C through F

What You Get

  • Columns C through F populate with extracted name, email, phone, and mobile for each applicant row
  • Rows where the resume fails to parse return a status note in column B so you know which ones need manual attention
  • Scanned documents that Odoo's OCR can read still extract contact fields — those it can't parse get flagged rather than silently returning empty cells
  • The full batch runs without you managing each submission individually

What If the Data Is Not Quite Ready

Some resumes are in languages other than English

For each resume URL in column A, submit to Odoo Parse Applicant, extract name, email, phone, and mobile into columns C through F — and in column G note the detected language if it is not English

You also need to capture LinkedIn profile URLs if they appear in the resume

Submit each resume URL in column A to Odoo Parse Applicant, write extracted name, email, phone, and mobile into columns C through F — and in column G write any LinkedIn URL found in the parsed contact data, or 'NOT FOUND' if absent

A second batch of resumes came in after the first run and needs to be appended without reprocessing

For rows in column A where column B is empty, submit to Odoo Parse Applicant, write the token to column B, and write extracted name, email, phone, and mobile to columns C through F — skip rows where column B already has a value

Full intake pass including basic screening flags

For each resume URL in column A: submit to Odoo Parse Applicant, extract name, email, phone, and mobile into columns C through F, write the parse status to column B, and in column G write 'MISSING CONTACT' for any row where both phone and mobile are empty — then sort the sheet so MISSING CONTACT rows appear at the bottom

Getting the contact completeness signal at extraction time means the hiring manager's first filter pass takes minutes instead of a manual scan through 30 rows.

Try It

Get the 7-day free trial of SheetXAI and open your applicant pool sheet with resume PDF URLs in column A, then ask it to extract contact fields into adjacent columns using Odoo. For related Odoo tasks, see batch invoice parsing or expense receipt extraction.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more