[Workflow Included] CV to Google Sheet automation in n8n – upload a PDF, get a structured database back

:waving_hand: Hey n8n community,

A while back I posted a two-workflow CV tailor I built for a friend job-hunting (that post here). The tailor workflow itself got most of the attention, but a few people messaged me about the first workflow specifically, the one that takes a CV PDF and turns it into a structured Google Sheet. They wanted just that piece, without the tailoring on top.

Turns out a lot of people have a use case for it that has nothing to do with job hunting. Recruiters wanting to parse candidate CVs into a CRM, people building talent pools, folks who just want their own CV as structured data they can reuse across other tools. So I cleaned it up as a standalone workflow and published it on the n8n template library.

How it’s set up:

The form accepts a single CV. It goes straight to the easybits Extractor, which pulls 10 structured fields, kept at exactly 10 so it fits the free plan:

  • full_name, email, linkedin_url, location, summary
  • experiences (array of role + company + dates + bullets + per-role skills)
  • education (array of degree + institution + dates + details)
  • skills (flat list, includes certifications)
  • languages (with proficiency levels)
  • links (GitHub, portfolio, etc.)

A Fan-out Code node then reshapes the extractor’s response into four separate row structures, one per Google Sheet tab. Four parallel Split Out + Google Sheets Append branches write to their respective tabs (Master CV, Education, Skills, Summary). A Merge node waits for all four before showing the completion screen with a count of what was imported.

The defensive parsing part was the interesting bit, the Extractor sometimes returns arrays as JSON strings or comma-separated strings, not always as actual arrays. The toArray() helper in the Fan-out node handles all three cases so the workflow doesn’t break on shape variations.

I also made a short video showing how it looks in process.

Links:

n8n template library:

GitHub repo (this workflow + 20 others):

If you find it useful, a :star: would help other builders discover it.

Curious to hear how others are handling CV parsing today, anyone using it for recruiter workflows or candidate CRMs?

Best,
Felix

2 Likes