moonlighter-apply
The answering slice of moonlighter: for one posting, it gathers every question the application form asks and drafts an answer to each from your profile, as one sheet you review and paste. It never opens the form and never submits.
Use it on its own
uvx moonlighter-apply prepare 42 # questions from the job's ATS API
uvx moonlighter-apply prepare 42 --paste page.txt # questions read from text you copied
uvx moonlighter-apply prepare --url https://... # ingest a posting by URL, then prepare
uvx moonlighter-apply doctor
Every command prints one JSON document on stdout.
- The real questions — where the ATS publishes its form (Greenhouse, Recruitee, Workable, Lever), the questions, required flags and options come straight from it; InHire tells you up front which fields its form requires.
- Any other form — paste the page text and the questions are read from it; this works on any ATS, login walls included.
- Gaps instead of guesses — answers are drafted from a filtered part of your profile. A question it has no basis for comes back to you as a gap, and questions it recognises as salary, compliance or demographics are filled from your config or left for you, never answered by the model.
- A tailored CV, if you want one — a one-page LaTeX CV for the posting, its bullets chosen from a pool you wrote;
bootstrap-cvdrafts a first pool from your profile. - Tracking built in — each sheet carries the application's tracking alias.
Works better with
With moonlighter-email, replies to that alias move the application forward. With moonlighter-scan, you prepare sheets straight from the scored queue.
| 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 | Finds postings on seven ATS platforms and scores them against your profile |
| moonlighter-apply | ← you are here — 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-apply 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_apply-0.1.8.tar.gz | 65.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| moonlighter_apply-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 151.0 kB
Release files / moonlighter_apply-0.1.8.tar.gz
| Download URL | moonlighter_apply-0.1.8.tar.gz |
|---|---|
| Size | 65.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
220b0fee555f3bcc96d771cf4d6bf68368e065827692cd2470b13844db9a3ae6
|
|
BLAKE2b-256 checksum How to use checksums |
af1e7a47e519d2e8890abecb70ad320e5312bbc389404048b10fa69f6832024d
|
| 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_apply-0.1.8-py3-none-any.whl
| Download URL | moonlighter_apply-0.1.8-py3-none-any.whl |
|---|---|
| Size | 85.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
536c8fb20092f28fd23266352cc7f9fe8cb6b726a4d211887bf3db8fef337bbf
|
|
BLAKE2b-256 checksum How to use checksums |
1bc88087523103b2e66fa3f6715ba134a9b626be9e4d36639cf993a8a773e249
|
| 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}
|