CLI Tool
Nico provides a zero-dependency Python 3 command-line tool that any AI agent can use to interact with your job applications.
Prerequisites
- Python 3 (no additional packages needed)
- A Nico API key
Setup
1. Get the CLI
The CLI is included in the Nico skills package:
git clone https://github.com/nico-jobagent/nico-skills.git
The CLI script is at nico-skills/skills/nico-jobagent/scripts/nico_client.py.
export NICO_API_KEY="your-api-key-here"
export NICO_API_URL="https://app.nico-jobagent.com" # optional, defaults to app.nico-jobagent.com
| Variable | Required | Default | Description |
|---|
NICO_API_KEY | Yes | — | Your API key for authentication |
NICO_API_URL | No | https://app.nico-jobagent.com | Nico API base URL |
Commands
parse-url
Parse a job posting URL to extract structured data.
python3 nico_client.py parse-url --url "https://company.com/jobs/123"
| Flag | Required | Description |
|---|
--url | Yes | Job posting URL to parse |
Output: JSON with parsed job details (title, company, location, work mode, salary).
search
Search for existing job applications.
# Search by URL (exact match)
python3 nico_client.py search --url "https://company.com/jobs/123"
# Search by company name (case-insensitive)
python3 nico_client.py search --company-name "Acme Inc"
# Search with status filter
python3 nico_client.py search --company-name "Acme Inc" --status active
| Flag | Required | Description |
|---|
--url | No* | Search by exact job posting URL |
--company-name | No* | Search by company name |
--status | No | Filter by status: draft, applied, interviewing, offer, finished, active |
*At least one of --url or --company-name is required.
Output: JSON with matching applications and count.
create
Create a new proposed job application.
python3 nico_client.py create \
--title "Software Engineer" \
--company "Acme Inc" \
--url "https://company.com/jobs/123" \
--location "Berlin, Germany" \
--work-mode remote \
--employment-type full-time
| Flag | Required | Description |
|---|
--title | Yes | Job title |
--company | Yes | Company name |
--url | No | Job posting URL |
--location | No | Job location |
--work-mode | No | One of: remote, remote-optional, hybrid, on-site |
--employment-type | No | One of: full-time, part-time, contract, internship, temporary |
Output: JSON with created application details. 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.
list
List your job applications.
# List all active applications
python3 nico_client.py list --status active
# List with custom page size
python3 nico_client.py list --status draft --per-page 50
| Flag | Required | Description |
|---|
--status | No | Filter by status group |
--per-page | No | Items per page (default: 25) |
Output: JSON with job applications list.
Authentication
The CLI sends your API key as a Bearer token in the Authorization header:
Authorization: Bearer your-api-key-here
Content-Type: application/json
User-Agent: NicoJobAgentClient/1.0
Typical AI agent workflow
An AI agent using the CLI typically follows this pattern:
- Search for a job URL to check if it already exists
- Parse the job URL to extract details
- Create a proposed application with the parsed data
- Repeat for additional job postings
# 1. Check if job already exists
python3 nico_client.py search --url "https://company.com/jobs/123"
# 2. If not found, parse the job posting
python3 nico_client.py parse-url --url "https://company.com/jobs/123"
# 3. Create proposed application with parsed details
python3 nico_client.py create \
--title "Software Engineer" \
--company "Acme Inc" \
--url "https://company.com/jobs/123" \
--location "Berlin, Germany" \
--work-mode remote \
--employment-type full-time