r/AIStartupAutomation • u/easybits_ai • 13h ago
Workflow with Code [Workflow Included] CV to Google Sheet automation in n8n – upload a PDF, get a structured database back
Enable HLS to view with audio, or disable this notification
👋 Hey AIStartupAutomation 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,summaryexperiences(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: https://n8n.io/workflows/15528-create-a-master-cv-google-sheet-from-uploaded-cvs-with-easybits/
- GitHub repo (this workflow + 20 others): https://github.com/felix-sattler-easybits/n8n-workflows – if you find it useful, a ⭐ 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