Olev is a personal job board monitoring service that uses Vercel Cron to check for changes on selected company job boards and sends notifications with a supported notification provider.
- Twilio
- LogSnag
- iMessage
- Ashby
- Lever
- Greenhouse
The project is organized as follows:
src/app/- Contains API routes for each supported job board platformsrc/modules/- Core functionality modules (redis, notifications, hash generation, etc.)src/interfaces/- TypeScript interfaces for the projectscripts/- Utility scripts for maintenance
- Automated monitoring of job boards
- Scheduled checks using Vercel Cron Jobs
- Real-time notifications via LogSnag when changes are detected
- Efficient change detection using XXHash and Redis
- Rate limiting to prevent excessive API calls (15-minute cooldown per URL)
- URL whitelist support to restrict which job boards can be monitored
- Vercel Cron Jobs periodically call the recruiting platform endpoint with a job board URL (e.g.,
/lever?url=https://jobs.lever.co/company) - URL is checked against the whitelist, if configured (403 Forbidden if not allowed)
- Rate limiting ensures the URL hasn't been processed in the last 15 minutes (429 Too Many Requests if rate limited)
- The appropriate module scrapes the job listings from the specified URL
- XXHash generates a hash of information extracted from the job listings
- The system compares the new hash with the previously stored hash in Redis
- If changes are detected, a notification is sent via LogSnag
- The hash is updated in Redis for future comparisons
# Twilio
TWILIO_ACCESS_TOKEN=
TWILIO_NUMBER_RECIPIENT=
TWILIO_NUMBER_SENDER=
TWILIO_SID=
# LogSnag
LOGSNAG_API_KEY=
LOGSNAG_PROJECT_NAME=
# Redis
REDIS_URL=
# Comma-delimited URL whitelist (optional)
WHITELIST_URLS=
# Clone the repository
git clone [email protected]:ridafkih/olev.git
# Install dependencies
bun install
# For local development
vercel env pull .env.development.local# Purges the entire remote Redis key-value store
bun purgeOlev uses Vercel's Cron Jobs feature to schedule regular checks of job boards. The current configuration in vercel.json checks specified job boards every 15 minutes.
To monitor additional Lever job boards, add new cron job configurations to the vercel.json file:
{
"crons": [
{
"path": "/lever?url=https://jobs.lever.co/your-company",
"schedule": "*/15 * * * *"
}
]
}Olev is licensed under the MIT License. See the LICENSE file for details.
Created by Rida F'kih.