Skip to content

Comments

Upwork Job Search Voice AI Ability for OpenHome#109

Open
khushi0433 wants to merge 11 commits intoopenhome-dev:devfrom
khushi0433:add-upwork-job-search
Open

Upwork Job Search Voice AI Ability for OpenHome#109
khushi0433 wants to merge 11 commits intoopenhome-dev:devfrom
khushi0433:add-upwork-job-search

Conversation

@khushi0433
Copy link

@khushi0433 khushi0433 commented Feb 21, 2026

What does this Ability do?

Search for freelance jobs on Upwork using voice commands. Users can say a job category or skill (like "web development" or "Python programming"), and the Ability fetches the top Upwork jobs and reads them out with details like title, budget, duration, workload, and client rating.

Suggested Trigger Words
"find jobs"
"search upwork"
"upwork jobs"
"look for work"
"find freelance work"

Type
New community Ability
Improvement to existing Ability

Bug fix

Documentation update

External APIs
Uses external API(s): Upwork GraphQL API v2 (requires Upwork API credentials: Client Key & Client Secret)

Testing

Tested in OpenHome Live Editor
All exit paths tested (said "stop", "exit", etc.)
Error scenarios tested (API down, bad input, invalid query, no jobs found)

Checklist
Files are in community/upwork-job-search/
main.py follows SDK pattern (extends MatchingCapability, has register_capability + call)
README.md included with description, suggested triggers, and setup
resume_normal_flow() called on every exit path
No print() using editor_logging_handler
No hardcoded API keys using placeholders (UPWORK_CLIENT_KEY, UPWORK_CLIENT_SECRET)
No blocked imports (redis, connection_manager, user_config)
No asyncio.sleep() or asyncio.create_task() — using session_tasks
Error handling on all external calls
Tested in OpenHome Live Editor

Anything else?

Example conversation included in README.md
Ability uses OAuth 2.0 client credentials flow
Job results limited to top 5 for concise voice responses

loom video showing the OpenHome live editor test
https://www.loom.com/share/a5423d20600f4d96a79adf1a9581e2b6

@khushi0433 khushi0433 requested review from a team as code owners February 21, 2026 09:39
@github-actions
Copy link
Contributor

github-actions bot commented Feb 21, 2026

🔀 Branch Merge Check

PR direction: add-upwork-job-searchdev

Passedadd-upwork-job-searchdev is a valid merge direction

@github-actions github-actions bot added first-contribution First-time contributor community-ability Community-contributed ability labels Feb 21, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Feb 21, 2026

❌ Ability Validation Failed

📋 Validating: community/upwork-job-search
  ❌ raw open() is not allowed — use capability_worker file helpers (read_file, write_file, etc.) instead
  ❌ Missing register capability tag — add the following line to your class:
    #{{register capability}}
See: https://docs.openhome.com/how_to_build_an_ability
  ❌ 2 error(s) found

📚 How to fix

@github-actions
Copy link
Contributor

github-actions bot commented Feb 21, 2026

🔍 Lint Results

🔧 Auto-formatted

Some files were automatically cleaned and formatted with autoflake + autopep8 and committed.

  • Unused imports removed (autoflake)
  • Unused variables removed (autoflake)
  • PEP8 formatting applied (autopep8)

__init__.py — Empty as expected

Files linted: community/upwork-job-search/main.py community/upwork-job-search/run_local.py community/upwork-job-search/src/agent/capability.py community/upwork-job-search/src/agent/capability_worker.py community/upwork-job-search/src/main.py community/upwork-job-search/test_ability.py

❌ Flake8 Errors (could not be auto-fixed)

community/upwork-job-search/src/agent/capability.py:5:13: F821 undefined name 'AgentWorker'
community/upwork-job-search/src/agent/capability.py:6:24: F821 undefined name 'CapabilityWorker'
community/upwork-job-search/src/agent/capability.py:21:28: F821 undefined name 'AgentWorker'

Fix the remaining issues and push again. The lint will re-run automatically.

@codermohsin
Copy link
Contributor

Hey,

I ran your ability code and it give this error: "[ERROR]
1771827866.2706554:Error in ability: github_abilities, Details: unexpected unindent (main.py, line 51)"
image

Also please reshare demo video with clear audio with showing your ability full fucntionality.

Thanks

@khushi0433 khushi0433 force-pushed the add-upwork-job-search branch from 133227a to 434b7a4 Compare February 23, 2026 09:04
@khushi0433
Copy link
Author

hey thanks for the view the error was an indentation error in main.py which i fixed it i'm still testing the new oauth implemention to remotive api to avoid the 403 error i will share the live test demo loom soon thanks again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community-ability Community-contributed ability first-contribution First-time contributor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants