Automation library · Data collection

Score job listings and generate tailored cover letters

Started by a clock, and works across Apify, Gmail, Google Docs and Google Sheets. It hands the judgement calls to OpenAI. 39 steps, 6 branches, 1 loop or waits: large, and worth reading before you trust it with anything live.

LargeCalls a model: OpenAI

39 stepsLarge: read it before trusting it with anything live
6Branches: places the flow splits
1Loop or waits
4Services it connects to

The flow

Starts it 3Model 3Logic 22Service 11

The steps in the order they run, from what starts it.

  1. 1Manual triggerManual triggerStarts it
  2. 2Schedule triggerSchedule triggerStarts it
  3. 3Error: catch allError triggerStarts it
  4. 4Configure Workflow VariablesSetLogic
  5. 5Set: format error messageSetLogic
  6. 6Set: Google Jobs configSetLogic
  7. 7Set: Career Site API configSetLogic
  8. 8Merge: error outputsMergeLogic
  9. 9Apify: run Google Jobs actorApifyService
  10. 10Apify: run Career Site API actorApifyService
  11. 11Gmail: send error notificationGmailService
  12. 12Apify: get Google Jobs datasetApifyService
  13. 13Apify: get Career Site datasetApifyService
  14. 14Code: normalise Google JobsCodeLogic
  15. 15Code: normalise Career Site APICodeLogic
  16. 16Merge: platform resultsMergeLogic
  17. 17Loop: process batchSplit In BatchesLogic
  18. 18Set: batch completeSetLogic
  19. 19Google Sheets: check if job existsGoogle SheetsService
  20. 20Set: restore job dataSetLogic
  21. 21IF: already in sheet?IfLogic
  22. 22IF: apply URL present?IfLogic
  23. 23IF: description >= 200 chars?IfLogic
  24. 24IF: mid-level or senior?IfLogic
  25. 25Google Docs: GET base resumeGoogle DocsService
  26. 26OpenAI: score job relevanceOpen AiModel
  27. 27Code: parse + validate score JSONCodeLogic
  28. 28Filter: valid score onlyFilterLogic
  29. 29IF: score >= 7?IfLogic
  30. 30OpenAI: write cover letterOpen AiModel
  31. 31Set: store cover letterSetLogic
  32. 32IF: score >= 8?IfLogic
  33. 33OpenAI: write tailored resumeOpen AiModel
  34. 34Set: no resume URLSetLogic
  35. 35Google Docs: create resume docGoogle DocsService
  36. 36Google Sheets: append or update rowGoogle SheetsService
  37. 37Google Docs: update doc contentGoogle DocsService
  38. 38HTTP: make resume doc publicHttp RequestService
  39. 39Set: resume URLSetLogic

How it's built

Starts on
A clock
Steps
39, with 6 branches, 1 loop or waits
Size
Large: read it before trusting it with anything live
Connects to
Apify, Gmail, Google Docs, Google Sheets
Model
OpenAI

Questions

What does it need to run?

An n8n account, plus your own Apify, Gmail, Google Docs and Google Sheets accounts, and a key for OpenAI. You connect your own accounts after importing it; none are included.

What starts it?

It starts on a clock.

Does it use AI?

Yes. It calls OpenAI. Model calls are billed by the provider, not by n8n.

How long does it take to set up?

Take your time. At 39 steps it is large: read it before trusting it with anything live.

How do I import it?

Copy the workflow, open a new workflow in n8n and paste. The steps appear on the canvas, ready for your own accounts.

Before you run it

Nothing here has been tested by us. It is somebody's working automation, read and described from its own steps. Treat the connections it wants as a list of accounts it will touch, and read the 39 steps before you point it at anything that matters.