academic-jobslisted
Install: claude install-skill Axect/skills
# Academic Jobs Skill
Conversational interface over the `ajo` CLI, which fetches **valid** postings from two
academic job boards and tracks them in a local SQLite store:
- **AJO** — Academic Jobs Online (`academicjobsonline.org`), HTML scraping, all fields.
- **InspireHEP** — the HEP/astro jobs board (`inspirehep.net/jobs`), via its public JSON API.
By default `ajo fetch` searches **both** boards with the same keywords and merges the
results, deadline-sorted. Each posting carries a `source` (`ajo` or `inspire`); the two
boards use overlapping integer ids, so everything is keyed by `(source, id)`.
## Quick Reference
| Intent | Command | Reference |
|--------|---------|-----------|
| Show / edit field presets | `ajo config [...]` | `references/presets.md` |
| Fetch current open postings | `ajo fetch [--preset N \| --keyword K] [--source ajo\|inspire\|both]` | `references/fetch.md` |
| Show stored postings | `ajo list [--valid] [--new] [--source S]` | `references/schema.md` |
| Inspect one posting | `ajo show {id} [--source ajo\|inspire]` | `references/fetch.md` |
| Mark postings as seen | `ajo mark-seen --all` | `references/fetch.md` |
| Drop expired postings | `ajo prune` | `references/schema.md` |
## Running the CLI
The CLI lives in this skill directory. Always invoke it through `uv`:
```bash
uv run --project <skill-dir> ajo <command> [...]
```
where `<skill-dir>` is the directory containing this file. Add `--json` to any command
when you (Claude) need to post-proces