VVetta Jobs

Methodology

How we source, classify, and verify every listing.

Last updated May 24, 2026

Where listings come from

Our primary spine is the public job-board APIs of four applicant-tracking systems — Greenhouse, Lever, Ashby, and Workable. These APIs are designed for third-party syndication. We also accept direct submissions from employers, and, where a company publishes only on its own careers page, a rate-limited fetch of that page that honors its robots.txt.

We do not scrape Indeed, LinkedIn, Glassdoor, ZipRecruiter, Wellfound, Otta, or other aggregators — their terms prohibit it and we respect that. Every record stores its source and original URL; see sources.

ToS note: before relying on each ATS provider we confirm its current terms permit third-party consumption and re-hosting of the full job description. We re-check periodically and remove any source that changes its stance.

Classification

Every posting is read by an LLM classifier that decides whether it is genuinely an AI role, assigns one role category from our taxonomy, an AI-intensity score, seniority, and required skills. Non-AI roles that merely mention AI are rejected. Low-confidence classifications are held for human review rather than published. We cache results by content hash so we never re-pay to classify an unchanged posting.

Salary

When a source provides a salary range we use it. When it doesn’t, the classifier attempts to extract one from the description (flagged as extracted so we can audit accuracy). Every range is normalized to USD using a daily-refreshed FX table, which is what powers cross-currency sorting, filtering, and the salary index. Listings without a salary are still shown — clearly marked “Salary not disclosed” — but rank beneath salaried ones.

Freshness

ATS-sourced listings are re-verified every few hours; if the posting still exists, we bump its last-verified timestamp. Listings sourced another way are re-checked daily. A posting confirmed dead — its ATS id is gone, or its apply URL returns a 4xx/410 — is archived within 24 hours. A posting we simply haven’t been able to re-verify in 7 days is marked stale and also leaves public pages. The badge on each listing is green under 24h, amber 24–72h, red beyond.

De-duplication

The same job can appear in more than one source. We collapse exact duplicates with a hash of company, title, location, apply domain, and source id, and near-duplicate descriptions with a similarity signature. When a duplicate is found we keep the most authoritative record — direct submission first, then ATS feed, then other sources.

AI-maturity tags

Each company is tagged once (and re-evaluated quarterly) as AI-native, AI-product-team, AI-adopting, or AI-curious, by the classifier with manual override. The tag describes the employer, not the individual role.

Found something wrong? Tell us — we correct or remove listings on request.