15 Sep 2026 · Graphai Jobs
n8n and agentic AI on the apply fleet
Jobs.graphai.eu already runs bounded cloud workers: GCP Spot apply machines, ClickHouse bronze/silver/gold tables, and a studio that shows stage balls while a VM fills a form. n8n is the planned orchestration layer between those workers, your calendar, Granola notes, and news. Agents do not get a blank cheque; each agent owns one stage and writes evidence back to ClickHouse.
What we mean by agentic
An agent here is a loop that can read a job, choose a tool, write a field, and stop. It is not a chatbot in the gallery. The apply diagram (reading the job → cover letter → CV → name → surname → email → phone → immigration → disability) is the contract. Each ball is a stage an agent may run, fail red, and retry after you edit the value with the pen.
n8n sits above that contract. A workflow is triggered when a billed VM starts, when Google Calendar has an interview, or when Tavily returns company news. The workflow calls the existing Vercel APIs (/api/apply-spot, /api/applications, /api/company-news) instead of inventing a second database.
How we plan to use n8n
- VM start. GCE start or studio apply → n8n webhook → Gmail API in project poetic-sentinel-402405 and Slack mention. The studio already posts these; n8n is the durable retry if Vercel times out.
- Apply stages. Worker POSTs
action=stage. n8n can branch on a red ball (cover letter failed) and open a human-in-the-loop node before retry. - Interviews. Calendar events whose title contains Interview are imported into ClickHouse
jobs_applicationswithappointment=1. n8n will poll Calendar, then attach a Granola note URL when the meeting ends. - News. Nightly n8n cron: for each eligible company, Tavily search → bronze raw JSON → silver cleaned article → gold ranked score. The Company news view reads gold only.
Frameworks we plan to use
| Framework | Role on Graphai Jobs |
|---|---|
| n8n | Orchestration, retries, calendar/news crons, human approval on failed apply stages. |
| Playwright on GCP Spot | The actual browser agent filling ATS forms. Stage balls map 1:1 to Playwright steps. |
| Vercel + Clerk | Studio UI, signed-in APIs, no agent runtime of its own. |
| ClickHouse bronze / silver / gold | Raw fetch, cleaned entity, ranked mart. News and catalog already follow this. |
| Grok / xAI | Cover letters and company briefs when a stage needs language, not when a field is a stored phone number. |
| Google Gemini on Vertex | Vision on failing screenshots (live). Not a general agent host. |
| Tavily | Company news retrieval into bronze. Ranked gold feed in the studio. |
| Google Calendar API | Interview import. n8n watches new events; studio shows them on Interviews. |
| Granola | Interview notes. No public bulk API; we store a Granola URL and pasted notes on the interview row, then n8n can copy a finished note after the call. |
| Gmail API (GCP OAuth) | Spend alerts when a billed VM starts. Same project as the Spot fleet. |
| Slack incoming webhooks | Directed mention to Martí on billed start and on a red apply stage. |
| LangGraph / Crew-style graphs | Not the control plane. If we add a graph, it will only sequence the nine apply balls, with ClickHouse as memory. |
| AWS Bedrock / AgentCore | Off until GCP apply is proven. Same spend caps as the architecture note. |
What we will not do
We will not let an unconstrained agent spend GCP or AWS. Caps stay on the studio Costs view. We will not scrape LinkedIn Easy Apply. We will not store Granola’s full corpus — only the note you attach to a specific interview. n8n credentials stay in n8n; the Vercel app keeps talking to ClickHouse.
Related: Apply fleet data architecture · AWS and GCP subsystems.