TinyFish Cookbook is a collection of example applications, recipes, and automations built with TinyFish, a web service that lets AI agents search the live web, read pages, and perform browser-based tasks. Developers use it to learn how to build web agents and connect them with workflows such as research, monitoring, and data collection. The catalogue entries provide agent skills and integrations for working with these examples and TinyFish endpoints.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add tinyfish-io/tinyfish-cookbook --skill interview-prepgit clone --depth 1 https://github.com/tinyfish-io/tinyfish-cookbookWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/tinyfish-io/tinyfish-cookbook/interview-prep)<a href="https://agentmods.dev/skills/tinyfish-io/tinyfish-cookbook/interview-prep"><img src="https://agentmods.dev/badge/skills/tinyfish-io/tinyfish-cookbook/interview-prep/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/tinyfish-io/tinyfish-cookbook/interview-prep"><img src="https://agentmods.dev/badge/skills/tinyfish-io/tinyfish-cookbook/interview-prep.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00141 | $0.02221 |
| Opus 5.5 | $0.00056 | $0.00888 |
| Sonnet 5.5 | $0.00028 | $0.00444 |
| Haiku 4.5 | $0.00014 | $0.00222 |
Grade A, and why
interview-prep scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 229 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Interview Prep Guide Generator
Given a company name (and optionally a role), scrape real interview experiences from Glassdoor, Blind, and Reddit simultaneously — extract repeated questions, identify patterns, and return a structured prep guide based on what actually happens in the room.
Pre-flight check
tinyfish --version
tinyfish auth status
If not installed: npm install -g tinyfish
If not authenticated: tinyfish auth login
Step 1 — Clarify inputs
You need:
- Company name — e.g. "Google", "Stripe", "Citadel"
- Role (optional but improves results) — e.g. "software engineer", "data scientist", "backend engineer"
If the user hasn't provided a role, default to "software engineer" and mention it in the output.
Step 2 — Parallel scraping
Run all three agents simultaneously. Each lands directly on a results page — no unnecessary navigation.
Before firing agents, do one quick web search yourself (no TinyFish needed) to find the direct Glassdoor interviews URL for the company:
Search: site:glassdoor.com "{COMPANY_NAME}" interview questions
Take the first result URL that looks like:
https://www.glassdoor.com/Interview/{Slug}-Interview-Questions-E{ID}.htm
Use that exact URL in Agent 1 below. If you cannot find it, fall back to:
https://www.glassdoor.com/Interview/{COMPANY_NAME_ENCODED}-Interview-Questions.htm
# Agent 1 — Glassdoor interview reviews (land directly on interviews page)
tinyfish agent run \
--url "{GLASSDOOR_INTERVIEWS_URL}?filter.jobTitleExact={ROLE_ENCODED}" \
"You are on a Glassdoor interview reviews page for {COMPANY_NAME}, filtered to {ROLE}.
Read the first 5 visible interview cards only. Do NOT scroll. Do NOT click any card.
From the preview text of each card extract:
- Role title
- Interview difficulty (Easy / Medium / Hard / Very Hard)
- Outcome (Got offer / No offer / Declined)
- Interview questions verbatim
- Topics mentioned (dynamic programming, system design, behavioural, etc.)
- Any tips or regrets
STRICT RULES:
- 5 cards maximum — stop immediately after the 5th
- Do NOT click any card, do NOT paginate, do NOT scroll
- If the page asks you to sign in, return an empty array immediately
Return JSON array: [{role, difficulty, outcome, questions: [...], topics: [...], tips: [...]}]" \
--sync --browser-profile stealth > /tmp/ip_glassdoor.json &
# Agent 2 — Blind interview discussions
tinyfish agent run \
--url "https://www.teamblind.com/search/{COMPANY_NAME_ENCODED}%20interview" \
"You are on Blind search results for '{COMPANY_NAME} interview'.
Read the post titles and preview text visible on this page.
Extract from the visible content:
- Any specific interview questions mentioned in titles or previews
- Topics that appear frequently (e.g. system design, LC hard, SQL, coding rounds)
- Difficulty signals (e.g. 'brutal', 'straightforward', 'multiple rounds')
- Role types mentioned
STRICT RULES:
- Do NOT click any post to open it
- Do NOT scroll more than twice
- Do NOT navigate away from this page
- Read only what is visible in post titles and preview snippets
Return JSON: {questions: [...], topics: [...], difficulty_signals: [...], roles_mentioned: [...], tips: []}" \
--sync --browser-profile stealth > /tmp/ip_blind.json &
# Agent 3 — Reddit interview experiences
tinyfish agent run \
--url "https://www.reddit.com/search/?q={COMPANY_NAME_ENCODED}+{ROLE_ENCODED}+interview+experience&sort=relevance&t=month&type=link" \
"You are on Reddit search results for '{COMPANY_NAME} {ROLE} interview experience'.
Read the post titles and snippet text visible in the search results — do not click anything.
Extract:
- Interview questions mentioned directly in titles or snippets
- Topics that appear across multiple posts (system design, behavioural, OOP, etc.)
- Difficulty language used
- Rounds mentioned (phone screen, onsite, take-home, etc.)
STRICT RULES:
- Click a post ONLY if its title explicitly says 'interview questions' or 'prep guide' — max 2 clicks total
- On any clicked post: read only the top-level post text, skip all comments, do NOT scroll
- Do NOT paginate
- Stop after reading 10 result snippets
Return JSON: {questions: [...], topics: [...], rounds: [...], difficulty_signals: [...], tips: []}" \
--sync --browser-profile stealth > /tmp/ip_reddit.json &
# Wait for all three to complete
wait
echo "=== GLASSDOOR ===" && cat /tmp/ip_glassdoor.json
echo "=== BLIND ===" && cat /tmp/ip_blind.json
echo "=== REDDIT ===" && cat /tmp/ip_reddit.json
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 229 lines · 141 tokens per session scan A 6e5f016f92b7
interview-prep is a skill published in the GitHub repository tinyfish-io/tinyfish-cookbook (2,254 stars, last pushed 9d ago), licensed MIT. It adds 141 tokens to every session and 2,221 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
browser
Browser automation via the agent-browser CLI. Use when the user needs to drive websites or Electron apps — navigating, forms, clicks, screenshots, data extraction, testing web apps, UI checks, the dashboard Electron shell, or the user's own logged-in Chrome via the browser relay or Panerelay (SSO/2FA). Triggers: "open…
typescript-strict
TypeScript strict mode patterns with interfaces, type guards, generics, and utility types. Use when defining types, creating type-safe functions, handling nullable values, or implementing generic components.
06-test
Write and iterate developer-side tests until they pass, or validate a user journey end to end in the browser during implementation. Use when the user wants to add coverage, find what's untested, or walk a flow while building it. Do NOT use for independent acceptance QA or reviewer evidence, auditing test health, or…
run-dashboard-e2e-local-changes
Run Playwright E2E (tests/e2e/) against the docker/ all-in-one harness so it reflects LOCAL code changes, not a stale cached image.
web-game-development
Implement and optimize browser games using Phaser, Three.js, React Three Fiber, Babylon.js, or PlayCanvas with responsive input, asset loading, rendering, and browser playtests. Use for JavaScript or TypeScript game projects.
browser-qa
Validate web applications through the embedded browser with responsive, interaction, console, and screenshot checks.