moonlighter-scan
The discovery slice of moonlighter: it checks the job boards of the companies you list and scores each new posting against your profile, so you only read the ones worth reading.
Use it on its own
uvx moonlighter-scan # scan company_list.yaml, score new postings
uvx moonlighter-scan --company ashby trm-labs # one company's board
uvx moonlighter-scan --no-eval # store postings unscored, no LLM call
uvx moonlighter-scan doctor
Every command prints one JSON document on stdout and exits 1 on a quiet day with nothing new, so it fits a cron job and jq.
- Seven ATS platforms — Greenhouse, Lever, Ashby, Recruitee (custom career domains included), Workable, SmartRecruiters and InHire.
- Optional portals — Gupy, RemoteOK, Remotive, We Work Remotely and HN Who's Hiring, off until you enable them, filtered by keyword.
- Scored with the reasoning kept — each posting gets 0–10 against your profile and hard filters; below your threshold it is archived, with the verdict kept.
- Cheap cuts first — titles on your blocklist, and on-site or hybrid postings outside the
criteria.home_cityyou set in your profile, are archived before any LLM call. - Closed postings archived — jobs that disappeared from their board are archived on the next scan.
- One row per job — URLs are normalised, so the same posting found twice stays one job.
Works better with
With moonlighter-apply, one script scans, picks by score and prepares a sheet for each pick. With moonlighter, you ask Claude instead.
| Package | What it is |
|---|---|
| moonlighter | Everything below, plus the MCP server for Claude — start here |
| moonlighter-core | Storage, config, profile and the LLM client every slice shares |
| moonlighter-scan | ← you are here — finds postings on seven ATS platforms and scores them against your profile |
| moonlighter-apply | Drafts the paste-ready answer sheet for one posting |
| moonlighter-email | Matches employer replies in Gmail back to each application |
License
AGPL-3.0-only. Contributions require signing the CLA. What leaves your machine is in PRIVACY.md.
Metadata
Release files for moonlighter-scan 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| moonlighter_scan-0.1.8.tar.gz | 32.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| moonlighter_scan-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.2 kB
Release files / moonlighter_scan-0.1.8.tar.gz
| Download URL | moonlighter_scan-0.1.8.tar.gz |
|---|---|
| Size | 32.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c8619a6d1db0a7cbff48095fc89d9d7e5db929078ebb9f5a0bae0b2659f191ed
|
|
BLAKE2b-256 checksum How to use checksums |
1b3ddc15bd89f44a9e8cd89bdf7325e2aee9564534a982ec4b64019c313bd382
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / moonlighter_scan-0.1.8-py3-none-any.whl
| Download URL | moonlighter_scan-0.1.8-py3-none-any.whl |
|---|---|
| Size | 37.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d83c0d1eb67eb3f9a189a3e0e31ef10180d32e0f8995a00bc78c23557c90baaa
|
|
BLAKE2b-256 checksum How to use checksums |
90ffde8a406ab08acc07ffc0b5a4078e73edfcc80fcca0cd6267b01a1f14a7f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|