Auto-Discovery
Zero-config ATS detection from company names, slugs, and career URLs.
Zero-Config ATS Discovery
Instead of requiring you or your users to manually look up which Applicant Tracking System a company uses, ATS SDK includes an autonomous ATS Auto-Discovery Engine.
You provide a company name, slug, or career URL, and ATS SDK resolves the underlying ATS behind the scenes.
Unified Client with Auto-Discovery
Pass company identifiers directly to createAtsClient({ companies: [...] }):
import { createAtsClient } from "ats-sdk";
// Zero-config: Automatically resolves ATS for each company
const ats = createAtsClient({
companies: ["stripe", "openai", "palantir"],
});
// Fetch normalized jobs across all resolved providers
const { jobs, total } = await ats.getJobs({
workplace: "remote",
query: "engineer",
});
console.log(`Aggregated ${total} matching roles across companies.`);The company() Helper
You can also create lazy auto-resolving adapters anywhere using company():
import { company } from "ats-sdk";
// Resolves on first invocation and caches resolution
const stripe = company("stripe");
const {
jobs,
total,
company: name,
} = await stripe.getJobs({
limit: 10,
});
console.log(`Found ${total} jobs at ${name}`);You can pass:
- Company Slugs / Names:
"stripe","openai","palantir","datadog" - Direct Career URLs:
"https://boards.greenhouse.io/stripe","https://jobs.lever.co/palantir","https://jobs.ashbyhq.com/linear" - Company Career Sites:
"https://careers.airbnb.com","https://about.gitlab.com/jobs"
Standalone detectAts()
To inspect how an ATS is resolved without instantiating an adapter:
import { detectAts } from "ats-sdk";
const result = await detectAts("stripe");
console.log(result);
// {
// provider: "greenhouse",
// boardToken: "stripe",
// confidence: "high",
// matchedVia: "static_registry"
// }Detection Strategy Pipeline
ATS SDK uses a 4-tier pipeline to maximize speed and accuracy:
- Zero-Latency Static Registry (0ms): Instant in-memory lookup for popular tech companies (Stripe, OpenAI, Figma, Discord, Airbnb, Linear, Palantir, Vercel, Databricks, etc.).
- Canonical URL Pattern Matching (0ms): Regex parsing for canonical ATS domains (
boards.greenhouse.io,jobs.ashbyhq.com,jobs.lever.co,*.myworkdayjobs.com, etc.). - Career Page HTML Sniffing: Inspects the company's career page HTML for embedded ATS script tags, widget iframes, and JSON endpoint markers.
- Parallel API Probing: Concurrently probes public job endpoints across candidate providers with exponential backoff and validates response schemas with Zod, returning as soon as a valid board responds.