Agentic harness for finding software contract opportunities, qualifying them against a local client profile, and applying or drafting proposals when the opportunity clears the configured gates.
npm install
npm run validate
node bin/software-contract-forge.mjs helpCreate a consumer project:
npx --package @agent-pattern-labs/software-contract-forge create-software-contract-forge ../my-contract-pipeline
cd ../my-contract-pipeline
npm installThen fill in config/client-profile.yml and config/sources.yml, add leads to data/pipeline.md, and run the harness through your agent runtime using the synced instructions and modes.
Public RSS/API sources can be scanned from a consumer project:
software-contract-forge scan
software-contract-forge scan --source weworkremotely-programming --limit 10
software-contract-forge scan --writescan reads only enabled sources in config/sources.yml, dry-runs by default, dedupes against local tracker files, and appends discovered leads to data/pipeline.md only with --write. Per-source limits apply after duplicate filtering, so settled rows do not hide later fresh matches from the same source. Supported adapters include public RSS/API feeds, public ATS boards (greenhouse, lever, ashby), explicit first-party HTML career pages, and bounded sitemap extraction.
For batch processing, materialize pending pipeline leads first:
software-contract-forge batch:prepare --limit 20
batch/batch-runner.sh --from-pipeline --limit 20 --dry-run
batch/batch-runner.sh --parallel 2batch:prepare reads unchecked rows from data/pipeline.md, writes batch/batch-input.tsv, and skips rows already settled in application or tracker state by default.
Preflight public ATS application forms before a portal-heavy batch:
software-contract-forge portal:preflight --input batch/batch-input.tsv --format jsonportal:preflight detects required compensation, start-date, work-authorization, citizenship, legal, location, consent, hCaptcha/reCAPTCHA/Turnstile, and security-code surfaces that require user review or user action before non-binding submission. JSON output includes userActions and reviewItems so a batch runner can separate "user must complete a portal challenge" from "user must approve an answer." It does not submit applications.
When a portal blocks on hCaptcha/reCAPTCHA/Turnstile, OTP/security code, login, or review-only field, use a headed handoff instead of trying to bypass it:
software-contract-forge portal:handoff --url https://example.test/jobs/123 --out reports/example-handoff.jsonportal:handoff opens a persistent headed browser profile under batch/.portal-handoff-browser, waits for the user to complete the portal-side action, then records whether a terminal confirmation was detected. Geometra/Cloak stealth can help browser compatibility, but this is still a human-in-the-loop helper, not an anti-bot bypass or captcha solver.
iso/is the source of truth for shared agent instructions, subagents, MCP config, and the command router.modes/contains workflow procedures for scan, qualify, apply, proposal, pipeline, batch, tracker, and follow-up work.templates/contains executable policy: states, score gates, context bundles, capability boundaries, artifact contracts, and migrations.bin/exposes the package CLI, consumer scaffolder, and install-time sync.scripts/contains deterministic local helpers used by agents instead of deriving values in prose.
MIT. See LICENSE.