What problem does it solve?
Job scanning across Greenhouse, Ashby, Lever, and related portals is slow and error-prone, and stale listings waste time during evaluation.
Core Features & Use Cases
- Multi-level discovery: Collects recent postings via public ATS APIs, then fills gaps with browser-based crawling and Jobright tab scraping when APIs aren’t available.
- Title-based targeting: Filters candidates using positive/negative job-title keywords sourced from your Notion Preferences.
- Safety guardrails: Deduplicates against your Notion applications database and verifies that postings are still live using Playwright before uploading.
- Notion workflow integration: Writes surviving offers to the Notion applications DB with status set to "Scanned" for downstream evaluation.
Use case example: A recruiter wants only US-based AI/ML engineering roles from Dream/Big-Tech companies, refreshed daily, with dead links automatically excluded before the evaluation pipeline runs.
Quick Start
Run python3 skills/job-scan/scripts/scout_specials.py to collect recent jobs into candidate_store.json, then run python3 skills/job-scan/scripts/dedup_liveness_upload.py skills/job-scan/candidate_store.json to filter, deduplicate, verify liveness, and upload the results to Notion.