Skip to main content

Running hunt

Track a job search as a board of hiring processes.

hunt is free software, under the GNU AGPL v3: run it yourself, for yourself or for others. It's a product of Arabesque Labs, who also run it for people who'd rather not host it themselves. Its website, careerhunt.app, has these docs, screenshots (also in docs/screenshots.md) and the hosted hunt's legal pages; it's a repository of its own, ArabesqueLabs/careerhunt.app.

To look around first, with made-up data on every page (nothing is kept once you stop it):

docker run --rm -p 127.0.0.1:4848:4848 ghcr.io/arabesquelabs/hunt:demo

To run your own, with Docker (see "Docker", below), Kubernetes ("Kubernetes") or built from source with Rust and Node, then open http://localhost:4848. In a clone of hunt, make help lists a target for each:

git clone https://github.com/ArabesqueLabs/hunt && cd hunt
make doctor # what you have, and which way it can run
make docker-up # with Docker (deploy/docker): or…
make k8s-up # …on Kubernetes (deploy/kubernetes): or…
make install && make serve # …built from source, database ~/.hunt/hunt.db
make backup # save everything in the running hunt to backups/

A new hunt opens on its launcher: a few steps to make its owner's account (an email address and a password) and set it up (its region, currency and theme), or to restore a backup, then the board. New to it? Start with the Introduction and the Quick start, then the Core concepts.

Every hunt has an owner, who signs in and runs it: made in the launcher, or from HUNT_ADMIN_EMAIL and HUNT_ADMIN_PASSWORD. Others join only as the owner says (sign-ups are closed on a new hunt): see "What's public, and what needs signing in" and "Several people", below. To work on hunt itself:

hunt serve runs one service. It owns the database (SQLite, PostgreSQL or MySQL) and serves a JSON API, plus a web UI that uses that API. The rest of the hunt commands use the same API, so the CLI and the browser always agree.

make # make dev: http://127.0.0.1:4848, on an empty database each start (the launcher)
make dev-demo # the same, with made-up data in it
make help # every target, by who it's for
make watch # serve it for several people, rebuilding and restarting on every change
make image && make image-try # the container image, built and run here, keeping nothing
make ci # what CI runs: format check, lint, every test

CONTRIBUTING.md has more, and docs/maintaining.md how hunt is released.