GimmeJob
Sign in
1
OVERVIEW

Why I created this site

Four practical goals: job search, technology experiments, AI-assisted development, and QA learning.

01

Find a job

Supports vacancy collection from five job boards in one review and analysis workflow.

Production site
02

Create a technology playground

A real production project for trying, integrating, and learning new technologies in practice.

GitHub repo
03

Use an AI-assisted development workflow

The project is developed with Codex and Claude Code throughout the development workflow.

Source repository
04

Build a QA knowledge base

A structured knowledge base covering interview questions, learning paths, and different QA-related areas.

Interview catalog
TECH STACK
1

Deployment

Code is stored in GitHub, built in GitHub Actions, and deployed on Cloudflare.

GitHub

Source repository

Cloudflare Platform
Workers

Edge/runtime execution

Static assets

Frontend assets served with the deployment

2

AI orchestration & RAG

The Python AI backend uses FastAPI, LangGraph, LangChain, OpenAI, Langfuse, and the canonical Cloudflare RAG pipeline.

LangGraph

Owns the explicit learning-path workflow, state transitions, and orchestration.

LangChain + langchain-openai

Model messages, structured output, and OpenAI integration used inside the graph.

OpenAI

Structured answer generation for the AI assistant workflows.

Langfuse

Tracing, token/cost observability, runtime scores, and RAG evaluation support.

Canonical RAG

Cloudflare Workers AI + Vectorize with lexical fallback in one retrieval pipeline.

3

n8n email automation

Two production n8n workflows process forwarded job-email events and send a daily operational report while GimmeJob keeps D1 as the source of truth.

Gmail forwarding

User filters forward selected job emails to a per-user GimmeJob token address

Cloudflare Email Routing

Routes the forwarded message to the GimmeJob Worker email handler

Worker + email events

Resolves the tenant and stores structured metadata in D1

n8n · 2 production workflows

Workflow 1 runs every minute: classify pending mail with deterministic rules first and OpenAI only when needed. Workflow 2 runs daily at 08:00 Kyiv: read D1 statistics, format the previous day's report, and send it by SMTP.

Classification

Lifecycle, job alert, service, non-job, or review classification persisted in D1

Daily statistics

Received, processed, pending, job-relevant, rule-vs-AI, token, held, and failure metrics

Daily SMTP report

Previous complete Kyiv day is formatted as HTML and emailed at 08:00

D1 state

GimmeJob remains the system of record; n8n orchestrates but does not own application state

4

Infrastructure as Code

The production n8n environment is provisioned and configured from repository code on Hetzner Cloud.

GitHub Actions

Runs the production provisioning workflow on infrastructure changes or manual dispatch

Hetzner CX23

Ubuntu 24.04 production VM created reproducibly from code

Docker runtime

n8n + PostgreSQL + Caddy

Persistent data

PostgreSQL, n8n, and Caddy volumes

Hetzner firewall

Public 22/80/443; application and database ports stay internal

Cloudflare DNS

n8n.gimme-job.com points to the provisioned production VM

5

OpenAI integration

OpenAI is used for vacancy analysis and resume/application drafting.

Job text + profile

Vacancy text and candidate context

Analysis

Score, match, explain, and extract structured vacancy signals

Drafts

Tailored resume and application drafting support

Fallback

Deterministic logic when AI is unavailable.

6

Observability

Short-term production diagnostics and long-term operational monitoring.

Cloudflare Workers Logs

Recent runtime diagnostics

App events

Selected operational events

Dashboards

System and usage metrics

Alerts

Thresholds and notifications

Export

Data used for further analysis

7

Code quality & security

CI generates test coverage and sends static-analysis results to SonarQube Cloud before deployment.

Security & reliability

Security and bug findings

Maintainability

Code smells and technical debt

Coverage & duplication

LCOV coverage and duplicated code

8

Database

Application data is stored in Cloudflare D1.

Worker app

Application reads and writes

Jobs

Stored vacancies

Analyses

Analysis results

Settings

Application settings

Observability

Events and snapshots