In production
Arbeitseule
AI-assisted job application assistant – designed, built and operated solo.
- pull requests
- 600+
- unit tests
- 3,400+
- downtime for the production update
- 82 s
As of 1 November 2026
Problem
Job hunting means many portals, many similar postings and little time for good applications. AI can help – but it gets expensive fast, and anyone handling application data is responsible for very personal information.
Solution
Arbeitseule searches official job APIs every day, scores each posting against the user's profile and drafts a tailored cover letter on request. A human decides before anything is sent.
- Rule-based score without AI (word boundaries, compounds, negation, job families) as the counterpart to the AI match.
- AI scores with reasoning; every score carries the profile and rules version it was made with – nothing is silently re-scored.
- Owl help: a rule-based help chat without AI, with an optional AI tier that can be switched off on the server.
Architecture and decisions
- Tiered LLM pipeline: a cheap model (Haiku) for scoring and classification, a stronger one (Sonnet) for writing; prompts hardened with JSON data blocks.
- Cost control first: one quota model for every counted feature (reserve → book → settle, idempotent), a shared cost budget with warning and stop thresholds, prices only from configuration.
- An unknown outcome of an AI call is booked as the worst case; automatic SDK retries are disabled.
- Official data sources only: sources whose terms didn't fit were removed instead of pushing grey areas.
Operations and security
- AWS instance behind Caddy and Cloudflare; off-host backups to S3 with restore drills, CloudWatch metrics and alarms.
- Deployment via GitHub Actions with a maintenance window; a daily read-only production check.
- Hashed session tokens, CSP with nonce, two-factor sign-in for admins, double opt-in and one-click unsubscribe per RFC 8058.
- Privacy policy and terms are updated in every feature PR; a storage audit shows that no cookie banner is needed.
Outcome
Arbeitseule has been in production since 11 September 2026. A production update with five database migrations needed only 82 seconds of downtime – planned, backed up and prepared with a restore drill.