- A run can no longer spend more time than it has. Nothing in this actor
knew what time it was:
fetchHtml booked its worst case up front (three
attempts at a 30-second request timeout, plus backoff, was ~95 seconds one
page could cost) under loops with no ceiling. A run killed by the platform
timeout loses its own status message and reads, from the Store, as an actor
that does not work. This is the defect already fixed in the sibling actors on
the same LinkedIn guest engine, which was vendored five ways.
- Every fetch now plans against the time that is actually left: the request
timeout is clamped to it, a backoff that would outlive the budget is not
slept, and a fetch the clock ended is reported as the clock, never as
LinkedIn refusing.
- The run's closing status names what it did not do, and a run the clock ended
no longer reports "nothing found" — that is a claim it has not earned.
- The run now ends with a status message in the Console (the "Done" line was log-only, so a run could not explain itself in the Store).
First release. Every live LinkedIn job posting for a company, from a name, a LinkedIn URL, or a numeric company ID:
- A numeric company ID or a LinkedIn URL that already names the company (a company page, or a jobs search URL with a company filter) is used directly, no lookup needed.
- A bare company name is resolved automatically: one LinkedIn jobs search finds the dominant company in the results, then its numeric ID is confirmed from its own LinkedIn page. The resolved company and a confidence score are included on every row so a mismatch is easy to spot and override with the exact URL or ID.
- Filter by posted-since (last 24 hours, week or month) to run this as a daily new-openings monitor for a company.
- Optional full job details per posting: description, seniority, employment type, job function, industry and live applicant count. Billed only when the extra data is found.
- Company + job data only. No personal profiles, no applicants, no login and no API key.