jobradar README

The project's README from github.com/suvamneog/jobradar. As one markdown file: README.md.

Job Radar

Watches company job boards, scores every opening against your resume, and emails you when something worth applying to shows up.

grid

It tracks 56 companies across seven ATS platforms — Greenhouse, Lever, Ashby, Workable, Workday, Oracle Recruiting Cloud — which is what it takes to cover both startups and large enterprises on one list.

What it does

email

Why it isn't just keyword matching

Two rules run in code, not in the prompt, because a model asked nicely will comply inconsistently:

Seniority. A Senior/Staff/Principal title caps at 3/10 however well the skills match. Without this, senior roles held 31 of the top 100 slots and the first junior role sat at position #67 — the jobs a new graduate could actually get were buried under the ones they could not.

Relevance. A role weak on both skills and domain caps at 3/10. Otherwise a branch-office internship scores 8/10 for a developer purely because it is an internship.

Both are arithmetic on data already stored, so recap re-applies them for free.

Setup

Needs Python 3.11+ and a Mac (the schedules use launchd).

git clone https://github.com/suvamneog/jobradar.git
cd jobradar
./install.sh

Then three things:

1. Your resume — put a PDF in the folder, point resume_path at it in config.yaml.

2. Your keys — cp run.example.sh run.sh, then fill in:

3. Check it works

./run.sh test          # sends a test email
./run.sh scan          # fetch, diff, score
./run-web.sh           # http://localhost:8765

Configuration

companies:
  - { name: 'Adobe', board: workday, slug: 'adobe/wd5/external_experienced' }

alerts:
  companies: [Adobe, Oracle, Atlassian]   # checked daily
  min_score: 6

llm:
  provider: xkiro
  model: mistralai/mistral-large-2512
  daily_token_limit: 1000000

Find a company's board and slug in its careers URL:

URL board slug
boards.greenhouse.io/figma greenhouse figma
jobs.ashbyhq.com/ramp ashby ramp
jobs.lever.co/spotify lever spotify
adobe.wd5.myworkdayjobs.com/external_experienced workday adobe/wd5/external_experienced

Commands

./run.sh scan          # fetch, diff, score
./run.sh alert         # check the shortlist, alert if anything opened
./run.sh digest        # send the weekly email
./run.sh recap         # re-apply the scoring rules, no tokens
./run.sh list          # the week's finds in the terminal
./run-web.sh           # web UI

install.sh registers two launchd jobs: daily alerts at 09:30, weekly digest Mondays at 09:00.

Token budget

Free tiers have a daily cap, so the budget is checked before every request and recorded per batch. A run that hits the ceiling stops and resumes next time — it can't lock you out of your key.

Jobs are scored 25 per request with compact positional replies. A full 3,400-job scan costs about 340K tokens. After that only new postings are scored, which is a few thousand a week.

Tests

for t in tests/test_*.py; do ./.venv/bin/python "$t"; done

Ten suites. Most exist because something broke in use — a threading crash in the live scan, an alert that would have fired 142 notifications at once, a malformed reply that killed a 3,000-job run.

See OVERVIEW.md for architecture and design notes.

Notes

Built by @suvamneog. The grid UI took small inspiration from this post.

Scores are a sort order, not a verdict — a 4/10 is still worth a glance.

MIT

jobradar (suvamneog/jobradar)

Searching Database…

Что это?Job Radar следит за карьерными страницами компаний, оценивает каждую вакансию по вашему резюме с помощью LLM и присылает на почту шорт-лист достойных отклика; сейчас он отслеживает 56 компаний на семи ATS-платформах (Greenhouse, Lever, Ashby, Workable, Workday, Oracle Recruiting Cloud).
Это приложение, которое я открываю, или оно просто работает в фоне?Это инструмент автоматизации на Python без GUI-приложения: install.sh регистрирует на вашем Mac две задачи launchd, которые присылают ежедневные оповещения и еженедельную сводку, а локальный веб-интерфейс позволяет просматривать и фильтровать собранные результаты.
Как это запустить?Положите резюме в PDF в папку проекта и укажите на него через resumepath в config.yaml, скопируйте run.example.sh в run.sh и впишите свой ключ LLM и Gmail App Password, затем запустите install.sh, чтобы зарегистрировать задачи по расписанию.
Нужен именно ключ OpenAI API?Нет, подойдёт любой OpenAI-совместимый эндпоинт; настройка по умолчанию использует xkiro с Mistral Large 3, у которого есть бесплатный тариф. Также нужен Gmail App Password (для него на аккаунте должна быть включена двухфакторная аутентификация), чтобы отправлять письма с оповещениями.
Он работает и на Windows или Linux?Нет, нужен Mac, поскольку ежедневное и еженедельное расписание опирается на launchd.
Почему уровень должности ограничивается принудительно, а не просто доверяется оценке LLM?Должности Senior/Staff/Principal жёстко ограничены оценкой 3/10 в коде, а не в промпте: без этого senior-вакансии занимали 31 место из первой сотни, а первая junior-вакансия была лишь на 67-м, хороня под ними работу, которую выпускник реально мог бы получить.
Сколько токенов реально стоит оценка вакансий?Вакансии оцениваются по 25 за запрос с компактными ответами; полный проход по 3400 вакансий стоит около 340 тыс. токенов, а дальше оценивать нужно только новые публикации — это несколько тысяч токенов в неделю.
Что будет, если я упрусь в лимит бесплатного тарифа LLM посреди сканирования?Токен-бюджет проверяется перед каждым запросом; запуск, упёршийся в потолок, просто останавливается и продолжится в следующий раз, так что заблокировать доступ к вашему ключу это не сможет.
Как добавить новую компанию для отслеживания?Найдите карьерный URL компании, чтобы узнать тип доски и slug (например, boards.greenhouse.io/figma означает доску greenhouse и slug figma), и добавьте её в конфиг; поддерживаются Greenhouse, Lever, Ashby, Workable, Workday и Oracle Recruiting Cloud.
Creator
suvamneog
Size
0.5 MB
Stars
191
Updated
CommitSep 30
Age
23d
Commits · 90 Days