Skip to main content

recruitertriage

Triage recruiter outreach with a small (<1B) language model. Built for the HuggingFace Build Small Hackathon.

The default backend is SmolLM2-360M-Instruct. It fits on a free HF Space CPU and still gets useful triage signal. You can swap in any callable LM (a fine-tune, Qwen-0.5B, a heuristic, anything that maps prompt -> string).

Install

pip install recruitertriage              # core only (zero heavy deps)
pip install "recruitertriage[smollm]"    # + SmolLM2 / transformers
pip install "recruitertriage[space]"     # + Gradio for the Space UI

Python 3.10+.

What it does

Each piece of recruiter outreach gets bucketed into one of five labels:

label meaning
interview looks like a real fit, schedule a call
needs_info interesting but missing role/comp/level
reject clearly off (wrong stack, wrong level)
spam not a real role (vendor sales, lead-gen, scam)
unsure low confidence — falls through to a human

Each Decision carries a label, a confidence (0..1), a one-line reason, an optional suggested reply, and the raw signals the model saw.

Usage

from recruitertriage import triage, HeuristicLLM

# Zero-dep fallback (good for tests/CI):
d = triage(
    subject="Staff ML Engineer @ AcmeAI",
    body="Hi - we're hiring a Staff ML Engineer. Comp 250-320k...",
    llm=HeuristicLLM(),
)
print(d.label, d.confidence, d.suggested_reply)

# Real small-model backend (requires the `smollm` extra):
from recruitertriage.smollm import make_smollm
llm = make_smollm("HuggingFaceTB/SmolLM2-360M-Instruct")
d = triage(subject="...", body="...", llm=llm)

triage() only cares that llm is Callable[[str], str], so any small instruction-tuned LM works. The core parser is tolerant of small-model JSON quirks (code fences, prose around the object, etc.).

HuggingFace Space

The space/ directory is the deployable Gradio app:

pip install "recruitertriage[space]"
python space/app.py

To publish:

  1. hf login
  2. Create a new Gradio Space (CPU basic is enough)
  3. Push the contents of space/ as the Space root

Demo

python examples/demo.py             # uses HeuristicLLM
python examples/demo.py --smollm    # uses SmolLM2-360M-Instruct

Companion libraries

recruitertriage slots into the @mukundakatta agent-stack:

  • agentleash — USD/call budget cap + tool-arg gate
  • birddog — audited Bright Data egress for scraping agents
  • agentvet — tool-arg validation with retry hints
  • agentsnap — snapshot tests for agent traces

License

MIT

Metadata

Release files for recruitertriage 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for recruitertriage 0.1.0
File Size Uploaded Provenance
recruitertriage-0.1.0.tar.gz 10.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for recruitertriage 0.1.0
File Interpreter ABI Platform
recruitertriage-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.5 kB

Release files / recruitertriage-0.1.0.tar.gz

Download URL recruitertriage-0.1.0.tar.gz
Size 10.1 kB
Tags Source
SHA-256 checksum
How to use checksums
6c8af82400eb09a6b21d013320fe29179ff627ba24503130c3937f75a54c9f1a
BLAKE2b-256 checksum
How to use checksums
f8b7b7b864e2383a57a6a0d3e9d16fe68919d4de397d478d1c4070f3ec1a8307
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release files / recruitertriage-0.1.0-py3-none-any.whl

Download URL recruitertriage-0.1.0-py3-none-any.whl
Size 8.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
583e33b7a6283bf2a42ad5f6bec2a1e802935547a06b1a400055e2ab6bf0da81
BLAKE2b-256 checksum
How to use checksums
005d2c8ce080225bb7c6044570610708e1bda6c29bda4ea0c86462c997cf6778
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Security for recruitertriage 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page