Customer Research
Nexus-JPF/note-companion
When the user wants to conduct, analyze, or synthesize customer research.
Live Upwork market research producing a ranked niche-opportunity dashboard.
$ npx skills add pawbytes/skill-suites --skill paw-upwork-research -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-research --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pawbytes/skill-suites.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/upwork/paw-upwork-research .claude/skills/paw-upwork-research && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "paw-upwork-research" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-research into .claude/skills/paw-upwork-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-research", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-researchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pawbytes/skill-suites --skill paw-upwork-research -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-research --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pawbytes/skill-suites.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/upwork/paw-upwork-research .agents/skills/paw-upwork-research && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "paw-upwork-research" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-research into .agents/skills/paw-upwork-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-research", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pawbytes/skill-suites --skill paw-upwork-research -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-research --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pawbytes/skill-suites.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/upwork/paw-upwork-research .cursor/skills/paw-upwork-research && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "paw-upwork-research" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-research into .cursor/skills/paw-upwork-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-research", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pawbytes/skill-suites.git --path src/upwork/paw-upwork-research--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pawbytes/skill-suites --skill paw-upwork-research -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-research --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pawbytes/skill-suites.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/upwork/paw-upwork-research .gemini/skills/paw-upwork-research && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "paw-upwork-research" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-research into .gemini/skills/paw-upwork-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-research", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pawbytes/skill-suites paw-upwork-researchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pawbytes/skill-suites --skill paw-upwork-research -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pawbytes/skill-suites.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/upwork/paw-upwork-research .github/skills/paw-upwork-research && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "paw-upwork-research" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-research into .github/skills/paw-upwork-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-research", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pawbytes/skill-suites --skill paw-upwork-research -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-research --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pawbytes/skill-suites.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/upwork/paw-upwork-research .opencode/skills/paw-upwork-research && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "paw-upwork-research" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-research into .opencode/skills/paw-upwork-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-research", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
paw-upwork-researchLive Upwork market research producing a ranked niche-opportunity dashboard.
Paw Upwork Research is an agent skill from pawbytes/skill-suites. Live Upwork market research producing a ranked niche-opportunity dashboard. Use when the user wants to scan the Upwork market, find or validate a freelance niche, asks 'is there demand for X', wants competitor profile analysis, or needs rate observations for a niche. Triggers: 'research my niche', 'scan the Upwork market', 'is there demand', 'what should I specialize in', 'check the market', 'what do freelancers charge for X'.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `references/live-browser-research.md`, `references/manual-research.md` and `scripts/render_dashboard.py`).
It sits in Marketing & SEO, covering Market research. The repository describes itself as: 50+ AI agent skills for Claude, Codex, OpenClaw etc — agentic marketing automation, AI creative agency, and developer productivity tools. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 547a6df. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
pawbytes.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Paw Upwork Research loads about 2.2k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 113 tokens; SKILL.md has 1,084 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from pawbytes/skill-suites at commit 547a6df, republished under its MIT licence (© pawbytes). 1,084 words, ~2,171 tokens.
.claude/skills/paw-upwork-research/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.This workflow turns the live Upwork market into an evidence-backed, ranked view of which niche the freelancer should pursue — delivered as an auto-opening HTML dashboard plus a markdown report that feeds the coach's positioning brief. You are an opinionated market analyst: you scan real jobs and real competing profiles, then form a ranking the freelancer can challenge — never a neutral data dump. Your output is consumed by paw-upwork-agent-coach (which turns the chosen niche and rate observations into positioning-brief.md) and by the freelancer deciding where to commit, so every recommendation must stand on observed evidence they can verify.
The non-negotiable: every finding is grounded in REAL data you observed — job counts, proposal counts, rate ranges, competing profiles — never invented. Every recommendation cites what was seen. A ranking built on plausible-sounding guesses fails the freelancer worse than no research at all, because it feels like evidence.
Module: paw-upwork — part of the PawBytes Upwork Suite.
Args: --headless / -H for non-interactive (manual mode only — live browser research is supervised); an optional freelancer slug to skip selection.
{skill-root} (e.g. references/live-browser-research.md) resolve from this skill's installed directory.{project-root} → the project working directory.paw-upwork-research → the skill directory's basename.Load config from {project-root}/.pawbytes/config/config.yaml and {project-root}/.pawbytes/config/config.user.yaml (root level and the upwork section). If config is missing, mention paw-upwork-setup can configure the module, then proceed with defaults. Honor communication_language and address the freelancer by user_name when known. Read research_mode (default local-browser) and reports_folder.
Then find the freelancer and orient:
{project-root}/.pawbytes/upwork-suites/freelancers/*/index.md. One → use it. Multiple → use the slug arg or default_freelancer, else ask which. None → this skill needs a workspace; point them at paw-upwork-agent-coach for onboarding, or proceed read-only against pasted input without saving if they just want a quick scan.index.md, freelancer-context.md (their real skills, history, what they've enjoyed and been paid for), and positioning-brief.md if it exists. This is the fit half of the ranking — you cannot judge fit without knowing what they can actually do.research_mode is local-browser, confirm browser-harness is available (command -v browser-harness). Available → load references/live-browser-research.md. Unavailable, or research_mode is manual, or --headless → load references/manual-research.md and tell the freelancer you're working from listings they paste. Never block on the browser.Before scanning, settle which 2–4 niches to investigate — scanning everything wastes the session and dilutes the ranking. Derive candidates from the freelancer's real skills and history (mine freelancer-context.md), any lanes the coach flagged in positioning-brief.md, and what the freelancer says they're curious about. Force specificity: "web development" is not a candidate, "Shopify speed optimization" is — a vague candidate produces a vague, unrankable scan. Confirm the shortlist with the freelancer (interactive) or take the brief's lanes plus the obvious skill-derived ones (headless).
The mode reference you loaded carries the how — driving the browser or working from pasted listings — and enumerates each signal. Whichever mode, gather comparable signals across every candidate niche (demand, competition, rates, and competing-profile patterns) so the ranking holds up side by side. Fit is the half neither mode supplies: how well the niche maps onto the freelancer's actual skills and history, which you bring from the workspace, not the market.
Record observations to a per-run scratch as you go — not to memory. A live scan walks dozens of job pages across many turns, and your non-negotiable is that every number is observed; if context compacts mid-scan, anything held only in the conversation is gone and the ranking quietly becomes invention. Append to {freelancer-workspace}/research/.observations-{YYYY-MM-DD}.json per niche as you observe — mirror the findings-JSON niche shape (name, the counts and rates you saw, evidence notes) so it transforms straight into the findings JSON later. A candidate with almost no jobs is itself a finding — record the count you saw and say so.
Score each niche on fit × demand × competition (treat low competition as a wider open lane). Then take a position: which niche should the freelancer commit to, and why, citing the numbers you observed. This is the heart of the skill — you are an advisor, not a reporter. Example shape: "Based on 40 jobs I scanned, Shopify speed optimization has steady demand, far less competition than generic web dev, and fits your three checkout rebuilds better than anything else — here's the evidence." Rank honestly: if the freelancer's favorite niche is crowded and underpaid, say so and show the jobs that prove it.
Render the dashboard with the script — it is pure plumbing, so the LLM does not hand-write HTML. Build a findings JSON from your observations scratch (the shape is documented at the top of scripts/render_dashboard.py: freelancer, generated, mode, recommendation, a niches array with rank/fit/demand/competition/rate_range/evidence/optional sample_jobs, plus optional rate_notes and caveats), write it to a temp file, then:
python3 scripts/render_dashboard.py --findings {temp-findings.json} --out "{freelancer-workspace}/research/niche-dashboard.html"The script writes the self-contained HTML and auto-opens it in the freelancer's default browser — that opening moment is the UX centerpiece, so let it open rather than just reporting a path. If it returns opened: false (headless or no GUI), tell the freelancer the file path so they can open it.
Then write the companion markdown report to {freelancer-workspace}/research/niche-opportunity-report.md — the same ranking and evidence in prose, plus the rate observations, so the coach and the freelancer have a readable record the dashboard summarizes. The caveats/evidence-basis line must state honestly what the scan covered (how many jobs, live vs pasted, read-only).
The research is only valuable if it reaches the brief. After producing the outputs:
index.md status row (research done, recommended niche, last updated).[research] line to today's {freelancer-workspace}/daily/YYYY-MM-DD.md log noting what was scanned and the recommendation.paw-upwork-agent-coach to lock positioning (the coach reads your report and rate observations straight into positioning-brief.md). Research is never a dead-end report — name the recommendation and hand it forward.© pawbytes, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (scripts, references) in src/upwork/paw-upwork-research of pawbytes/skill-suites.
Open the folder on GitHubat commit 547a6df
Paw Upwork Research next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Paw Upwork Research this skillpawbytes/skill-suites | 113 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Customer ResearchNexus-JPF/note-companion | 870 | 6 repos | ~3.2k | Automated safety check: Pass | MIT | |
| Creative Directorsmixs/creative-director-skill | 248 | — | ~5.1k | Automated safety check: Pass | CC-BY-4.0 | |
| Audience ResearchScrapeCreators/social-media-research-skills | 3.4k | — | ~635 | Automated safety check: Notes | MIT | |
| Last 30 Days Trend Researchnexu-io/open-design | 100k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Bggg Data Redditbinggandata/bggg-skills | 604 | — | ~1.2k | Automated safety check: Pass | MIT |
Nexus-JPF/note-companion
When the user wants to conduct, analyze, or synthesize customer research.
smixs/creative-director-skill
AI creative director with recursive self-assessment. An agent skill from smixs/creative-director-skill.
ScrapeCreators/social-media-research-skills
A skill your agent uses when the user wants to evaluate a creator, influencer, or brand audience using public profile signals, TikTok audience demographics, follower/following data, comments…
nexu-io/open-design
Produces a cited Markdown briefing on recent community sentiment and social reaction to a topic, labeling every source it could not actually check.
binggandata/bggg-skills
Collect auditable Reddit search results and full comment trees at scale, preserve the source JSON, and normalize posts and comments into analysis-ready JSONL.
ScrapeCreators/social-media-research-skills
A skill your agent uses when the user wants to mine comments and replies for audience reactions, customer language, questions, objections, complaints, product ideas, buying intent, sentiment, or…
pawbytes/skill-suites
Installs the Prodig Suites product-creation module into a project, scaffolding its workspace folders and writing the shared and personal config files.
pawbytes/skill-suites
Cuts long-form video into short platform-ready clips: finds strong moments, reframes for vertical, adds subtitles and brand overlays, and writes a clip manifest.
pawbytes/skill-suites
Assembles branded, export-ready proposals from brief, research, and pricing artifacts — type-adaptive for pitch, RFP, or scoping.
pawbytes/skill-suites
Turns pasted text, audio, video or URLs from a client into a structured, completeness-checked brief.md for the first stage of a proposal pipeline.
pawbytes/skill-suites
Turns case studies, past proposals and boilerplate dropped into a library inbox into structured, source-linked indexes for later proposal work.
pawbytes/skill-suites
Turns a structured sales brief into an evidence-backed HTML research dossier, matching indexed case studies locally and gathering client, tech-stack and pricing evidence from the web.
Categories
Live Upwork market research producing a ranked niche-opportunity dashboard. Paw Upwork Research is an agent skill from pawbytes/skill-suites. Live Upwork market research producing a ranked niche-opportunity dashboard.
Paw Upwork Research fits situations like: the user wants to scan the Upwork market; validate a freelance niche; asks is there demand for X; wants competitor profile analysis.
Run `npx skills add pawbytes/skill-suites --skill paw-upwork-research -a claude-code`. Or copy the skill folder (src/upwork/paw-upwork-research in pawbytes/skill-suites) into .claude/skills/paw-upwork-research in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pawbytes/skill-suites --skill paw-upwork-research -a codex`. Or copy the skill folder (src/upwork/paw-upwork-research in pawbytes/skill-suites) into .agents/skills/paw-upwork-research in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pawbytes/skill-suites --skill paw-upwork-research -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/paw-upwork-research, .gemini/skills/paw-upwork-research, .github/skills/paw-upwork-research and .opencode/skills/paw-upwork-research in your project.
Going by SKILL.md and its folder, Paw Upwork Research needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md names 1 domain. As links in the text: pawbytes.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Paw Upwork Research is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Paw Upwork Research: Customer Research (Nexus-JPF/note-companion, 870 stars), Creative Director (smixs/creative-director-skill, 248 stars), Audience Research (ScrapeCreators/social-media-research-skills, 3.4k stars) and Last 30 Days Trend Research (nexu-io/open-design, 100k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pawbytes (a GitHub organization) maintains it in pawbytes/skill-suites, which has 113 GitHub stars. The repository holds 71 skills in this directory. The repository was last updated on October 3, 2026.
Source: pawbytes/skill-suites on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.