The problem
Job postings are full of corporate language that hides what the work actually is. Compensation buried under "competitive." Growth potential implied, never stated. Culture inferred from word choice.
I wanted a tool that pastes a URL and gets honest answers in 5 seconds.
What I built
A live AI job-research agent. Users paste a job URL; the agent extracts role requirements, compensation, growth potential and company culture via Claude + Llama 3.3 on Cloudflare Workers AI.
The chat is stateful, runs on a Durable Object per conversation, and streams responses over a persistent WebSocket so there are no cold starts and no polling. The first useful token reaches the user in under a second.
Why the stack
- Workers AI instead of OpenAI for cost — Llama 3.3 on Cloudflare's edge is a fraction of GPT-4 pricing and good enough for structured extraction.
- Durable Objects instead of a Postgres session table — state lives in the same process as the connection, no round-trip to a database between turns.
- WebSocket instead of SSE — duplex, lets the client signal intent (cancel, regenerate) without opening a new request.
What it shipped
- Sub-second first-token for cached job URLs
- Stateful multi-turn chat without a session DB
- No cold starts under typical traffic
- Single-engineer end-to-end build