Platform Features

Everything you need to
hunt smarter

One platform for your entire bug bounty pipeline: projects and Starlark workflows, out-of-band interactions, templated payloads, and queryable datasets built by a hunter, for hunters.

Manage multiple bug bounty projects
Projects

One home for every target you hunt

Each project maps to a program, domain, or asset. Reuse workflow templates and variables across targets, so starting on a new program takes minutes, not hours of setup.

Configure variables once, reuse everywhere
Deactivate targets without losing history
Get notified when scans detect diffs
Starlark Workflows (BHW)

Automate recon with CI/CD-style workflows

Write pipelines in BHW, a fully valid Starlark dialect, the same language family as Bazel. Version every workflow, roll back any time, and share proven templates so your best recon chains are one click away on every new target.

Version history and rollback for every workflow
Schedule recurring scans on your targets
Reusable templates for proven recon chains
workflow(
activities = [
activity(
name = "discover",
triggers = [trigger.cron("0 6 * * *")],
steps = [
step.exec(command = ["subfinder", "-d", config.var("domain"), "-o", "subs.txt"]),
step.transform(
source = path.file("subs.txt").lines(),
pipeline = transform.trim().lower().unique(),
destination = path.file("subs-clean.txt"),
),
step.update_dataset(
table = "subdomains",
source = path.file("subs-clean.txt").lines(),
pipeline = transform.unique(),
mapping = {"host": row.value},
mode = dataset.upsert(),
),
],
),
activity(
name = "triage",
triggers = [trigger.on(discover.succeeded())],
steps = [
step.agent(
prompt = "Flag exposed admin panels on new hosts.",
model = model("default"),
provider = provider.key("anthropic/personal"),
output = output.json(),
),
],
),
],
)
datasets/domains · 1,284 rows synced
Self-hosted runners
Self-Hosted Runners

Run any tool on your own infrastructure

Register runners on your machines and invoke them directly from your workflows. Install proprietary scanners and private tooling, and your arsenal never leaves your infrastructure.

Execute any command, any tooling you need
Keep private tooling off shared infrastructure
Trigger remotely from workflow steps
bhlast: OOB Interaction Server

Never miss a blind payload callback

bhlast is a self-hosted Burp Collaborator alternative built into BountyHub. Capture DNS and HTTP interactions, register custom DNS records for SSRF, and serve exploits from the built-in file server. Every interaction notifies you in real time.

Detect SSRF, blind XSS, and blind RCE callbacks
Register custom DNS records for your hunts
Serve exploits and scripts from the file server
a1b2c3.oob.bountyhub.test live
14:02:11DNSssrf.a1b2c3.oob
14:02:13HTTPGET /?x=callback
14:03:47DNSrce.a1b2c3.oob
14:04:02HTTPGET /exploit.js 200
2 DNS · 2 HTTP · custom records + file server notified in real time
xss-templates 4 payloads
'"><img src=//{{oob}}>
{{target}}' OR 1=1 --
<svg/onload=fetch('//{{oob}}')>
{{target}}/../../etc/passwd
target=admin.example.comoob=a1b2c3.oob.bountyhub.test

rendered

'"><img src=//a1b2c3.oob.bountyhub.test>
Payload Management

Build a payload arsenal and template it

Store payloads in reusable groups and template them with variables. Adapting wordlists, injection strings, and exploit payloads to each target takes seconds, not copy-paste sessions.

Group payloads by purpose and target
Template with variables for instant reuse
Available across every project
Datasets

Turn findings into queryable datasets

Airtable-style tables for everything you discover: subdomains, open ports, CVE scan results, anything structured. Full upload history, and row-level triggers fire on insert, update, and soft-delete so your data reacts automatically.

Define custom table schemas
Full history of every upload and row
Triggers fire as your data changes
subdomainstrigger: row inserted
subdomainstatussource
api.target.com200recon-run #41
dev.target.com403recon-run #42
staging.target.com200manual upload
And That's Not All

The details that keep you in the loop

Historical scan results

Every run is archived. Compare results across versions, spot diffs on your targets, and never lose a finding again.

Centralized notifications

Scan findings, dataset triggers, and bhlast interactions land in one inbox, so the important stuff finds you.

Blob storage

Securely store and manage large files, binaries, and artifacts right next to your projects and workflows.

Ready to Automate Your Hunting?

Join security researchers automating recon, scanning, and OOB monitoring with BountyHub. Build your first workflow today.