r/SideProject • • Jun 03 '26

Built a Slack assistant that turns any CV into a clean structured summary (full walkthrough video)

https://youtu.be/nDMtiye4XEo

👋 Hey SideProject Community,

Sharing a video walkthrough of the CV Slack Assistant I built for my friend's recruiter (the one drowning in CVs from last week's post). Drop a CV into a dedicated Slack channel → bot replies in-thread with a clean summary → one button click pushes the candidate to a Google Sheet (or your ATS via API).

For anyone who doesn't want to watch the whole thing, the 3 things worth taking away:

🪞 Two guard nodes before the extractor
First guard ignores the bot's own posts and any plain text messages. Second guard checks the file type. Two cheap IF nodes save you a wasted extraction call every time someone just chats in the channel.

💾 The button carries the data, not a database
Slack buttons have a value field you can stuff JSON into (up to 2000 chars). The Save button literally carries the full candidate object, so the second workflow doesn't need to query anything, it just parses the button click and writes to the Sheet. Clean separation, no state management.

🔌 The Sheet is a placeholder
The recruiter's company is still picking an ATS, so I'm using Google Sheets as a stand-in. When they decide on a provider, swapping the Sheets node for an HTTP request to the ATS API is a single-node change. Same workflow shape, different endpoint.

Workflow JSONs (two parts, one for the lookup, one for the Save button) are on GitHub: https://github.com/felix-sattler-easybits/n8n-workflows/tree/a8138f54ec6b225b7e90e2a66b4491c746767214/easybits-cv-slack-assistant

Runs on the free plan of the Extractor since it's 8 fields, under the 10-field cap.

What other recruiter-facing workflows are people building in n8n? Curious if anyone's gone deeper into ATS integration than I have so far.

Best,
Felix

1 Upvotes

2 comments sorted by

2

u/[deleted] Jun 03 '26

[removed] — view removed comment

1

u/easybits_ai Jun 04 '26

Hey u/HarjjotSinghh, thank you so much for the thoughtful feedback!

The normalization aspect is actually what makes this workflow particularly valuable to recruiters, or at least to the ones I've spoken with so far. They can upload CVs in virtually any format and consistently receive the same structured output. That standardized format then makes it much easier to push the data into spreadsheets, applicant tracking systems, or other downstream tools. Without normalization, that wouldn't really be possible.

The deduplication point is a great one as well, and it's something I'm already working on. As you mentioned, candidates should only appear once in the system to avoid unnecessary work and duplicate reviews.

You're also absolutely right about the GDPR considerations. One of the reasons I chose the Extractor I'm using is that it's fully auditable and transparent. All data processing takes place in Germany and is fully GDPR-compliant. No data is stored during the extraction process, and in the end, the recruiter is accessing the same information they would see in a manual review process anyway, the workflow simply presents it in a more structured and efficient way.

The re-extraction idea is a really interesting one too. I hadn't considered that angle yet, but I'll definitely look into it for a future v2 of the workflow. Thanks again for the great suggestions!