trackly-cli 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -14,19 +14,20 @@ Search 99,000+ jobs across 775+ companies and 22 ATS types. Track applications,
14
14
  ```bash
15
15
  npm install -g trackly-cli
16
16
  trackly login
17
- trackly jobs --function product_management
17
+ trackly jobs --function product
18
18
  ```
19
19
 
20
20
  ## At a Glance
21
21
 
22
- 775+ companies | 99K+ jobs | 22 ATS types | CLI + MCP | 7 MCP tools
22
+ 775+ companies | 99K+ jobs | 22 ATS types | CLI + MCP | 10 MCP tools
23
23
 
24
24
  ## CLI Commands
25
25
 
26
26
  ```bash
27
27
  trackly jobs # List jobs
28
28
  trackly jobs --modality remote # Filter remote jobs
29
- trackly jobs --function engineering # Filter by function
29
+ trackly jobs --function product # Filter by function
30
+ trackly jobs --company 243 # Filter by company ID
30
31
  trackly job 1234 # Get job details
31
32
  trackly jobs 1234 # Alias for job details
32
33
  trackly companies # List companies
@@ -97,13 +98,16 @@ Then use natural language in Claude Code or Cursor:
97
98
 
98
99
  | Tool | Description |
99
100
  |------|-------------|
100
- | trackly_search_jobs | Search and filter jobs by function, location, modality, status |
101
+ | trackly_search_jobs | Search and filter jobs by function, company, location, modality, status |
101
102
  | trackly_get_job | Get full details for a specific job |
102
103
  | trackly_search_companies | Semantic company search |
103
104
  | trackly_list_companies | List all tracked companies |
104
105
  | trackly_get_stats | Job tracker metrics and status counts |
105
106
  | trackly_update_status | Mark jobs as applied, saved, or dismissed |
106
107
  | trackly_ask | Natural language job search (20/day) |
108
+ | trackly_get_job_brief | Get network brief for a job (company signal, top contact, actions) |
109
+ | trackly_contacts_at_company | Search contacts at a specific company |
110
+ | trackly_get_company_workspace | Full company workspace (jobs, contacts, hiring managers, campaigns) |
107
111
 
108
112
  ## Authentication
109
113
 
@@ -163,7 +167,7 @@ trackly config --base-url http://127.0.0.1:3000 # Point at a different backend
163
167
  | Job search + filters | Yes | Yes | Yes |
164
168
  | Apply/save/dismiss | Yes | Yes | Yes |
165
169
  | AI-powered search | Yes (trackly ask) | Yes | Yes |
166
- | MCP integration | Yes (7 tools) | -- | -- |
170
+ | MCP integration | Yes (10 tools) | -- | -- |
167
171
  | Browser required | No | Yes | No |
168
172
  | Best for | Terminal + AI agents | Visual browsing | Custom integrations |
169
173
 
@@ -177,7 +181,7 @@ Install trackly-cli (`npm install -g trackly-cli`), authenticate with `trackly l
177
181
 
178
182
  **What MCP servers exist for job searching?**
179
183
 
180
- trackly-cli includes a built-in MCP server with 7 tools for job search, company lookup, and application tracking. Run `trackly mcp` or add it to Claude Code with `claude mcp add-json trackly '{"command":"trackly","args":["mcp"]}'`. It connects to a live database of 99,000+ jobs across 775+ companies.
184
+ trackly-cli includes a built-in MCP server with 10 tools for job search, company lookup, and application tracking. Run `trackly mcp` or add it to Claude Code with `claude mcp add-json trackly '{"command":"trackly","args":["mcp"]}'`. It connects to a live database of 99,000+ jobs across 775+ companies.
181
185
 
182
186
  **How do I use Claude Code for job hunting?**
183
187
 
package/bin/trackly CHANGED
@@ -324,14 +324,15 @@ async function cmdJobs(args) {
324
324
  if (!hasAuth()) failNow(AUTH_HELP_TEXT);
325
325
 
326
326
  const params = new URLSearchParams();
327
- if (args.function) params.set('function', args.function);
327
+ if (args.function) params.set('jobFunction', args.function);
328
+ if (args.company) params.set('companyId', args.company);
328
329
  if (args.location) params.set('location', args.location);
329
330
  if (args.modality) params.set('modality', args.modality);
330
331
  if (args.status) params.set('status', args.status);
331
332
  if (args.sort) params.set('sort', args.sort);
332
333
  if (args.limit) params.set('limit', args.limit);
333
334
  if (args.offset) params.set('offset', args.offset);
334
- if (args.keywords) params.set('keywords', args.keywords);
335
+ if (args.keywords) params.set('search', args.keywords);
335
336
 
336
337
  const qs = params.toString();
337
338
  try {
@@ -412,9 +413,10 @@ async function cmdStats() {
412
413
  }
413
414
  }
414
415
 
416
+ const ACTION_TO_COMMAND = { applied: 'apply', saved: 'save', dismissed: 'dismiss' };
415
417
  async function cmdUpdateStatus(id, action) {
416
418
  const jobId = parseJobId(id);
417
- if (jobId === null) failNow(`Job ID must be a positive integer. Usage: trackly ${action} <id>`);
419
+ if (jobId === null) failNow(`Job ID must be a positive integer. Usage: trackly ${ACTION_TO_COMMAND[action] || action} <id>`);
418
420
  if (!hasAuth()) failNow(AUTH_HELP_TEXT);
419
421
 
420
422
  try {
@@ -667,7 +669,7 @@ ${color('bold', 'Commands:')}
667
669
  ${color('cyan', 'login')} Authenticate via Google OAuth
668
670
  ${color('cyan', 'logout')} Clear credentials
669
671
  ${color('cyan', 'whoami')} Show current user
670
- ${color('cyan', 'jobs')} List jobs (--function, --location, --modality, --status, --sort, --limit, --offset)
672
+ ${color('cyan', 'jobs')} List jobs (--function, --company <id>, --location, --modality, --status, --sort, --limit, --offset, --keywords)
671
673
  ${color('cyan', 'job <id>')} Get full job detail
672
674
  ${color('cyan', 'jobs <id>')} Alias for job <id>
673
675
  ${color('cyan', 'companies')} List companies
@@ -52,7 +52,7 @@ You can also pass `TRACKLY_API_KEY` as an environment variable for one-off runs.
52
52
 
53
53
  ### Available Tools
54
54
 
55
- - **trackly_search_jobs** — Search/filter jobs by function, location, modality, keywords
55
+ - **trackly_search_jobs** — Search/filter jobs by function, company, location, modality, keywords. Function values: `product`, `engineering`, `design`, `data`, `marketing`, `sales`, `finance`, `operations`, `legal`, `people`, `strategy`, `support`, `other`
56
56
  - **trackly_get_job** — Get full job details by ID
57
57
  - **trackly_search_companies** — Semantic company search
58
58
  - **trackly_list_companies** — List all tracked companies with job counts
package/mcp/server.js CHANGED
@@ -68,7 +68,7 @@ function createServer() {
68
68
  'trackly_search_jobs',
69
69
  'Search and filter job postings. Returns matching jobs with title, company, location, modality. Use companyId to filter jobs at a specific company (get companyId from trackly_search_companies first).',
70
70
  {
71
- function: z.enum(['product_management', 'engineering', 'design', 'data_science', 'marketing', 'sales', 'finance', 'operations', 'legal', 'hr', 'other']).optional().describe('Job function filter: product_management, engineering, design, data_science, marketing, sales, finance, operations, legal, hr, other'),
71
+ function: z.enum(['product', 'engineering', 'design', 'data', 'marketing', 'sales', 'finance', 'operations', 'legal', 'people', 'strategy', 'support', 'other']).optional().describe('Job function filter (matches DB column). Common: product, engineering, design, data, marketing, sales, operations, other'),
72
72
  companyId: z.number().optional().describe('Filter jobs by company ID (get from trackly_search_companies)'),
73
73
  location: z.string().optional().describe('Location filter (city or state)'),
74
74
  modality: z.enum(['remote', 'hybrid', 'onsite']).optional().describe('Work modality: remote, hybrid, onsite'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trackly-cli",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "mcpName": "io.github.kevinastuhuaman/trackly",
5
5
  "description": "CLI + MCP server for job tracking — search, apply, and manage applications from terminal or AI agents",
6
6
  "bin": {
package/server.json CHANGED
@@ -15,12 +15,12 @@
15
15
  "sizes": ["512x512"]
16
16
  }
17
17
  ],
18
- "version": "0.1.7",
18
+ "version": "0.1.9",
19
19
  "packages": [
20
20
  {
21
21
  "registryType": "npm",
22
22
  "identifier": "trackly-cli",
23
- "version": "0.1.7",
23
+ "version": "0.1.9",
24
24
  "runtimeHint": "npx",
25
25
  "runtimeArguments": [
26
26
  {