Pinloop CLI: a job board your coding agent can drive from the terminal
Job board CLI for coding agents. Search and judge millions of worldwide postings from all white-collar sectors, refreshed hourly.
At a glance
- What is it?
- Pinloop is an MIT-licensed TypeScript CLI that searches and judges job postings from inside a coding agent. It is a thin client for a hosted service, and that split decides who should use it.
- Who is it for?
- Adopt Pinloop if you already work inside a coding agent and want posting search and LLM judging to happen there, accepting that search, judging and routines run on Pinloop's servers behind an account. Do not adopt it if you need a fully offline, self-hosted job search, or if a local Node 22 runtime is not available.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 18, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Pinloop CLI actually does
Pinloop is a command line tool for job search, and its intended operator is not you. The README describes it as "a job board built for your coding agent, run entirely from a terminal," and the recommended first step is to paste a sentence into Claude Code, Codex, Cursor or a similar agent so the agent installs the package and walks through setup. The CLI is the interface; the agent is the user.
The problem it targets is the loop between finding a posting and deciding whether to apply. Pinloop says it pulls in millions of postings a month, worldwide, across every white-collar field, refreshed hourly from company hiring systems and from job boards like LinkedIn. It can also hold a resume and other preference files and make LLM calls to judge each posting against what it knows about you. So the tool covers two stages: retrieval, and a relevance judgement written by a model that has seen your resume.
Who it is for is narrow and worth stating plainly. If you prefer a browser, a spreadsheet and manual filtering, Pinloop adds a hosted account and a quota system to a task you already do by hand. It fits engineers and other white-collar candidates who already keep an agent open all day and would rather type one instruction than maintain a tracking sheet.
The client-server split behind every Pinloop command
The repository is small: package.json, tsconfig.json, src/, assets/, a demo GIF and the README. The runtime dependencies are commander for argument parsing, picocolors for terminal colors, log-update and cli-spinners for the live status line. There is no database driver, no HTTP client in the dependency list and no bundled index of postings. That tells you where the work happens.
The README is explicit: "The commands talk to Pinloop's servers, so everything except the guide needs an account." The local binary is a presentation layer. Posting data, semantic search and the routine scheduler live on Pinloop's infrastructure, and the CLI renders results and collects your input. Login goes through a browser with no password, so the CLI never handles a stored credential in the way a self-hosted tool would.
That architecture produces one genuinely useful property and one real constraint. The useful part is that routines can "scan and save postings automatically on Pinloop's servers, either on a schedule or when new postings come in, even when your laptop is closed," as the Pro plan description puts it. Server-side scheduling is something a purely local scraper cannot offer. The constraint is that nothing works offline, and the free tier is metered: 5 pulls per day, 150 LLM judge calls per month and 50 semantic searches per month. The README notes you can judge "infinite postings w/ your own agent," which is the escape hatch from the judge quota but not from the account.
Installing Pinloop and running a first search
The README states the requirement directly: Node 22 or newer. The package.json engines field agrees, listing "node": ">=22". Install globally from npm, which places the pinloop binary in your PATH.
npm install -g pinloopRunning the bare command is the discovery step. According to the README, `pinloop` on its own prints instructions written for a coding agent rather than for a human, so the expected move is to hand that output to your agent.
pinloopFor a structured path, the README gives `pinloop welcome` as the onboarding flow the agent walks you through, and `pinloop guide` as the full usage instructions. Note the asymmetry: the README says everything except the guide needs an account, so `pinloop guide` is the one command that works before you log in.
pinloop welcome
pinloop loginLogin goes through a browser with no password. After that, the commands talk to Pinloop's servers. The README describes the free plan as letting you "search Pinloop with words and filters to count how many postings match you before pulling," which is the sensible first move: count matches, then spend a pull. Pulls are capped at 5 per day on free, so counting before pulling is not a stylistic preference, it is the difference between a useful session and a wasted one. Pro raises pulls to 1500 per month and is reached with `pinloop upgrade`.
Where Pinloop CLI is the wrong tool
The account requirement is the first hard boundary. If you want a job search that runs on your own machine with no server round trip, Pinloop is not that, and the README does not pretend otherwise. The MIT license covers the CLI only, which is worth reading carefully: the license text in the repository governs the TypeScript client, while the posting index, the semantic search and the judge calls are hosted services under separate terms linked from the README.
Quotas are the second boundary, and they shape behavior more than the feature list suggests. Five pulls per day on free means a single careless bulk pull can consume your allowance before you have narrowed anything. The 150 monthly judge calls are the scarcer resource. The README offers a workaround, judging with your own agent, but that shifts the cost to your own model budget and your own context window, and it is not the same pipeline as Pinloop's hosted judge.
There is also a fit problem. The tool assumes you are comfortable driving an agent and reading terminal output. If your workflow is a browser tab and a PDF resume, the CLI adds an installation step, a Node version requirement and an account before it returns anything. And the README does not document rollback, data export or what happens to saved postings if you stop paying, so anyone with retention requirements should treat those as open questions rather than assume an answer.
Pinloop CLI versus a local scraper or a job board API
The obvious alternative is a local script that hits a job board API and writes results to a file. The difference is not the searching, it is the judging and the scheduling. A local script gives you full control, no account, no quota, and no dependency on someone else's uptime. It also gives you the maintenance: board APIs change, pagination breaks, and the relevance filtering is yours to write. Pinloop's value proposition is that the index is refreshed hourly from company hiring systems and from job boards like LinkedIn, and that the LLM judge already knows your resume.
A second alternative is a general web search or a board's own alert emails. Those are free and require nothing installed, but they return links, not judgements, and they do not run on a schedule tied to a resume you uploaded once. Pinloop's Pro routines scan and save postings on Pinloop's servers even when your laptop is closed, which is a capability a cron job on your own machine cannot match.
The honest comparison comes down to where you want the state to live. Local tools keep your resume and your search history on your disk and make you responsible for freshness. Pinloop keeps them on its servers, keeps the index fresh, and charges for volume. Neither is strictly better; they fail in different directions.
Maintenance, licensing and what the CLI costs you over time
The repository is not archived, and the last push was on 2026-09-16, one day before this writing. The published version in package.json is 0.6.1, which is pre-1.0 and worth noting for anyone pinning dependencies in a shared environment. There are no releases retrieved for this repository, so version history is best read from the npm package rather than from GitHub releases.
Upgrade cost is low in the technical sense. The dependency list is four runtime packages, all small and widely used, and the build is a single `tsc` invocation. The binary is a thin client, so a CLI update rarely changes your workflow. What changes with time is the service side: quotas, plan limits and the pricing flow are controlled by Pinloop, not by the code you installed. A `npm install -g pinloop` today does not lock in the free tier's 5 pulls per day.
On licensing, the README states MIT and adds that "the license covers the CLI only." That sentence is the one to carry into any evaluation. It means the permissive terms you see in the LICENSE file apply to the client code, while the hosted index and the judge pipeline are governed by the terms and privacy pages linked from the README. This is a factual boundary in the project's own documentation, not legal advice; if the distinction matters to your organization, read those linked pages rather than the LICENSE file alone.
Editorial conclusion
Adopt Pinloop if you already work inside a coding agent and want posting search and LLM judging to happen there, accepting that search, judging and routines run on Pinloop's servers behind an account. Do not adopt it if you need a fully offline, self-hosted job search, or if a local Node 22 runtime is not available. Before committing, verify the current free and Pro quotas on the pricing flow, and check whether your own agent can substitute for the metered judge calls.
Frequently asked questions
How do I install Pinloop CLI?
Install it globally from npm with npm install -g pinloop. The README states it needs Node 22 or newer, and the package.json engines field requires node >=22. You can also paste the README's setup sentence into a coding agent and let the agent install it and run the welcome flow.
Does Pinloop CLI need an account to work?
Yes for everything except the guide. The README says the commands talk to Pinloop's servers, so everything except the guide needs an account, and login goes through a browser with no password. Run pinloop login to create one.
What can I do on the Pinloop free plan?
The README lists 5 pulls per day, 150 LLM judge calls per month, 50 semantic searches per month, and word-and-filter searches to count matching postings before pulling. It also notes you can judge unlimited postings with your own agent instead of the metered LLM calls.
Does the MIT license cover the whole Pinloop service?
No. The README states the license covers the CLI only. The hosted posting index, semantic search and judge calls are separate services, with privacy and terms pages linked from the README.
Community notes