Job Listings Watch for Keywords
Get alerted the moment a job board posts a listing matching your filters - for recruiters, candidates, or competitive intelligence.
job-listings-cssThe scenario
There are three job titles you'd consider for your next role and they don't post often. Or you're a recruiter watching for new engineering opens at competitors. Or you're a competitive analyst watching a competitor's careers page for what skills they're hiring - a strong signal about their next product direction.
In each case, you want a low-latency notification when a new posting matches your criteria, not a daily LinkedIn email digest.
The problem
Job boards' built-in alerts are slow (often daily-batched), can't be piped into Slack, and over-fire on irrelevant matches. Building your own careers-page scraper per company is feasible but breaks every time a company switches ATS providers.
How Verid solves it
The job-listings-css template watches a careers-page URL and extracts the first posting's title. When the title changes, a new job has been added.
For ATS providers with stable layouts (Greenhouse, Lever, Ashby), a CSS extractor is reliable. For careers pages that are deeply custom, the regex extractor against the rendered HTML works as a fallback.
Build the monitor
Extraction config - Greenhouse careers page
{
"method": "css",
"fields": {
"latest_title": ".opening:first-child a",
"latest_location": ".opening:first-child .location",
"open_count": ".level-0"
}
}
Extraction config - Generic regex fallback
{
"method": "regex",
"fields": {
"latest_title": "<h[1-3][^>]*class=\"[^\"]*(?:job|posting|opening)[^\"]*\"[^>]*>([^<]+)</h[1-3]>"
}
}
Predicate
For broad "any new role" watch:
{ "type": "field_changes", "field": "latest_title" }
For keyword-filtered watch - only fire when the new title contains "Staff Engineer":
{
"type": "composite",
"operator": "AND",
"conditions": [
{ "type": "field_changes", "field": "latest_title" },
{ "type": "field_matches_regex", "field": "latest_title", "pattern": "Staff Engineer" }
]
}
Create the monitor
Using the template:
curl -X POST https://api.verid.dev/v1/monitors/from-template/job-listings-css \
-H "Authorization: Bearer vrd_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Competitor - engineering hires",
"url": "https://boards.greenhouse.io/competitor",
"deliveries": [
{ "type": "email", "to": "recruiting@example.com" }
]
}'
SDK:
import { VeridClient } from '@verid.dev/sdk';
const client = new VeridClient({ apiKey: 'vrd_your_api_key' });
await client.monitors.createFromTemplate('job-listings-css', {
name: 'Competitor - engineering hires',
url: 'https://boards.greenhouse.io/competitor',
deliveries: [{ type: 'email', to: 'recruiting@example.com' }],
});
What the webhook delivers
{
"id": "del_01H...",
"fired_at": "2026-05-08T11:00:00Z",
"diff": {
"fields_changed": ["latest_title", "latest_location", "open_count"],
"before": {
"latest_title": "Senior Product Designer",
"latest_location": "Remote - US",
"open_count": "23 jobs"
},
"after": {
"latest_title": "Staff Engineer, Inference Infrastructure",
"latest_location": "San Francisco, CA",
"open_count": "24 jobs"
}
}
}
That title hints at a new ML / inference team at the competitor - a useful signal even before any product announcement.
Caveats & tips
- Watch the ATS URL, not the company's marketing careers page. Greenhouse, Lever, and Ashby URLs are stable; the company's
/careerspage may rewrap them with branding and break extraction. - Hourly is plenty. New roles post during business hours and rarely more than once a day per company. Don't burn your interval budget here.
- Watch the count, too. A drop in
open_countis also news - a role got filled or pulled. Add a second predicate if that's signal to you. - The keyword-filtered composite predicate suppresses noise. Without it, you'll get a fire on every new role; with it, you only hear when a relevant one lands.
Related use cases
For government RFP / tender postings, see government contract & tender postings. For broader competitive intelligence, see competitor tech stack changes. For Etsy- or marketplace-style new listings, see Etsy shop new listings.
Related use cases
Ship this monitor today
5 monitors free, no credit card. Set up takes about a minute.
Get started free