Fixed: in incremental mode with "Fetch job details" on, new and changed jobs that came after jobs you already had were delivered without their details (description, salary, criteria). Every delivered job now has its details; jobs that could not be read in this run are delivered on the next one. With "Skip reposts" on, a skipped repost no longer holds back a new job behind it.
Fixed: with a maximum cost per run and AI job insights on, the AI share is now sized after the job rows themselves are paid for, so a run no longer overshoots your limit and stops. An AI reply with nothing in it is left empty and not billed. If the AI service stops answering, AI is turned off for the rest of the run instead of slowing every job down.
Fixed: a run that ends on its timeout while AI insights are being added now still delivers that last batch of jobs.
Fixed: job type, experience level, workplace type and salary bounds are now always applied. Before, they were skipped unless "Fetch job details" was on. They now turn it on, as the description filters already did.
Fixed: in incremental mode with a "Date posted" window (for example past 24 hours), jobs that simply aged out of the window are no longer reported as EXPIRED. Removed-job detection is skipped for such runs.
Fixed: a search page that did not load is no longer treated as proof that its jobs were removed, and the last, partly filled results page is no longer lost when a retry of it comes back empty.
Fixed salary parsing: "$90-120K" now reads 90,000-120,000; an amount marked CAD, AUD, NZD, SGD, HKD or MXN (before or after the figure) keeps that currency instead of USD; another amount near the pay (such as a training budget) is no longer taken as the salary; "4.200 € brutto im Monat" reads as monthly.
Fixed: "hybrid work is not available" is no longer read as hybrid, and a mention like "remote customers" no longer marks a job as remote.