CLI Tool
Nico provides a zero-dependency Python 3 command-line tool that any AI agent can use to search Nico’s job index and manage your applications.Prerequisites
- Python 3 (no additional packages needed)
- A Nico API key
Setup
1. Get the CLI
The CLI is included in thenico-jobagent/nico-skills repository:
nico-skills/skills/nico-jobagent/scripts/nico_client.py.
2. Configure
Quick setup (recommended). Run the interactivesetup.sh from the repository root:
NICO_API_KEY (and, optionally, NICO_API_URL), detects installed AI agents (Claude Code, OpenClaw, Cursor, GitHub Copilot), symlinks the skill for each, and writes the environment variables to your shell profile. Open a new terminal (or source your profile) afterward so the variables take effect.
Manual setup. If you’d rather configure it yourself, set the environment variables:
Command groups
Commands come in two groups:
All commands print JSON to stdout. Run
python3 nico_client.py --help for the full list.
posting — job posting search
posting search
Search Nico’s job postings index. Pass employer and city names — the CLI resolves them for you.--country is required. Results are compact (no url or description — use posting get for those) and paged.
Output: JSON with
job_postings (compact — no url/description), count, and a pagination block (current_page, total_pages, total_count, per_page). Errors are returned as { "error": "…" } — e.g. unknown/ambiguous employer, unknown location, country_code is required, or job search not enabled for the account.
posting get
Fetch one posting’s full detail by theid from a posting search result. Adds the application url and the full description (the two fields the search list omits).
Output: JSON with the full posting, including
url and description. Returns { "error": "Job posting not found" } for an unknown id.
application — job application management
application search
Check whether a job is already in your applications (duplicate check by URL, or search by company name).
*At least one of
--url or --company-name is required.
Output: For a URL search, { "exists": true|false, "count": N, "job_applications": [...] }.
application list
List your job applications.
Output: JSON with
job_applications and a pagination block.
application get
Fetch one application’s full detail, including its notes and interviews.
Output: JSON with the full application, plus
notes and interviews arrays.
application create
Create a new proposed job application.
Output: JSON with the created application. Status is always
proposed.
Created jobs require your approval before they move forward. You’ll see them on your kanban board in the Draft column.
application add-note
Add a note to a job application.application parse-url
Parse a job posting URL to extract structured data you can pass toapplication create.
Output: JSON with parsed job details (title, company, location, work mode, salary).