Find companies hiring for the tools you sell or support. Reads public Greenhouse, Lever and Ashby job boards, flags posts that mention your tools with the matching sentence as proof, and tracks changes week over week. Also returns clean, filtered job listings.
Output field names are part of the contract. Any rename or removal is listed here, with the version.
0.3 (not published; local build, Nov 9, 2026)
Renamed charge eventjob-result → job-returned (jobs mode, one per job row).
Rollups stay billed (company-rollup). New free rollup row (billed: false, matchingPosts: 0, trend: "down")
when a company with signals last run has none now. New rollup field billed.
New job fields companyNameDerived and companyNameSource (starter-list | slug), filled only when the ATS gives
no company name (Lever, Ashby). companyName stays ATS-only. Signal/rollup company label falls back to it.
Repeated employer text is skipped before signal matching (new input removeRepeatedText, default true;
new summary fields repeatedSentencesSkipped, companiesWithRepeatedText, rollupsDownToZeroFree).
ROLLUP_LAST state now stores {matchingPosts, company} per company (old integer values are still read).
0.2 (not published; local build, Nov 9, 2026)
First job-board build (replaces the books.toscrape skeleton).
Modes: signals (default) and jobs.
Sources: Greenhouse, Lever (incl. EU instance), Ashby official public job-board APIs only.
Source fields are verbatim (companyName, location, allLocations, workplaceType, employmentType, jobUrl, compensation).
Values computed by the Actor end in Derived (isRemoteDerived, jobUrlNormalized) or Inferred
(experienceYearsMinInferred, experienceBandInferred, experienceEvidenceInferred).
Strict input: unknown fields, wrong types, unsupported ATS values stop the run before any request or charge.
Filters: keywords/excludeKeywords (phrases, scope title/description), locations, remote, departments,
lookbackDays, postedAfter/postedBefore, salaryMin/salaryMax/salaryCurrency/includeUnknownSalary,
experienceBands/includeUnknownExperience. All applied before charging.
No LinkedIn or company-enrichment fields exist. None will be added without a changelog entry.