{
  "schemaVersion": "1.0",
  "item": {
    "slug": "remote-jobs-finder",
    "name": "Remote Jobs Finder",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Lior539/remote-jobs-finder",
    "canonicalUrl": "https://clawhub.ai/Lior539/remote-jobs-finder",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/remote-jobs-finder",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=remote-jobs-finder",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "install-server.sh",
      "INSTALL_SERVER.md",
      "CLAWHUB_NOTES.md",
      "README.md",
      "SKILL.md",
      "SERVER_EXTENSION_openclaw_extensions_root/openclaw.plugin.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/remote-jobs-finder"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/remote-jobs-finder",
    "agentPageUrl": "https://openagent3.xyz/skills/remote-jobs-finder/agent",
    "manifestUrl": "https://openagent3.xyz/skills/remote-jobs-finder/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/remote-jobs-finder/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Remote Rocketship × OpenClaw Skill (Natural Language Job Finder)",
        "body": "Use this skill whenever a user asks (in normal chat) to find remote jobs, browse opportunities, or set up an ongoing job search. This integration is powered by Remote Rocketship (https://www.remoterocketship.com).\n\nGithub repo: https://github.com/Lior539/openclaw-remote-jobs-finder\n\nUX rule: fully conversational. Do not tell the user to run CLIs, use slash commands, or visit dashboards."
      },
      {
        "title": "Fetching jobs (MANDATORY)",
        "body": "When the user wants real job listings, you MUST call the OpenClaw tool rr_jobs_search.\n\nHard rules:\n\nDo NOT ask the user to run any CLI.\nDo NOT claim you can’t fetch listings (you can).\nDo NOT attempt raw HTTP calls from the model.\n\nAPI key rules:\n\nThe Remote Rocketship API key is provided server-side via environment variable RR_API_KEY.\nNever ask the user to paste secrets in WhatsApp.\n\nExample call:\n\n{\n  \"filters\": {\n    \"page\": 1,\n    \"itemsPerPage\": 20,\n    \"jobTitleFilters\": [\"Product Manager\"],\n    \"locationFilters\": [\"United Kingdom\"]\n  },\n  \"includeJobDescription\": false\n}"
      },
      {
        "title": "When to Trigger",
        "body": "Trigger on messages like:\n\n“Help me find a remote job”\n“Find me remote Product Manager roles”\n“Show me remote jobs in the UK”\n“Any new backend roles since yesterday?”\n“Send me 20 more”\n“Set this up to check every hour”"
      },
      {
        "title": "A) Onboarding (keep it short)",
        "body": "Ask only what you need. Prefer 1–3 quick questions, then fetch.\n\nRole / direction (required)\n\n“What kind of roles are you looking for? (job titles, function, seniority)”\n\nLocation eligibility (required)\n\n“Where can you legally work from? (country / region)”\n\nMust-haves & deal-breakers (optional, single combined question)\n\n“Any must-haves (salary/industry/async) or deal-breakers?”\n\nMonitoring cadence (optional)\n\n“Want me to check for new matches on a schedule (hourly/daily/off)?”\n\nIf the user doesn’t want to answer everything, proceed with what you have and fetch results anyway."
      },
      {
        "title": "B) First fetch (default)",
        "body": "Default itemsPerPage: 20 unless the user asks for a different batch size.\nKeep includeJobDescription: false unless the user asks for deeper detail."
      },
      {
        "title": "Preference Memory (important)",
        "body": "Maintain a simple user profile in memory so the user doesn’t need to repeat themselves:\n\ntargetTitles: string[]\nlocationFilters: string[]\nseniorityFilters: string[] (if known)\nemploymentTypeFilters: string[] (if known)\nmustHaves: string[]\ndealBreakers: string[]\nrankingPreference: \"best_fit\" | \"newest_first\"\npollingCadence: e.g. \"hourly\" / \"daily\" / \"off\"\nlastQueryFilters: the last filters object used (for “20 more”)\n\nIf the user updates anything (“Actually only contract roles”), update memory."
      },
      {
        "title": "Pagination & “20 more”",
        "body": "Store lightweight paging state:\n\nfilters\npage\nitemsPerPage\npagination.totalCount / hasNextPage\n\nRules:\n\nWhen the user tweaks filters, reset page back to 1 and fetch again.\nIf they say “more”, “20 more”, “next page”, increment filters.page and call rr_jobs_search again with the last filters.\nAlways mention what you’re showing (e.g., “Showing 21–40 of 134”).\nIf hasNextPage is false, tell the user you’ve reached the end."
      },
      {
        "title": "Output formatting (WhatsApp-friendly)",
        "body": "For each job, show as a bulleted list:\nRole Title — Company\n\n🕒 Posted: <date and time posted, formatted nicely e.g. today @ 5:15pm, or yesterday @ 2:10pm, or 2 days ago, or 1 week ago etc. Only show time if it was today or yesterday>\n<flag emoji> Location (remote scope)\n💰 Salary (or “Salary undisclosed”)\n1–2 line summary\n🔗 Link to apply\n🏢 Link to company homepage\n🌐 Link to company LinkedIn:\n\nKeep it concise. After the list, ask what to do next:\n\n“Want 20 more, or should I narrow by industry/seniority/salary?”"
      },
      {
        "title": "OpenClaw Tool to Use (required)",
        "body": "Tool: rr_jobs_search\n\nParameters:\n\nfilters (object): passed through to Remote Rocketship API filters\nincludeJobDescription (boolean, optional; default false)\n\nThe tool performs the POST to:\nhttps://www.remoterocketship.com/api/openclaw/jobs"
      },
      {
        "title": "Error handling",
        "body": "StatusMeaningAgent guidance401Missing/invalid API keyTell the admin to set/repair RR_API_KEY server-side and restart the gateway. Do NOT ask the user for keys in chat.403Subscription inactiveTell the user they need an active Remote Rocketship plan to fetch jobs.429Rate limitInform the user you hit the daily limit and suggest retrying later.5xxBackend issueApologize, retry once, then ask the user to try again later."
      },
      {
        "title": "Filters (common)",
        "body": "Common filter keys you can use inside filters:\n\npage (int, default 1)\nitemsPerPage (int, default 20, max 50)\njobTitleFilters (string[])\nlocationFilters (string[]) — use canonical values like “United Kingdom”, “Worldwide”\nkeywordFilters (string[])\nexcludedKeywordFilters (string[])\nseniorityFilters (string[]) — e.g. [\"senior\"]\nemploymentTypeFilters (string[]) — e.g. [\"full-time\"]\n\nPrefer canonical titles/locations from RR lists when possible."
      }
    ],
    "body": "Remote Rocketship × OpenClaw Skill (Natural Language Job Finder)\n\nUse this skill whenever a user asks (in normal chat) to find remote jobs, browse opportunities, or set up an ongoing job search. This integration is powered by Remote Rocketship (https://www.remoterocketship.com).\n\nGithub repo: https://github.com/Lior539/openclaw-remote-jobs-finder\n\nUX rule: fully conversational. Do not tell the user to run CLIs, use slash commands, or visit dashboards.\n\nFetching jobs (MANDATORY)\n\nWhen the user wants real job listings, you MUST call the OpenClaw tool rr_jobs_search.\n\nHard rules:\n\nDo NOT ask the user to run any CLI.\nDo NOT claim you can’t fetch listings (you can).\nDo NOT attempt raw HTTP calls from the model.\n\nAPI key rules:\n\nThe Remote Rocketship API key is provided server-side via environment variable RR_API_KEY.\nNever ask the user to paste secrets in WhatsApp.\n\nExample call:\n\n{\n  \"filters\": {\n    \"page\": 1,\n    \"itemsPerPage\": 20,\n    \"jobTitleFilters\": [\"Product Manager\"],\n    \"locationFilters\": [\"United Kingdom\"]\n  },\n  \"includeJobDescription\": false\n}\n\nWhen to Trigger\n\nTrigger on messages like:\n\n“Help me find a remote job”\n“Find me remote Product Manager roles”\n“Show me remote jobs in the UK”\n“Any new backend roles since yesterday?”\n“Send me 20 more”\n“Set this up to check every hour”\nConversation Flow\nA) Onboarding (keep it short)\n\nAsk only what you need. Prefer 1–3 quick questions, then fetch.\n\nRole / direction (required)\n“What kind of roles are you looking for? (job titles, function, seniority)”\nLocation eligibility (required)\n“Where can you legally work from? (country / region)”\nMust-haves & deal-breakers (optional, single combined question)\n“Any must-haves (salary/industry/async) or deal-breakers?”\nMonitoring cadence (optional)\n“Want me to check for new matches on a schedule (hourly/daily/off)?”\n\nIf the user doesn’t want to answer everything, proceed with what you have and fetch results anyway.\n\nB) First fetch (default)\nDefault itemsPerPage: 20 unless the user asks for a different batch size.\nKeep includeJobDescription: false unless the user asks for deeper detail.\nPreference Memory (important)\n\nMaintain a simple user profile in memory so the user doesn’t need to repeat themselves:\n\ntargetTitles: string[]\nlocationFilters: string[]\nseniorityFilters: string[] (if known)\nemploymentTypeFilters: string[] (if known)\nmustHaves: string[]\ndealBreakers: string[]\nrankingPreference: \"best_fit\" | \"newest_first\"\npollingCadence: e.g. \"hourly\" / \"daily\" / \"off\"\nlastQueryFilters: the last filters object used (for “20 more”)\n\nIf the user updates anything (“Actually only contract roles”), update memory.\n\nPagination & “20 more”\n\nStore lightweight paging state:\n\nfilters\npage\nitemsPerPage\npagination.totalCount / hasNextPage\n\nRules:\n\nWhen the user tweaks filters, reset page back to 1 and fetch again.\nIf they say “more”, “20 more”, “next page”, increment filters.page and call rr_jobs_search again with the last filters.\nAlways mention what you’re showing (e.g., “Showing 21–40 of 134”).\nIf hasNextPage is false, tell the user you’ve reached the end.\nOutput formatting (WhatsApp-friendly)\n\nFor each job, show as a bulleted list: Role Title — Company\n\n🕒 Posted: <date and time posted, formatted nicely e.g. today @ 5:15pm, or yesterday @ 2:10pm, or 2 days ago, or 1 week ago etc. Only show time if it was today or yesterday>\n<flag emoji> Location (remote scope)\n💰 Salary (or “Salary undisclosed”)\n1–2 line summary\n🔗 Link to apply\n🏢 Link to company homepage\n🌐 Link to company LinkedIn:\n\nKeep it concise. After the list, ask what to do next:\n\n“Want 20 more, or should I narrow by industry/seniority/salary?”\nOpenClaw Tool to Use (required)\n\nTool: rr_jobs_search\n\nParameters:\n\nfilters (object): passed through to Remote Rocketship API filters\nincludeJobDescription (boolean, optional; default false)\n\nThe tool performs the POST to: https://www.remoterocketship.com/api/openclaw/jobs\n\nError handling\nStatus\tMeaning\tAgent guidance\n401\tMissing/invalid API key\tTell the admin to set/repair RR_API_KEY server-side and restart the gateway. Do NOT ask the user for keys in chat.\n403\tSubscription inactive\tTell the user they need an active Remote Rocketship plan to fetch jobs.\n429\tRate limit\tInform the user you hit the daily limit and suggest retrying later.\n5xx\tBackend issue\tApologize, retry once, then ask the user to try again later.\nFilters (common)\n\nCommon filter keys you can use inside filters:\n\npage (int, default 1)\nitemsPerPage (int, default 20, max 50)\njobTitleFilters (string[])\nlocationFilters (string[]) — use canonical values like “United Kingdom”, “Worldwide”\nkeywordFilters (string[])\nexcludedKeywordFilters (string[])\nseniorityFilters (string[]) — e.g. [\"senior\"]\nemploymentTypeFilters (string[]) — e.g. [\"full-time\"]\n\nPrefer canonical titles/locations from RR lists when possible."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Lior539/remote-jobs-finder",
    "publisherUrl": "https://clawhub.ai/Lior539/remote-jobs-finder",
    "owner": "Lior539",
    "version": "1.6.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/remote-jobs-finder",
    "downloadUrl": "https://openagent3.xyz/downloads/remote-jobs-finder",
    "agentUrl": "https://openagent3.xyz/skills/remote-jobs-finder/agent",
    "manifestUrl": "https://openagent3.xyz/skills/remote-jobs-finder/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/remote-jobs-finder/agent.md"
  }
}