Automated Discovery
The ATS polling engine, AI-caching, and circuit breakers.
Instead of relying entirely on user-uploaded CSVs, Job-Easy continuously polls Applicant Tracking Systems (ATS) like Greenhouse, Lever, Ashby, and SmartRecruiters to discover active job postings and infer company hiring status.
ATS Polling Engine
The AtsBoard model manages the state of each discovered job board. It is NOT a configuration table; it is observed state. We store conditional request headers (etag, lastModified, contentHash) to aggressively cache requests and avoid unnecessary parsing when a company's job board hasn't changed.
The poller features an adaptive schedule: a board posting weekly is not polled at the same cadence as one posting daily.
AI Verdict Caching
To enrich discovered companies (e.g., guessing HR emails or classifying industries), we use AI models. Because the background cron spins up fresh lambdas on every run, an in-memory cache would be completely ineffective.
Instead, we use the DiscoveryAiCache table to memoize AI verdicts across runs. This is critical for rejected candidates—we cache the rejection so we never pay to ask the model about them again.
Circuit Breakers (DiscoverySourceHealth)
Cross-run health for each data source is tracked in the DiscoverySourceHealth table. If a source repeatedly returns 429s or 5xx errors, the circuit breaker trips, disabling the source (disabledUntil) so we don't hammer struggling APIs or burn compute time on doomed requests.