Automate Your Job Search: Get Notified About New Roles on Company Career Pages
Searching for a new job can be a full-time job in itself. You identify your dream companies, bookmark their career pages, and then spend hours each week manually checking them for new openings. By the time you find a role, it may have already been posted for days, putting you at a disadvantage.
Supacrawler’s Watch API lets you automate this entire process. You can create a monitor for each of your target companies that checks for new job listings on your preferred schedule (e.g., daily or even hourly). When a new role is posted, you’ll receive an instant email notification, allowing you to be one of the first to apply.
This guide will show you how to set up a watch job to monitor a company’s career page for new job postings.
Goal
To create an automated daily watch job that monitors a company’s career page for new job listings and sends an email alert as soon as a new role is added.
Monitor Salesforce's Career Page for New Roles
curl -X POST https://api.supacrawler.com/api/v1/watch \-H "Authorization: Bearer YOUR_API_KEY" \-H "Content-Type: application/json" \-d '{"url": "https://salesforce.wd1.myworkdayjobs.com/External_Career_Site","frequency": "daily","selector": "li[role=listitem] .wd-entity-list-item-title a","notification_preference": "changes_only"}'
How It Works
- URL: We point to the specific career page we want to track. In this case, we're using Salesforce's career site, which is powered by Workday.
- Frequency:
daily
is usually sufficient for job postings. - Selector: This is the key. We use a robust CSS selector,
li[role=listitem] .wd-entity-list-item-title a
, that specifically targets the job title links. This selector is stable because it relies on semantic attributes (role=listitem
) and predictable class names, ignoring other dynamic page elements. - Notify Email: Your personal email address where you want to receive the good news.
- Notification Preference:
changes_only
ensures you're only notified when the list of jobs changes (i.e., a new role is added or an old one is removed).
Once set up, the Watch API checks the page daily. When a new job title appears, the API detects this as a change and sends an email straight to your inbox with the details.
Finding the Right CSS Selector for Job Boards
Most companies use popular hiring platforms like Greenhouse or Lever, which have consistent HTML structures. Here’s how to find the right selector:
- Go to the company’s career page.
- Right-click on the title of a job listing and choose "Inspect".
- The developer console will open. Look for a class name that seems to apply to all job listings.
Here are some common selectors for popular job board platforms:
- Workday: Look for job titles inside an
<a>
tag within an element likeli[role="listitem"]
. A good selector is oftenli[role=listitem] .wd-entity-list-item-title a
. - Greenhouse.io: Job listings are often inside an element with a
data-testid
attribute. A good selector could bea[data-testid='card']
or similar. - Lever.co: Look for listings inside a
div
ora
with a class likeposting
. The title is often a good element to track, so you might use.posting-title
.
Examples for Common Job Platforms
Monitor a Company Using Greenhouse (e.g., Vercel)
# The selector targets each job listing item using a stable data-testid attribute.response = requests.post("https://api.supacrawler.com/api/v1/watch",headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},json={"url": "https://vercel.com/careers","frequency": "daily","selector": "a[data-testid='geist-card']",})print(response.json())
Monitor a Company Using Lever (e.g., Figma)
# The selector targets the link for each job posting.# Note: CSS classes on Lever pages can change. Always inspect the page first.response = requests.post("https://api.supacrawler.com/api/v1/watch",headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},json={"url": "https://www.figma.com/careers/","frequency": "daily","selector": "a.css-15q2l2f",})print(response.json())
Building a Multi-Company Monitor
Why monitor one company when you can monitor them all? Here is a more advanced script that takes a list of company career pages and creates a watch job for each one.
Full Script to Monitor Multiple Companies
import requestsimport osAPI_KEY = os.environ.get("SUPACRAWLER_API_KEY", "YOUR_API_KEY")COMPANIES_TO_MONITOR = [{"name": "Salesforce","url": "https://salesforce.wd1.myworkdayjobs.com/External_Career_Site","selector": "li[role=listitem] .wd-entity-list-item-title a"},{"name": "Vercel","url": "https://vercel.com/careers","selector": "a[data-testid='geist-card']"},{"name": "Figma","url": "https://www.figma.com/careers/","selector": "a.css-15q2l2f"}]def create_watch_job(company):print(f"Creating watch job for {company['name']}...")response = requests.post("https://api.supacrawler.com/api/v1/watch",headers={"Authorization": f"Bearer {API_KEY}","Content-Type": "application/json"},json={"url": company['url'],"frequency": "daily","selector": company['selector'],"notification_preference": "changes_only"})result = response.json()if result.get("success"):print(f" -> Success! Watch ID: {result.get('watch_id')}")else:print(f" -> Error: {result.get('error')}")# Create a monitor for each company in the listfor company in COMPANIES_TO_MONITOR:create_watch_job(company)
Give Yourself a Competitive Edge
By automating your job search with the Supacrawler Watch API, you can spend less time searching and more time preparing your applications. You'll be among the first to know about new opportunities at your dream companies, giving you a significant head start. Set up your monitors today and let the opportunities come to you.