Add work lanes, make live proposal automation opt-in, rename to upwork-cli - #1
Merged
Merged
Conversation
…k-cli
Ranking was hardcoded to AI training and consulting, so an n8n or agent
builder saw every relevant job penalized as a weak title fit. Six built-in
lanes (ai-automation, ai-agents, ai-apps, ai-training, ai-consulting,
ai-creative) now carry their own searches and ranking signals, members pick
them in setup, and custom lanes live in config. Each job is scored against
every selected lane and keeps its best one.
Terms now match whole words, which fixes short terms firing inside other
words ("rag" in "storage" earned a +10 priority title match).
Proposal fill and submit drive the browser against Upwork's automation
rules, so they now refuse to run until a member opts in with
setup --enable-live-proposals. The default path ends at proposal review and
record-submitted.
The package, command, state directory, and environment variables move to
upwork-cli. UPWORK_JOBS_* variables and an existing ~/.upwork-jobs
directory keep working.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
Lanes. Ranking was hardcoded to AI training and consulting, so automation and agent builders saw relevant jobs penalized as weak title fits. Six built-in lanes (
ai-automation,ai-agents,ai-apps,ai-training,ai-consulting,ai-creative) now carry their own searches and ranking signals. Members pick them withsetup --lanes, list them withupwork-cli lanes, and add custom lanes undercustomLanesin config. Each job is scored against every selected lane and keeps its best one; the lane appears in JSON, CSV, markdown, and table output.huntwith no argument runs every query in the member's lanes.Whole-word matching. Short terms no longer fire inside other words ("rag" in "storage" earned a +10 priority title match). A trailing
*marks a prefix term.Opt-in live proposals.
proposal fillandproposal submitdrive the browser against Upwork's automation rules (Terms of Use section 3.5), so they refuse to run until a member opts in withsetup --enable-live-proposals. The default path ends atproposal review, a manual paste, andrecord-submitted.Rename to upwork-cli. Package, command,
~/.upwork-clistate directory, andUPWORK_CLI_*variables.UPWORK_JOBS_*variables and an existing~/.upwork-jobsdirectory keep working.Verification
npm test: 104 pass (94 existing, 10 new covering lanes, matching, custom lane validation, setup, and the opt-in gate through the real CLI)npm run check:release: passes🤖 Generated with Claude Code