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)。
这是要打开的应用,还是在后台默默运行的东西?它是一个没有 GUI 应用的 Python 自动化工具:install.sh 在你的 Mac 上注册两个 launchd 任务,分别触发每日提醒和每周摘要,另有一个本地网页界面让你浏览和筛选它收集的结果。
怎么让它跑起来?把简历 PDF 放进项目文件夹并在 config.yaml 中把 resumepath 指向它,把 run.example.sh 复制为 run.sh 并填入你的 LLM 密钥和 Gmail 应用专用密码,然后运行 install.sh 注册定时任务。
必须用 OpenAI 的 API 密钥吗?不必,任何 OpenAI 兼容端点都可以;默认配置使用 xkiro 搭配 Mistral Large 3,它有免费额度。你还需要一个 Gmail 应用专用密码(要求账号开启两步验证)来发送提醒邮件。
它在 Windows 或 Linux 上也能用吗?不行,它必须有 Mac,因为每日和每周的定时都依赖 launchd。
为什么对资历设上限,而不是直接相信 LLM 的打分?Senior/Staff/Principal 头衔在代码里(而不是提示词中)被硬性封顶为 3/10 分,因为不这样做的话,高级职位会占据前 100 名中的 31 席,第一个初级职位排在第 67 位,把应届生真正能投的职位埋没了。
给职位打分实际消耗多少 token?每个请求用简洁回复给 25 个职位打分;完整扫描 3,400 个职位约消耗 34 万 token,之后只需给新发布的职位打分,每周几千 token。
扫描中途碰到 LLM 免费额度上限怎么办?每次请求前都会检查 token 预算;达到上限的运行会直接停下,下次继续,所以不会把你的密钥用爆。
怎么添加要追踪的新公司?找到该公司的招聘页 URL,确定它的看板类型和 slug(例如 boards.greenhouse.io/figma 表示看板为 greenhouse、slug 为 figma),然后把它加进配置;Greenhouse、Lever、Ashby、Workable、Workday 和 Oracle Recruiting Cloud 均受支持。
Creator
suvamneog
Size
0.5 MB
Stars
193
Updated
CommitSep 30
Age
26d
Commits · 90 Days