Case study · 2026 · Co-builder
Signal
Most good jobs are never posted where you’d look. Signal finds them and keeps the feed quiet.
Signal turns 50–70 unstructured hiring signals a day (screenshots, pasted text, links) into schema-validated jobs, then ranks them against your résumé. It serves 100+ concurrent users and is live at getsig.in.
- Daily intake
- 50–70 signals → validated jobs
- Concurrency
- 100+ users
- Feed latency
- ≈60% lower
- Live
- getsig.in
The problem
Real openings are scattered across screenshots, group chats and posts that expire in days. Job boards are noisy and stale. The interesting part is that the input is messy and the output has to be trustworthy.
So the system has two jobs that pull against each other: be generous in what it ingests, and strict in what it publishes.
How it’s built
A pipeline with a gate in the middle: probabilistic on the left, deterministic on the right.
Scroll the diagram sideways →
- Ingestion is asynchronous
- Distributed workers do the slow, flaky work off the request path, so a bad screenshot never blocks the feed.
- Recommendations are precomputed
- Résumé and job embeddings feed materialised rankings, with real-time action signals layered on top. The feed is a read, not a computation.
- A bring-your-own-key gateway
- One interface over Gemini, Groq, OpenAI, OpenRouter and Anthropic, so users spend their own tokens and the product’s costs stay flat.
- The abuse surface is guarded
- Encrypted résumé storage, and Cloudflare Turnstile in front of anything a bot would want.
Decisions that cost something
01
Schema, or it doesn’t ship.
LLM extraction is probabilistic; the feed can’t be. Every signal has to validate against a schema before it becomes a job.
The costSome real jobs get bounced for review. The feed stays trustworthy.
02
Move work off the request path.
Distributed workers and Redis caching take the expensive work out of the read path. That’s where the ≈60% drop in feed latency came from.
The costMore moving parts to run and observe.
03
Let users bring their own key.
A BYOK gateway keeps unit economics flat as usage grows and gives users the choice of model.
The costFive providers’ quirks to keep abstracted.
What went wrong, and what it taught me
From a quiet internal tool to a product.
Signal started as an admin-only ingestion tool. Turning it into something that 100+ people can use at once meant rebuilding the hot path around precomputation and caching, then adding the parts that make a job feed useful rather than merely long: embeddings-based best-match, bookmarks, application tracking, and a browser extension that fills the forms for you.