Skip to main content

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

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

recruitertriage-0.1.0.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

recruitertriage-0.1.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file recruitertriage-0.1.0.tar.gz.

File metadata

  • Download URL: recruitertriage-0.1.0.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for recruitertriage-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6c8af82400eb09a6b21d013320fe29179ff627ba24503130c3937f75a54c9f1a
MD5 c2dde3fe33d8adfea0a17d06e8e9d6dc
BLAKE2b-256 f8b7b7b864e2383a57a6a0d3e9d16fe68919d4de397d478d1c4070f3ec1a8307

See more details on using hashes here.

File details

Details for the file recruitertriage-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for recruitertriage-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 583e33b7a6283bf2a42ad5f6bec2a1e802935547a06b1a400055e2ab6bf0da81
MD5 f74f5c8a54a2b76c8f40d3bd07c582bc
BLAKE2b-256 005d2c8ce080225bb7c6044570610708e1bda6c29bda4ea0c86462c997cf6778

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page