Geo Fundamentals
wasp-lang/wasp
Generative Engine Optimization for AI search engines (ChatGPT, Claude, Perplexity).
Writes paste-ready Upwork profiles — title, overview, skills, portfolio descriptions, variations.
$ npx skills add pawbytes/skill-suites --skill paw-upwork-profile -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-profile --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-profile .claude/skills/paw-upwork-profile && 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-profile" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-profile into .claude/skills/paw-upwork-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-profile", 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-profileType 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-profile -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-profile --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-profile .agents/skills/paw-upwork-profile && 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-profile" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-profile into .agents/skills/paw-upwork-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-profile", 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-profile -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-profile --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-profile .cursor/skills/paw-upwork-profile && 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-profile" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-profile into .cursor/skills/paw-upwork-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-profile", 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-profile--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-profile -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pawbytes/skill-suites paw-upwork-profile --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-profile .gemini/skills/paw-upwork-profile && 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-profile" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-profile into .gemini/skills/paw-upwork-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-profile", 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-profileInstalls 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-profile -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-profile .github/skills/paw-upwork-profile && 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-profile" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-profile into .github/skills/paw-upwork-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-profile", 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-profile -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-profile --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-profile .opencode/skills/paw-upwork-profile && 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-profile" agent skill from https://github.com/pawbytes/skill-suites/tree/main/src/upwork/paw-upwork-profile into .opencode/skills/paw-upwork-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paw-upwork-profile", 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-profileWrites paste-ready Upwork profiles — title, overview, skills, portfolio descriptions, variations.
Paw Upwork Profile is an agent skill from pawbytes/skill-suites. Writes paste-ready Upwork profiles — title, overview, skills, portfolio descriptions, variations. Use when the user says 'build my Upwork profile', 'write my overview', 'fix my Upwork title', 'rewrite my profile', 'write my portfolio descriptions', or wants profile variations to test.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Marketing & SEO. 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 Profile loads about 2k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 1,077 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,077 words, ~1,982 tokens.
.claude/skills/paw-upwork-profile/SKILL.md (or your agent's skills folder).You write the Upwork profile a freelancer drops straight into their account and starts winning work with. You act from a chosen positioning — you do not invent the lane, you sell it. Everything you produce reads in the freelancer's authentic voice, targets the specific client in their brief, and is paste-ready: plain text blocks they copy without editing. The consumer is the freelancer staring at Upwork's profile editor and the client skimming search results for three seconds — the first two lines of the overview either hook that client or lose them. Generic filler that could describe any freelancer is a failure, however polished it reads.
Module: paw-upwork — part of the PawBytes Upwork Suite. The coach (paw-upwork-agent-coach) owns positioning; you turn the positioning brief into the profile.
Load config from {project-root}/.pawbytes/config/config.yaml and {project-root}/.pawbytes/config/config.user.yaml (root level and the upwork section) if present. Honor communication_language and address the freelancer by user_name when known. If config is missing, proceed with the default workspace path below and sensible defaults.
Then find the freelancer and read the workspace before writing anything. Every workspace path below resolves under the freelancer's directory, {project-root}/.pawbytes/upwork-suites/freelancers/{slug}/ — positioning-brief.md, freelancer-context.md, kit.md, research/, profile/, index.md, and daily/ all live there.
Find the freelancer. Scan {project-root}/.pawbytes/upwork-suites/freelancers/*/index.md and resolve {slug}. One → use it. Multiple → if default_freelancer is set, default to it but let them switch; otherwise ask which freelancer this session is about. None → there's no positioning to build from; point them to paw-upwork-agent-coach to onboard and position first, then stop.
Read the brief — it's the contract. Read the freelancer's positioning-brief.md. It carries the niche, the target client, the angle, the working headline, the voice notes, and the rate range. If it doesn't exist, don't guess a lane: tell the freelancer the profile is only as sharp as the positioning behind it, and route them to the coach for discovery (optionally research first). Don't write a profile against an empty brief.
Read the supporting context when present: freelancer-context.md (full voice/tone and history), research/ (real client-language keywords and search terms observed in the live market), and kit.md (proven phrasing and case-study blurbs the proposal specialist has banked). Pull from these so the profile speaks the client's language and reuses what's already landed.
Skip-to-build (orchestrated/headless): when the caller supplies the freelancer slug and the scope, or a single-freelancer workspace makes both unambiguous, skip the selection and scope questions, produce the first-draft artifacts straight to profile/, and offer the refine loop only if a human is in the session. The brief still gates: a missing positioning-brief.md routes to the coach rather than drafting blind. Default to the interactive flow whenever scope or freelancer is unclear.
A paste-ready profile aligned to the brief. Confirm scope with the freelancer — a full profile, or just the piece they came for (a new title, a rewritten overview) — then produce it. The pieces:
research/ where they fit naturally.profile/portfolio.md.Write the agreed profile to the freelancer's profile/ folder: profile/overview.md for the title + overview + skills + variations, and profile/portfolio.md for portfolio entries if produced (one per portfolio item, each with its four fields). Keep prior drafts rather than overwriting blindly when the freelancer is iterating across sessions.
Then close the loop so the rest of the suite stays in sync:
index.md status row (Profile → done, with the date).[profile] to daily/{YYYY-MM-DD}.md noting what was produced.kit.md.Point the freelancer at the next step in the arc — with a profile live, the natural next move is paw-upwork-proposal to start winning jobs, or back to the coach to track results.
© pawbytes, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in src/upwork/paw-upwork-profile of pawbytes/skill-suites.
Open the folder on GitHubat commit 547a6df
Paw Upwork Profile 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 Profile this skillpawbytes/skill-suites | 113 | — | ~2k | Automated safety check: Pass | MIT | |
| Geo Fundamentalswasp-lang/wasp | 19k | 9 repos | ~861 | Automated safety check: Pass | MIT | |
| Ab Testingcoreyhaines31/marketingskills | 54k | 3 repos | ~3.1k | Automated safety check: Pass | MIT | |
| Hreflang and International SEOAgriciDaniel/claude-seo | 19k | 5 repos | ~3.4k | Automated safety check: Pass | MIT | |
| Referralscoreyhaines31/marketingskills | 54k | 2 repos | ~2.6k | Automated safety check: Pass | MIT | |
| SEO GeoReScienceLab/opc-skills | 1.8k | 4 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 |
wasp-lang/wasp
Generative Engine Optimization for AI search engines (ChatGPT, Claude, Perplexity).
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program.
AgriciDaniel/claude-seo
Audits, validates and generates hreflang tags for multi-language and multi-region sites in HTML, HTTP headers or XML sitemaps, flagging common code and return-tag mistakes.
coreyhaines31/marketingskills
When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy.
ReScienceLab/opc-skills
SEO & GEO (Generative Engine Optimization) for websites. An agent skill from ReScienceLab/opc-skills.
LeoYeAI/openclaw-marketing-skills
When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform.
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
Writes paste-ready Upwork profiles — title, overview, skills, portfolio descriptions, variations. Paw Upwork Profile is an agent skill from pawbytes/skill-suites. Writes paste-ready Upwork profiles — title, overview, skills, portfolio descriptions, variations.
Paw Upwork Profile fits situations like: the user says build my Upwork profile; write my overview; fix my Upwork title; rewrite my profile.
Run `npx skills add pawbytes/skill-suites --skill paw-upwork-profile -a claude-code`. Or copy the skill folder (src/upwork/paw-upwork-profile in pawbytes/skill-suites) into .claude/skills/paw-upwork-profile in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pawbytes/skill-suites --skill paw-upwork-profile -a codex`. Or copy the skill folder (src/upwork/paw-upwork-profile in pawbytes/skill-suites) into .agents/skills/paw-upwork-profile 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-profile -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-profile, .gemini/skills/paw-upwork-profile, .github/skills/paw-upwork-profile and .opencode/skills/paw-upwork-profile in your project.
SKILL.md names no scripts, command-line tools or credentials: Paw Upwork Profile 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 Profile is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Paw Upwork Profile: Geo Fundamentals (wasp-lang/wasp, 19k stars), Ab Testing (coreyhaines31/marketingskills, 54k stars), Hreflang and International SEO (AgriciDaniel/claude-seo, 19k stars) and Referrals (coreyhaines31/marketingskills, 54k 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.