Doc Coauthoring
aws-samples/sample-strands-agent-with-agentcore
Guide users through a structured workflow for co-authoring documentation.
Upwork proposal writer that decodes a job posting and produces a tailored, ready-to-send proposal.
$ npx skills add pawbytes/skill-suites --skill paw-upwork-proposal -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-proposal --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-proposal .claude/skills/paw-upwork-proposal && 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-proposal" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-proposal into .claude/skills/paw-upwork-proposal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-proposal", 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-proposalType 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-proposal -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-proposal --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-proposal .agents/skills/paw-upwork-proposal && 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-proposal" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-proposal into .agents/skills/paw-upwork-proposal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-proposal", 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-proposal -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-proposal --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-proposal .cursor/skills/paw-upwork-proposal && 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-proposal" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-proposal into .cursor/skills/paw-upwork-proposal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-proposal", 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-proposal--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-proposal -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-proposal --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-proposal .gemini/skills/paw-upwork-proposal && 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-proposal" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-proposal into .gemini/skills/paw-upwork-proposal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-proposal", 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-proposalInstalls 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-proposal -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-proposal .github/skills/paw-upwork-proposal && 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-proposal" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-proposal into .github/skills/paw-upwork-proposal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-proposal", 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-proposal -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-proposal --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-proposal .opencode/skills/paw-upwork-proposal && 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-proposal" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-proposal into .opencode/skills/paw-upwork-proposal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-proposal", 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-proposalUpwork proposal writer that decodes a job posting and produces a tailored, ready-to-send proposal.
Paw Upwork Proposal is an agent skill from pawbytes/skill-suites. Upwork proposal writer that decodes a job posting and produces a tailored, ready-to-send proposal. Use when the user pastes an Upwork job posting, asks to write or improve a proposal, wants to score a draft, asks 'should I apply to this', wants Connects/budget advice, or needs scripts for after a client replies. Triggers: 'write an Upwork proposal', 'decode this job posting', 'score my proposal', 'should I apply', 'how many Connects', 'client replied, what do I say'.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/apply-and-connects.md`, `references/client-handling.md` and `references/draft-scoring.md`).
It sits in Sales & Support, covering Proposals and quotes. 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.
No scripts in the folder and no shell commands in SKILL.md.
From 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 Proposal loads about 2.1k tokens when it runs, and up to ~6.5k if it reads all its reference files. Until then it costs about 123 tokens; SKILL.md has 1,075 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); files beside SKILL.md are not scanned.
The full file from pawbytes/skill-suites at commit 547a6df, republished under its MIT licence (© pawbytes). 1,075 words, ~2,069 tokens.
.claude/skills/paw-upwork-proposal/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.This skill turns a specific Upwork job posting into a tailored, ready-to-send proposal that wins the interview. It reverse-engineers what the client actually wants — the pain behind the post, the red flags, the budget signals — then writes a proposal in the freelancer's voice and positioning that opens with a hook, mirrors the client's language, and promises a specific outcome. Beyond drafting it scores existing drafts, advises whether a job is worth applying to and how to spend Connects, scripts what to say after a client replies, and grows a reusable proposal kit so the next proposal takes minutes instead of an hour.
Act as a senior Upwork proposal strategist — someone who has read the winning and losing side of thousands of proposals and knows that the client skims the first two lines and decides. You teach as you write, so the freelancer gets better at the craft, not just this one proposal.
Module: paw-upwork — part of the PawBytes Upwork Suite. This is the Win stage of the suite arc (Discover → Position → Win → Learn).
{skill-root} (e.g. references/proposal-craft.md) resolve from this skill's installed directory.{project-root} → the project working directory.{skill-name} → the skill directory's basename.{slug} → the chosen freelancer's workspace folder name under freelancers/.Every proposal answers the real job — the pain behind the posting — mirrors the client's own language, opens with a hook (never "I am writing to apply for..."), and makes a specific, credible outcome promise. A generic template blast is a failure however polished, because clients delete generic on sight. If the job posting is too thin to decode a real need, say so and ask the freelancer what they know before writing on a guess.
Load available 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 that paw-upwork-setup can configure the module, then proceed with sensible defaults. Honor communication_language and address the freelancer by user_name when known.
Then find the freelancer's workspace and read context:
{project-root}/.pawbytes/upwork-suites/freelancers/*/index.md. If default_freelancer is set, use it; if multiple exist and none is defaulted, ask which freelancer this is for; if none exist, the freelancer hasn't onboarded — point them to paw-upwork-agent-coach and proceed only with whatever context they give you inline.index.md, then positioning-brief.md, freelancer-context.md, kit.md, and outcomes.md if they exist. These tell you the niche, voice, proven angles, and what has landed before, so every proposal comes in already knowing the lane.positioning-brief.md is missing, don't hard-block: tell the freelancer the proposal will be stronger with a locked lane, recommend a quick discovery pass with paw-upwork-agent-coach (optionally research first), and proceed from inline context if they want to push ahead now.When invoked non-interactively (a pasted job posting supplied up front, plus a resolvable workspace — default_freelancer set or a single freelancer — and an existing positioning-brief.md), draft directly: load references/proposal-craft.md, do the decode internally, and write the proposal without pausing to confirm the decode back. Surface the decode summary inline in the output instead, so the read stays auditable after the fact. If the posting, the workspace, or the brief can't be resolved, fall back to the interactive path rather than guessing.
Read what the freelancer wants and load the one reference that serves it. Most sessions start by pasting a job posting, which routes to proposal craft.
| Intent | Route |
|---|---|
| Pasted a job posting, "write a proposal", "decode this job" | Load references/proposal-craft.md |
| "Score my draft", "what's wrong with this proposal", pasted their own attempt | Load references/draft-scoring.md |
| "Should I apply", "is this worth it", "how many Connects", budget/bid strategy | Load references/apply-and-connects.md |
| "Client replied", "what do I say", intro call prep, scope/clarifying questions | Load references/client-handling.md |
| "Save this", "build my kit", reuse intros/snippets, refine from results | Load references/kit-and-outcomes.md |
| Ambiguous | Ask whether they want to write a new proposal, score an existing one, or get an apply/Connects read, then route |
The freelancer often chains these in one session — decode and write a proposal, decide if it's worth Connects, then save the winning intro to the kit. Move between references as the conversation moves; each stands alone.
All output saves to the freelancer's workspace so the coach and future runs can read it:
{project-root}/.pawbytes/upwork-suites/freelancers/{slug}/proposals/{job-slug}.md{slug}/kit.md (create on first use){slug}/outcomes.mdAfter saving anything, update the index.md status (proposals sent count when relevant, last updated) and append a [proposal]-tagged line to today's {slug}/daily/YYYY-MM-DD.md log noting what was produced.
kit.md; feed wins back into it. Session two's proposals should take minutes because session one's wins are saved.© 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 5 other files (references) in src/upwork/paw-upwork-proposal of pawbytes/skill-suites.
Open the folder on GitHubat commit 547a6df
Paw Upwork Proposal 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 Proposal this skillpawbytes/skill-suites | 110 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Doc Coauthoringaws-samples/sample-strands-agent-with-agentcore | 195 | 40 repos | ~3.2k | Automated safety check: Pass | MIT | |
| Audit Onboarding Proposalhoangnb24/repository-harness | 1.2k | — | ~4k | Automated safety check: Pass | MIT | |
| No Negative EchoLB623/no-negative-echo | 897 | — | ~965 | Automated safety check: Pass | MIT | |
| GEO Service Proposal Generatorzubair-trabzada/geo-seo-claude | 11k | — | ~3k | Automated safety check: Notes | MIT | |
| Architectural ProposalsFritzAndFriends/SharpSite | 145 | 2 repos | ~1.6k | Automated safety check: Pass | MIT |
aws-samples/sample-strands-agent-with-agentcore
Guide users through a structured workflow for co-authoring documentation.
hoangnb24/repository-harness
Use only when the user explicitly invokes $audit-onboarding-proposal.
LB623/no-negative-echo
Prevent 此地无银三百两式 residue: finalize artifacts without echoing rejected session-only alternatives into labels, metadata, commits, PRs, or handoffs.
zubair-trabzada/geo-seo-claude
Builds a client-ready AI-search-optimization proposal from an existing GEO audit, with pricing tiers, an ROI estimate and a markdown document ready to send.
FritzAndFriends/SharpSite
How to write comprehensive architectural proposals that drive alignment before code is written
techwolf-ai/ai-first-toolkit
Mine the user's Claude Code + Cowork session history into a structured task profile, what they do with AI, how often, how successfully where friction lives, then propose atomic skills that would…
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
Upwork proposal writer that decodes a job posting and produces a tailored, ready-to-send proposal. Paw Upwork Proposal is an agent skill from pawbytes/skill-suites. Upwork proposal writer that decodes a job posting and produces a tailored, ready-to-send proposal.
Paw Upwork Proposal fits situations like: the user pastes an Upwork job posting; improve a proposal; wants to score a draft; asks should I apply to this.
Run `npx skills add pawbytes/skill-suites --skill paw-upwork-proposal -a claude-code`. Or copy the skill folder (src/upwork/paw-upwork-proposal in pawbytes/skill-suites) into .claude/skills/paw-upwork-proposal in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pawbytes/skill-suites --skill paw-upwork-proposal -a codex`. Or copy the skill folder (src/upwork/paw-upwork-proposal in pawbytes/skill-suites) into .agents/skills/paw-upwork-proposal 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-proposal -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-proposal, .gemini/skills/paw-upwork-proposal, .github/skills/paw-upwork-proposal and .opencode/skills/paw-upwork-proposal in your project.
SKILL.md names no scripts, command-line tools or credentials: Paw Upwork Proposal is instructions for the agent only.
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. Review the folder before installing.
Paw Upwork Proposal 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.1k tokens (SKILL.md is roughly 8.3k 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 4.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Paw Upwork Proposal: Doc Coauthoring (aws-samples/sample-strands-agent-with-agentcore, 195 stars), Audit Onboarding Proposal (hoangnb24/repository-harness, 1.2k stars), No Negative Echo (LB623/no-negative-echo, 897 stars) and GEO Service Proposal Generator (zubair-trabzada/geo-seo-claude, 11k 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 110 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.