5.0 KiB
Executable File
name, version, description, context, enabled, allowed-tools
| name | version | description | context | enabled | allowed-tools |
|---|---|---|---|---|---|
| jobsdb-search | 1.0.0 | Use this skill to search the local SQLite snapshot of job postings at documents/postings/jobs.db (~87k postings across ~10k companies, scraped from Greenhouse/Ashby/Lever/Workday boards, enriched with company sector, funding stage, crypto-native flag, and a priority tier). Trigger phrases: search the postings database, jobs.db, local job snapshot, which target companies are hiring, crypto/fintech roles in New York or San Francisco. | fork | true | Bash(bun run .agents/skills/jobsdb-search/cli/src/cli.ts *) |
jobsdb Search Skill
Searches a local SQLite snapshot of job postings with bun:sqlite. No network,
no credentials, zero dependencies. The database is user-supplied at
documents/postings/jobs.db (override with JOBSDB_PATH); it is git-ignored
personal data, not part of the framework.
⚠️ This is a static snapshot, not a live board
Rows carry the scrape_timestamp they were captured at (currently May 16 to
Jun 1, 2026). Two consequences for /scrape:
- Recency is relative to the snapshot.
--jobage Nmeans "posted within N days of the row's own scrape date". Do not apply the calendar 14-day cutoff to this portal'sdatefield; it would drop everything. Treatmeta.snapshotas "today" for this source and say so in the results table. - Postings may have closed. Every hit must be confirmed live by fetching its
urlbefore it is presented or ranked. A 404 or "job closed" page means skip.
Refresh the snapshot by replacing the .db file; the CLI needs no changes.
Commands
Search
bun run .agents/skills/jobsdb-search/cli/src/cli.ts search [flags]
-q, --query <text>: FTS5 full-text match on title, company, and location. Tokens are AND-ed; quoting is handled for you.--company <text>: company name contains text.--location <text>: location text contains text ("New York","San Francisco",Remote).--country <code>: exactlocation_country(e.g.US).--remote <list>: comma list ofremote(global),remote-regional,hybrid,onsite.--seniority <list>: comma list ofsenior,staff_principal,manager,director,head_of,vp,c_level_founder,mid_unclassified,junior_associate,intern,unclassified.--sector <list>: companytarget_sector:crypto,fintech-nc,ai-ml,devtools,enterprise-saas,hardware,other. Most companies are untagged; omit this flag for a wide net.--crypto-native: only companies flagged crypto-native (~4.4k postings).--tier <n>: companypriority_tierat or below n (1 = highest-priority target list).--jobage <days>: posted within N days of the snapshot (see warning above).--page <n>,-n, --limit <n>(default 20),--format json|table.
Unknown flags exit 1 with {"error":...,"code":"BAD_ARG"} on stderr.
Detail
bun run .agents/skills/jobsdb-search/cli/src/cli.ts detail <posting_id|url> [--format json|plain]
The snapshot stores no description text. detail returns the structured row
(title, company, location, remote class, seniority, salary range when stated,
sector, tier, ATS, resolved date) and the URL; fetch the URL for requirements.
Usage examples
# Senior/staff backend roles at crypto-native companies in NYC, snapshot-recent
bun run .agents/skills/jobsdb-search/cli/src/cli.ts search -q "backend engineer" --crypto-native --location "New York" --seniority senior,staff_principal --jobage 30 --format table
# Everything at tier-1 target companies, remote or hybrid
bun run .agents/skills/jobsdb-search/cli/src/cli.ts search --tier 1 --remote remote,hybrid -n 50 --format table
# Founding engineer roles anywhere
bun run .agents/skills/jobsdb-search/cli/src/cli.ts search -q "founding engineer" --format table
# Go / protocol roles
bun run .agents/skills/jobsdb-search/cli/src/cli.ts search -q "protocol engineer" --sector crypto -n 20
Output
Search JSON is { "meta": { "count", "page", "total", "snapshot", "db" }, "results": [...] }.
Each result carries id, title, company, location, date (ISO, resolved
from ISO or "Posted N Days Ago" text; date_approximate: true when the source
said "30+ days"), url, description (always null, see Detail), plus remote,
seniority, salary, sector, crypto_native, priority_tier, ats, snapshot.
Results are ordered by company priority tier, then newest scrape first.
Notes
- Workday rows often have no posted date at all; they come back with
date: nulland are dropped by--jobage. Search without--jobageto include them. location_textis free text from each ATS ("2 Locations", "US-TX-HOUSTON-011");--locationis a substring match, so try the city name without the state.- The
companiestable also holds funding, headcount growth, GitHub activity, and investor data; this CLI exposes only sector, crypto flag, and tier. Query the.dbdirectly withsqlite3for anything else.