Install the "job-market-intel" agent skill from https://github.com/tinyfish-io/tinyfish-cookbook/tree/main/skills/job-market-intel into .claude/skills/job-market-intel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "job-market-intel", 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.
Type 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.
skills CLI
$ npx skills add tinyfish-io/tinyfish-cookbook --skill job-market-intel -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "job-market-intel" agent skill from https://github.com/tinyfish-io/tinyfish-cookbook/tree/main/skills/job-market-intel into .agents/skills/job-market-intel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "job-market-intel", 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.
skills CLI
$ npx skills add tinyfish-io/tinyfish-cookbook --skill job-market-intel -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "job-market-intel" agent skill from https://github.com/tinyfish-io/tinyfish-cookbook/tree/main/skills/job-market-intel into .cursor/skills/job-market-intel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "job-market-intel", 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.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add tinyfish-io/tinyfish-cookbook --skill job-market-intel -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "job-market-intel" agent skill from https://github.com/tinyfish-io/tinyfish-cookbook/tree/main/skills/job-market-intel into .gemini/skills/job-market-intel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "job-market-intel", 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.
Installs 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).
skills CLI
$ npx skills add tinyfish-io/tinyfish-cookbook --skill job-market-intel -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "job-market-intel" agent skill from https://github.com/tinyfish-io/tinyfish-cookbook/tree/main/skills/job-market-intel into .github/skills/job-market-intel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "job-market-intel", 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.
skills CLI
$ npx skills add tinyfish-io/tinyfish-cookbook --skill job-market-intel -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "job-market-intel" agent skill from https://github.com/tinyfish-io/tinyfish-cookbook/tree/main/skills/job-market-intel into .opencode/skills/job-market-intel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "job-market-intel", 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.
Facts
Skill name
job-market-intel
GitHub stars
2.2k
Token cost
~3.2k tokens
SKILL.md length
680 words
Files
1
Skills in repo
28
Repo updated
First seen
Licence
MIT
At a glance
Get a live job market snapshot for any role and tech stack by deploying parallel TinyFish agents across LinkedIn, Indeed, and Glassdoor.
Works in 3 steps: Search LinkedIn Jobs → Search Indeed → Search Glassdoor
A developer wants real salary data
SKILL.md covers Pre-flight Check (REQUIRED), What This Skill Does, Core Command and Step-by-Step Workflow, plus 6 more sections
Calls npm, go and python; reaches linkedin.com and indeed.com; needs TINYFISH_API_KEY
What it does
Job Market Intel is an agent skill from tinyfish-io/tinyfish-cookbook. Get a live job market snapshot for any role and tech stack by deploying parallel TinyFish agents across LinkedIn, Indeed, and Glassdoor. Use when a developer wants real salary data, in-demand skills, top hiring companies, and remote ratios from actual job postings published this week — not survey averages or historical data. Triggers on phrases like "what is the market paying for", "salary range for", "is my salary competitive", "what should I ask for", "what skills do I need for", "who is hiring for", "how…
Its SKILL.md is about 3.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 Business, Finance & HR, covering Job search and resumes. It works with LinkedIn, Bash and PowerShell. The repository describes itself as: A collection of sample apps and recipes built with the TinyFish web agent. Open-source examples for you to learn & build! The licence is MIT.
When your agent uses it
A developer wants real salary data
In-demand skills
Top hiring companies
Remote ratios from actual job postings published this week — not survey averages
Example prompts
“what is the market paying for”
“salary range for”
“is my salary competitive”
“/job-market-intel”
Requirements
Python 3
Node.js
A credential in TINYFISH_API_KEY
Workflow steps
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 63cd841. It shows what the files ask for, not the result of running them.
Tool permissions
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.
Runs code
Shell commands in SKILL.md call:
npm
go
python
swift
From the folder's file list and the shell code blocks in SKILL.md.
Network
Hosts in commands or code, which the agent is likely to contact:
linkedin.com
indeed.com
glassdoor.com
Also links to:
agent.tinyfish.ai
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names these keys or tokens, usually read from environment variables:
TINYFISH_API_KEY
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Job Market Intel loads about 3.2k tokens when it runs. Until then it costs about 183 tokens; SKILL.md has 680 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~183
When it runs· the whole SKILL.md, loaded when a task matches
~3.2k
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.
Safety
Auto-check passed
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.
Download SKILL.mdSave it as .claude/skills/job-market-intel/SKILL.md (or your agent's skills folder).
name
job-market-intel
description
Get a live job market snapshot for any role and tech stack by deploying parallel TinyFish agents across LinkedIn, Indeed, and Glassdoor. Use when a developer wants real salary data, in-demand skills, top hiring companies, and remote ratios from actual job postings published this week — not survey averages or historical data. Triggers on phrases like "what is the market paying for", "salary range for", "is my salary competitive", "what should I ask for", "what skills do I need for", "who is hiring for", "how in-demand is", "before I negotiate", "job market for", "what does a [role] make", or any request to research compensation or demand for a specific role and tech stack before a job search or negotiation.
Job Market Intel — Live Salary & Demand Data Before You Negotiate
You have access to the TinyFish CLI (tinyfish), a tool that runs browser automations from the terminal using natural language goals. This skill deploys agents across LinkedIn, Indeed, and Glassdoor in parallel, navigates login walls and search forms, and synthesizes live job listings into a single market snapshot.
Pre-flight Check (REQUIRED)
Before making any TinyFish call, always run BOTH checks:
1. CLI installed?
PowerShell:
powershell
Get-Command tinyfish; tinyfish --version
bash/zsh:
bash
which tinyfish && tinyfish --version || echo "TINYFISH_CLI_NOT_INSTALLED"
If not installed, stop and tell the user:
Install the TinyFish CLI: npm install -g @tiny-fish/cli
Given a job title and tech stack (e.g. "Senior Backend Engineer, Go + Kubernetes"), this skill:
Searches LinkedIn Jobs for matching postings, extracting salary ranges, seniority levels, and company names
Searches Indeed for the same role, pulling compensation data and required skills from job descriptions
Searches Glassdoor for salary data, company ratings, and remote/hybrid/onsite ratios
It then synthesizes all three sources into a structured market snapshot: what the role actually pays, which skills show up most, who is hiring, and whether remote is realistic.
Core Command
bash
tinyfish agent run --url <url> "<goal>"
Flags
Flag
Purpose
--url <url>
Target website URL
--sync
Wait for full result before returning
--async
Submit and return immediately
--pretty
Human-readable formatted output
Step-by-Step Workflow
Inputs Required
Before running, collect from the user:
Job title — e.g. Senior Backend Engineer, ML Engineer, Staff iOS Developer
Tech stack — e.g. Go Kubernetes, Python PyTorch, Swift SwiftUI
Location (optional) — e.g. San Francisco, Remote, London
Derive URL-encoded search strings from these inputs for each platform.
Step 1 — Search LinkedIn Jobs
bash
tinyfish agent run --sync \
--url "https://www.linkedin.com/jobs/search/?keywords=<title+stack>&location=<location>&f_TPR=r604800" \
"Extract the top 10 job listings as JSON: [{\"title\": str, \"company\": str, \"location\": str, \"salary_range\": str, \"posted_date\": str, \"remote_type\": str, \"url\": str}]. If salary is not shown, set salary_range to null. The f_TPR=r604800 filter means postings from the last 7 days — note the recency in each result."
Example for Senior Backend Engineer, Go + Kubernetes:
bash
tinyfish agent run --sync \
--url "https://www.linkedin.com/jobs/search/?keywords=Senior+Backend+Engineer+Go+Kubernetes&location=Remote&f_TPR=r604800" \
"Extract the top 10 job listings as JSON: [{\"title\": str, \"company\": str, \"location\": str, \"salary_range\": str, \"posted_date\": str, \"remote_type\": str, \"url\": str}]. Set salary_range to null if not listed."
Step 2 — Search Indeed
bash
tinyfish agent run --sync \
--url "https://www.indeed.com/jobs?q=<title+stack>&l=<location>&fromage=7&sort=date" \
"Extract the top 10 job listings as JSON: [{\"title\": str, \"company\": str, \"location\": str, \"salary_range\": str, \"required_skills\": [str], \"posted_date\": str, \"remote_type\": str, \"url\": str}]. Pull required_skills from the snippet or description preview shown in results. Set salary_range to null if not listed."
Example:
bash
tinyfish agent run --sync \
--url "https://www.indeed.com/jobs?q=Senior+Backend+Engineer+Go+Kubernetes&l=Remote&fromage=7&sort=date" \
"Extract the top 10 job listings as JSON: [{\"title\": str, \"company\": str, \"location\": str, \"salary_range\": str, \"required_skills\": [str], \"posted_date\": str, \"remote_type\": str, \"url\": str}]. Pull required_skills from visible description snippets."
Step 3 — Search Glassdoor
bash
tinyfish agent run --sync \
--url "https://www.glassdoor.com/Job/jobs.htm?sc.keyword=<title+stack>&locT=N&locId=1&jobType=all&fromAge=7" \
"Extract the top 10 job listings as JSON: [{\"title\": str, \"company\": str, \"company_rating\": str, \"salary_range\": str, \"location\": str, \"remote_type\": str, \"posted_date\": str, \"url\": str}]. Include company_rating (out of 5) if shown. Set salary_range to null if not listed."
Example:
bash
tinyfish agent run --sync \
--url "https://www.glassdoor.com/Job/jobs.htm?sc.keyword=Senior+Backend+Engineer+Go+Kubernetes&locT=N&locId=1&jobType=all&fromAge=7" \
"Extract the top 10 job listings as JSON: [{\"title\": str, \"company\": str, \"company_rating\": str, \"salary_range\": str, \"location\": str, \"remote_type\": str, \"posted_date\": str, \"url\": str}]."
Parallel Execution
All three steps are independent — run them simultaneously. Do NOT wait for LinkedIn before starting Indeed or Glassdoor.
# Don't do this — three times slower, same results
tinyfish agent run --url "https://linkedin.com/..." "...also check Indeed and Glassdoor..."
Each platform is its own call. Always run in parallel.
Show full SKILL.md (276 more words)Show less
Step 4 — Synthesize Into a Market Snapshot
Once all three sources return results, synthesize findings into this structure:
## Job Market Snapshot: <Role> — <Stack>
As of: <current date> | Sources: LinkedIn · Indeed · Glassdoor
### Salary Range
- Low end: $<X>k (entry/mid, from listings with explicit salary data)
- Midpoint: $<X>k (most common range across listings)
- High end: $<X>k (senior/staff/principal listings)
- Sample size: <N> listings with salary data out of <total> scraped
### Top Hiring Companies
| Company | Platform | Rating | Remote? |
|---------|----------|--------|---------|
| ... | ... | ... | ... |
### Most Required Skills
(ranked by frequency across all listings)
1. <skill> — seen in X/30 listings
2. <skill> — seen in X/30 listings
...
### Remote Ratio
- Remote: XX%
- Hybrid: XX%
- Onsite only: XX%
### Demand Signal
- Total listings found this week: ~<N>
- Platform with most postings: <LinkedIn / Indeed / Glassdoor>
- Trend note: <any notable pattern — e.g. most postings are contract, or salary listed in <20% of roles>
### Raw Listings Sample
<3–5 representative listings with title, company, salary, and URL>
### Negotiation Takeaway
<2–3 sentences: what this data means in a negotiation context — floor, target, and stretch numbers based on the listings>
Only use data returned by TinyFish. Do not estimate or fill in salary figures not present in the results. If salary data is sparse (fewer than 5 listings show it), say so explicitly and note which platform surfaces it most.
Keyword Strategy
Search quality depends on how you phrase the query. Derive 2–3 variants from the user's input:
Role + Stack
Primary keywords
Variant keywords
Senior Backend, Go + K8s
Senior Backend Engineer Go Kubernetes
Backend Engineer Golang cloud-native, Platform Engineer Go
ML Engineer, PyTorch
Machine Learning Engineer PyTorch
ML Engineer deep learning Python, AI Engineer LLM PyTorch
If the first pass returns fewer than 10 total listings across all platforms, run a second parallel pass with a variant keyword set.
Handling Login Walls
LinkedIn and Glassdoor may prompt for login. TinyFish handles this automatically when authenticated sessions are stored. If an agent returns a login page instead of results:
Run tinyfish auth status to verify your session
Re-authenticate with tinyfish auth login and select the affected platform
Re-run the failed step individually before re-joining the parallel flow
Indeed typically does not require login for search result extraction.
Managing Runs
bash
# List recent runs
tinyfish agent run list
# Get a specific run by ID
tinyfish agent run get <run_id>
# Cancel a running automation
tinyfish agent run cancel <run_id>
Output Format
The CLI streams data: {...} SSE lines by default. The final result is the event where type == "COMPLETE" and status == "COMPLETED" — extracted data is in the resultJson field. Read output directly; no custom parsing script needed.
Job Market Intel 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.
Job Market Intel compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Job Market Intel this skilltinyfish-io/tinyfish-cookbook
Finds new job postings that match your profile through installed portal-search CLIs, dedupes against past runs and your application tracker, and rates each one's fit.
Default browser automation agent — click, fill forms, navigate, log in, and extract structured data from any website using a natural-language goal, or run the same task across multiple sites in…
Reverse-engineer what a company is building by scraping their job postings, careers page, LinkedIn Jobs, and engineering blog using TinyFish web agents.
Check every dependency in a package.json against live CVE databases and security advisories in real time — specifically targeting vulnerabilities disclosed in the last 48 hours, the window that…
Get a live job market snapshot for any role and tech stack by deploying parallel TinyFish agents across LinkedIn, Indeed, and Glassdoor. Job Market Intel is an agent skill from tinyfish-io/tinyfish-cookbook. Get a live job market snapshot for any role and tech stack by deploying parallel TinyFish agents across LinkedIn, Indeed, and Glassdoor.
When should I use Job Market Intel?
Job Market Intel fits situations like: A developer wants real salary data; in-demand skills; top hiring companies; remote ratios from actual job postings published this week — not survey averages.
How do I install Job Market Intel in Claude Code?
Run `npx skills add tinyfish-io/tinyfish-cookbook --skill job-market-intel -a claude-code`. Or copy the skill folder (skills/job-market-intel in tinyfish-io/tinyfish-cookbook) into .claude/skills/job-market-intel in your project. Claude Code loads it when a task matches its description.
How do I install Job Market Intel in Codex?
Run `npx skills add tinyfish-io/tinyfish-cookbook --skill job-market-intel -a codex`. Or copy the skill folder (skills/job-market-intel in tinyfish-io/tinyfish-cookbook) into .agents/skills/job-market-intel in your project. Codex loads it when a task matches its description.
Can I use Job Market Intel in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tinyfish-io/tinyfish-cookbook --skill job-market-intel -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/job-market-intel, .gemini/skills/job-market-intel, .github/skills/job-market-intel and .opencode/skills/job-market-intel in your project.
What does Job Market Intel need to run?
Going by SKILL.md and its folder, Job Market Intel needs the command-line tools its instructions call (npm, go, python and swift) and credentials named TINYFISH_API_KEY. Our summary lists: Python 3; Node.js; A credential in TINYFISH_API_KEY.
Does Job Market Intel access the network?
SKILL.md names 4 domains. In commands or code: linkedin.com, indeed.com and glassdoor.com; the agent is likely to contact these when it follows the instructions. As links in the text: agent.tinyfish.ai. This is read from the text; nothing was executed.
Is Job Market Intel safe to install?
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.
What licence does Job Market Intel use?
Job Market Intel is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Job Market Intel use?
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Job Market Intel?
Skills that share tags, products or a category with Job Market Intel: Job Hunt (rebecha1227-a11y/CareerForge, 323 stars), Job Search (thesun4sky/jobstack, 156 stars), Linkedin Jobs Search (browser-act/skills, 6.1k stars) and LinkedIn Job Search (MadsLorentzen/ai-job-search, 45k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Job Market Intel?
tinyfish-io (a GitHub organization) maintains it in tinyfish-io/tinyfish-cookbook, which has 2,230 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 8, 2026.
Source: tinyfish-io/tinyfish-cookbook on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.