What Career Site Job Feed does
Career Site Job Feed MCP server provides working scripts for retrieving open roles from employer career boards rather than scraping rendered career pages. The project covers Greenhouse, Lever, Workday, Ashby, Workable, SmartRecruiters, Breezy HR, Personio, Recruitee, BambooHR, Pinpoint, and Rippling.
Results are converted into a shared record format. Common fields include the ATS provider, company and company slug, job ID, title, location, department, employment type, remote indicator, posting date when available, application URL, salary data when available, description text when available, and scrape time. The combination of company slug and job ID remains stable while a posting is open, supporting comparisons between runs.
How it works
The included scripts call Apify Actors that handle the platform-specific request and response differences. They require an Apify token and can limit the number of returned rows. The repository includes examples for watching a group of companies, finding listings with published pay, retrieving all open roles for one company, and appending newly observed jobs to a CSV file.
Direct API calls are also possible. The documented endpoints are public and do not require an API key, but each ATS has its own URL pattern and behavior. For example, Workday uses a POST request, while most other platforms expose GET endpoints. Board slugs generally come from the employer's career-site URL.
Setup and configuration
Set APIFY_TOKEN using a token from Apify, then run one of the Python or JavaScript examples. MAX_ROWS can increase the row limit used by the examples; the scripts otherwise cap output at a few hundred rows to control per-row Actor costs.
The repository demonstrates commands such as python python/new_jobs_to_csv.py. It does not describe a package installation process or provide client-specific MCP configuration.
Tools and capabilities
- Retrieve every open role listed for one employer.
- Compare saved company feeds to identify opened and closed postings.
- Select postings that include a published compensation range.
- Normalize compensation to an annual figure in the salary recipe.
- Append postings first seen since the previous run to CSV.
- Query documented public ATS endpoints directly.
Limitations and notes
The Career Site Job Feed MCP server does not provide uniform field coverage across providers. Title, company, location, and application URL are available on every platform in the measured data, but descriptions, dates, pay, and remote indicators are not. Workday dates may be descriptive text rather than timestamps, and Personio, Rippling, Pinpoint, and BambooHR do not provide posting dates in the measured data.
Only some platforms publish compensation or an explicit remote field, and published salary values are often absent. Remote detection based on location text is only an approximation when the source does not expose a dedicated field.
SmartRecruiters returns no more than 100 rows per response, so callers must paginate with offset and use totalFound. BambooHR requires a list request followed by one detail request per posting for fields such as descriptions. Recruitee can return zero-valued salary objects for jobs without pay data, and Breezy uses HTTP 403 when a board does not exist. Apify Actors are billed per delivered row, and that cost is separate from the MIT-licensed code in the repository.