six stages · enrich-service · port 8082
Enrich
Reads the full description behind each posting and turns it into the structured facts every later stage needs.
How this stage flows
The corpus holds jobs with a title, a company and a link. enrich-service claims one at a time, fetches the posting body, and sends it to Mistral on your own key. What comes back — skills, seniority, location and the quiet requirements — is written back onto the job as a structured record Match can compare.
one job at a time, claimed atomically
your key, not ours
written back onto the job
Enrichment is where the pipeline stops guessing from a job title.
A job title tells you almost nothing. The same title at two companies can differ by five years of expected experience and an entire stack. Enrichment reads the description itself and writes down what it actually asks for, which is the only reason the next stage can rank anything honestly.
Keys, and why there is a pool
This runs on your Mistral key. Keys are held as a pool with failover: a key that returns a rate limit goes on a short cooldown and the next one takes over, and a minimum interval between calls keeps a single key from tripping the limit in the first place.
A pool of one is the case worth naming. With a single key and a long cooldown, a rate limit used to fail every queued job without making one further network call — the pool was empty and nothing woke it. Cooldowns are short now, and a sole key is retried rather than retired.
What it costs
One model call per job, on the free tier if that is the key you bring. This is the stage that decides how far a daily quota goes, which is why a job is enriched only after it has survived the first pass — there is no point reading a posting for a role you never asked for.
Found this useful? Add applyNchill as a preferred source on Google