jd-intel 0.8.1 → 0.8.3
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/LICENSE +1 -1
- package/README.md +16 -3
- package/package.json +2 -2
- package/registry/ashby.json +154 -47
- package/registry/greenhouse.json +252 -129
- package/registry/lever.json +78 -30
- package/registry/recruitee.json +97 -23
- package/registry/smartrecruiters.json +77 -28
- package/registry/teamtailor.json +90 -31
- package/registry/workday.json +242 -27
- package/src/errors.js +7 -2
- package/src/registry.js +6 -1
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -62,6 +62,8 @@ The toolkit fetches. Your AI thinks.
|
|
|
62
62
|
|
|
63
63
|
Works with MCP-aware AI clients: Claude Desktop, Claude Code, Cursor, Windsurf, VS Code. ChatGPT, Gemini, and other non-MCP clients don't support this yet. They use different tool-calling systems. (We wish they did. The protocol works the same way regardless of which AI you talk to.)
|
|
64
64
|
|
|
65
|
+
Everything runs locally on your machine. That also means desktop only: mobile apps can't run a local MCP server, so jd-intel isn't available on phones or tablets.
|
|
66
|
+
|
|
65
67
|
### Claude Desktop (one-file install, no terminal)
|
|
66
68
|
|
|
67
69
|
The simplest path. No Node.js, no terminal: Claude Desktop runs the server on its own bundled runtime.
|
|
@@ -252,7 +254,7 @@ All filters AND together. Deep dive on patterns and gotchas: [docs/filters.md](d
|
|
|
252
254
|
- Greenhouse, Ashby, Lever, SmartRecruiters, Teamtailor, Recruitee, Workday adapters
|
|
253
255
|
- Title, topic, location, and date filters
|
|
254
256
|
- Salary extraction from JD text
|
|
255
|
-
- Verified company registry (
|
|
257
|
+
- Verified company registry (900+ companies)
|
|
256
258
|
|
|
257
259
|
**Next**
|
|
258
260
|
- Personio adapter (German / EU mid-market)
|
|
@@ -268,11 +270,22 @@ All filters AND together. Deep dive on patterns and gotchas: [docs/filters.md](d
|
|
|
268
270
|
|
|
269
271
|
## Contributing
|
|
270
272
|
|
|
271
|
-
|
|
273
|
+
Full details in [CONTRIBUTING.md](CONTRIBUTING.md). The short version:
|
|
274
|
+
|
|
275
|
+
**Add companies to the registry:** don't hand-edit `registry/*.json`. Stage your candidates in `tmp/candidates.json`, then run the live gate, which calls every board for real and keeps only the ones returning live jobs:
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
node scripts/verify-registry.mjs --candidates tmp/candidates.json --limit 50
|
|
279
|
+
node scripts/append-registry.mjs
|
|
280
|
+
npm run sync:registry-pages
|
|
281
|
+
node --test test/*.test.js
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Entries that haven't passed the gate can't be merged. A board that looks right but returns nothing fails silently inside someone's search, which is worse than the company simply being absent. Workday needs a `config` of `{tenant, env, site}` read off the company's real careers URL, never constructed by pattern. [CONTRIBUTING.md](CONTRIBUTING.md#workday) covers how to find and confirm those.
|
|
272
285
|
|
|
273
286
|
**Add an ATS adapter:** new file in `src/adapters/`. One adapter, one file. Follow the pattern of the existing adapters.
|
|
274
287
|
|
|
275
|
-
**Request a company:** [open an issue](https://github.com/prPMDev/jd-intel/issues/new). Tell me who's missing.
|
|
288
|
+
**Request a company:** [open an issue](https://github.com/prPMDev/jd-intel/issues/new). Tell me who's missing. That's a useful contribution on its own.
|
|
276
289
|
|
|
277
290
|
---
|
|
278
291
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jd-intel",
|
|
3
|
-
"version": "0.8.
|
|
4
|
-
"description": "Fetch and normalize job descriptions across
|
|
3
|
+
"version": "0.8.3",
|
|
4
|
+
"description": "Fetch and normalize job descriptions across seven major ATS (Greenhouse, Lever, Ashby, Workday, and more), for your AI assistant. No copy-paste.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
7
7
|
"bin": {
|
package/registry/ashby.json
CHANGED
|
@@ -1,49 +1,156 @@
|
|
|
1
1
|
[
|
|
2
|
-
{"slug": "notion",
|
|
3
|
-
{"slug": "linear",
|
|
4
|
-
{"slug": "ramp",
|
|
5
|
-
{"slug": "resend",
|
|
6
|
-
{"slug": "clerk",
|
|
7
|
-
{"slug": "railway",
|
|
8
|
-
{"slug": "drata",
|
|
9
|
-
{"slug": "watershed",
|
|
10
|
-
{"slug": "persona",
|
|
11
|
-
{"slug": "stytch",
|
|
12
|
-
{"slug": "shiftkey",
|
|
13
|
-
{"slug": "gorgias",
|
|
14
|
-
{"slug": "zapier",
|
|
15
|
-
{"slug": "clickup",
|
|
16
|
-
{"slug": "higharc",
|
|
17
|
-
{"slug": "mural",
|
|
18
|
-
{"slug": "ironcladhq",
|
|
19
|
-
{"slug": "wrapbook",
|
|
20
|
-
{"slug": "Tabs",
|
|
21
|
-
{"slug": "vibe",
|
|
22
|
-
{"slug": "unicourt",
|
|
23
|
-
{"slug": "meridianlink",
|
|
24
|
-
{"slug": "Hippocratic AI",
|
|
25
|
-
{"slug": "scan-com",
|
|
26
|
-
{"slug": "hiive",
|
|
27
|
-
{"slug": "virtuous",
|
|
28
|
-
{"slug": "jasper ai",
|
|
29
|
-
{"slug": "openai",
|
|
30
|
-
{"slug": "harvey",
|
|
31
|
-
{"slug": "elevenlabs",
|
|
32
|
-
{"slug": "sierra",
|
|
33
|
-
{"slug": "cohere",
|
|
34
|
-
{"slug": "decagon",
|
|
35
|
-
{"slug": "vanta",
|
|
36
|
-
{"slug": "cursor",
|
|
37
|
-
{"slug": "replit",
|
|
38
|
-
{"slug": "etched",
|
|
39
|
-
{"slug": "perplexity",
|
|
40
|
-
{"slug": "baseten",
|
|
41
|
-
{"slug": "deepgram",
|
|
42
|
-
{"slug": "mercor",
|
|
43
|
-
{"slug": "writer",
|
|
44
|
-
{"slug": "supabase",
|
|
45
|
-
{"slug": "sentry",
|
|
46
|
-
{"slug": "cartesia",
|
|
47
|
-
{"slug": "workos",
|
|
48
|
-
{"slug": "posthog",
|
|
2
|
+
{"slug": "notion", "name": "Notion", "sector": "productivity"},
|
|
3
|
+
{"slug": "linear", "name": "Linear", "sector": "developer tools"},
|
|
4
|
+
{"slug": "ramp", "name": "Ramp", "sector": "fintech"},
|
|
5
|
+
{"slug": "resend", "name": "Resend", "sector": "developer tools"},
|
|
6
|
+
{"slug": "clerk", "name": "Clerk", "sector": "developer tools"},
|
|
7
|
+
{"slug": "railway", "name": "Railway", "sector": "developer tools"},
|
|
8
|
+
{"slug": "drata", "name": "Drata", "sector": "security"},
|
|
9
|
+
{"slug": "watershed", "name": "Watershed", "sector": "climate tech"},
|
|
10
|
+
{"slug": "persona", "name": "Persona", "sector": "identity"},
|
|
11
|
+
{"slug": "stytch", "name": "Stytch", "sector": "identity"},
|
|
12
|
+
{"slug": "shiftkey", "name": "ShiftKey", "sector": "healthcare staffing"},
|
|
13
|
+
{"slug": "gorgias", "name": "Gorgias", "sector": "customer support"},
|
|
14
|
+
{"slug": "zapier", "name": "Zapier", "sector": "integration platform"},
|
|
15
|
+
{"slug": "clickup", "name": "ClickUp", "sector": "productivity"},
|
|
16
|
+
{"slug": "higharc", "name": "Higharc", "sector": "architecture tech"},
|
|
17
|
+
{"slug": "mural", "name": "Mural", "sector": "collaboration"},
|
|
18
|
+
{"slug": "ironcladhq", "name": "Ironclad", "sector": "legal tech"},
|
|
19
|
+
{"slug": "wrapbook", "name": "Wrapbook", "sector": "entertainment payroll"},
|
|
20
|
+
{"slug": "Tabs", "name": "Tabs", "sector": "fintech"},
|
|
21
|
+
{"slug": "vibe", "name": "Vibe", "sector": "saas"},
|
|
22
|
+
{"slug": "unicourt", "name": "UniCourt", "sector": "legal tech"},
|
|
23
|
+
{"slug": "meridianlink", "name": "MeridianLink", "sector": "fintech"},
|
|
24
|
+
{"slug": "Hippocratic AI", "name": "Hippocratic AI", "sector": "healthcare ai"},
|
|
25
|
+
{"slug": "scan-com", "name": "Scan.com", "sector": "healthcare imaging"},
|
|
26
|
+
{"slug": "hiive", "name": "Hiive", "sector": "marketplaces"},
|
|
27
|
+
{"slug": "virtuous", "name": "Virtuous", "sector": "nonprofit crm"},
|
|
28
|
+
{"slug": "jasper ai", "name": "Jasper", "sector": "ai writing"},
|
|
29
|
+
{"slug": "openai", "name": "OpenAI", "sector": "ai research / llms"},
|
|
30
|
+
{"slug": "harvey", "name": "Harvey", "sector": "legal ai"},
|
|
31
|
+
{"slug": "elevenlabs", "name": "ElevenLabs", "sector": "ai voice / audio"},
|
|
32
|
+
{"slug": "sierra", "name": "Sierra", "sector": "conversational ai"},
|
|
33
|
+
{"slug": "cohere", "name": "Cohere", "sector": "ai / llms"},
|
|
34
|
+
{"slug": "decagon", "name": "Decagon", "sector": "ai support agents"},
|
|
35
|
+
{"slug": "vanta", "name": "Vanta", "sector": "security compliance"},
|
|
36
|
+
{"slug": "cursor", "name": "Cursor", "sector": "ai dev tools"},
|
|
37
|
+
{"slug": "replit", "name": "Replit", "sector": "ai coding platform"},
|
|
38
|
+
{"slug": "etched", "name": "Etched", "sector": "ai hardware / chips"},
|
|
39
|
+
{"slug": "perplexity", "name": "Perplexity", "sector": "ai search"},
|
|
40
|
+
{"slug": "baseten", "name": "Baseten", "sector": "ml serving"},
|
|
41
|
+
{"slug": "deepgram", "name": "Deepgram", "sector": "speech ai"},
|
|
42
|
+
{"slug": "mercor", "name": "Mercor", "sector": "ai data / talent"},
|
|
43
|
+
{"slug": "writer", "name": "Writer", "sector": "enterprise gen-ai"},
|
|
44
|
+
{"slug": "supabase", "name": "Supabase", "sector": "backend / postgres"},
|
|
45
|
+
{"slug": "sentry", "name": "Sentry", "sector": "observability"},
|
|
46
|
+
{"slug": "cartesia", "name": "Cartesia", "sector": "voice ai"},
|
|
47
|
+
{"slug": "workos", "name": "WorkOS", "sector": "auth / sso dev tools"},
|
|
48
|
+
{"slug": "posthog", "name": "PostHog", "sector": "product analytics"},
|
|
49
|
+
{"slug": "openevidence", "name": "OpenEvidence", "sector": "healthcare ai"},
|
|
50
|
+
{"slug": "antimetal", "name": "Antimetal", "sector": "developer tools"},
|
|
51
|
+
{"slug": "maintainx", "name": "MaintainX", "sector": "industrial saas"},
|
|
52
|
+
{"slug": "sparrow", "name": "Sparrow", "sector": "hr tech"},
|
|
53
|
+
{"slug": "atlan", "name": "Atlan", "sector": "data"},
|
|
54
|
+
{"slug": "hackerone", "name": "HackerOne", "sector": "security"},
|
|
55
|
+
{"slug": "Speakeasy", "name": "Speakeasy", "sector": "dev tools"},
|
|
56
|
+
{"slug": "enter-ai", "name": "Enter", "sector": "fintech"},
|
|
57
|
+
{"slug": "merge", "name": "Merge", "sector": "integration platform"},
|
|
58
|
+
{"slug": "plaid", "name": "Plaid", "sector": "fintech"},
|
|
59
|
+
{"slug": "modal", "name": "Modal", "sector": "ai data"},
|
|
60
|
+
{"slug": "planhat", "name": "Planhat", "sector": "saas"},
|
|
61
|
+
{"slug": "semgrep", "name": "Semgrep", "sector": "security"},
|
|
62
|
+
{"slug": "1password", "name": "1Password", "sector": "security"},
|
|
63
|
+
{"slug": "rula", "name": "Rula", "sector": "mental health"},
|
|
64
|
+
{"slug": "zed", "name": "Zed", "sector": "dev tools"},
|
|
65
|
+
{"slug": "oso", "name": "Oso", "sector": "auth / sso dev tools"},
|
|
66
|
+
{"slug": "mux", "name": "Mux", "sector": "video saas"},
|
|
67
|
+
{"slug": "pinecone", "name": "Pinecone", "sector": "database"},
|
|
68
|
+
{"slug": "langchain", "name": "LangChain", "sector": "ai dev tools"},
|
|
69
|
+
{"slug": "inngest", "name": "Inngest", "sector": "dev tools"},
|
|
70
|
+
{"slug": "cryptio", "name": "Cryptio", "sector": "fintech / crypto"},
|
|
71
|
+
{"slug": "pleo", "name": "Pleo", "sector": "fintech / corporate cards"},
|
|
72
|
+
{"slug": "nubank", "name": "Nubank", "sector": "fintech"},
|
|
73
|
+
{"slug": "climatiq", "name": "Climatiq", "sector": "climate tech"},
|
|
74
|
+
{"slug": "cruxclimate", "name": "Crux", "sector": "climate tech / fintech"},
|
|
75
|
+
{"slug": "twelve", "name": "Twelve", "sector": "climate tech"},
|
|
76
|
+
{"slug": "GravityClimate", "name": "Gravity Climate", "sector": "climate tech"},
|
|
77
|
+
{"slug": "rho", "name": "Rho", "sector": "fintech"},
|
|
78
|
+
{"slug": "whoop", "name": "WHOOP", "sector": "wearables"},
|
|
79
|
+
{"slug": "caremessage", "name": "CareMessage", "sector": "healthcare communications"},
|
|
80
|
+
{"slug": "blue-energy", "name": "Blue Energy", "sector": "energy"},
|
|
81
|
+
{"slug": "sevaro", "name": "Sevaro", "sector": "healthcare"},
|
|
82
|
+
{"slug": "heidihealth.com.au", "name": "Heidi", "sector": "healthcare ai"},
|
|
83
|
+
{"slug": "hellopatient", "name": "Hello Patient", "sector": "healthcare ai"},
|
|
84
|
+
{"slug": "kubera-health", "name": "Kubera Health", "sector": "healthcare"},
|
|
85
|
+
{"slug": "Healthtech-1", "name": "Healthtech-1", "sector": "healthcare"},
|
|
86
|
+
{"slug": "gamechanger", "name": "GameChanger", "sector": "sports tech"},
|
|
87
|
+
{"slug": "voodoo", "name": "Voodoo", "sector": "gaming"},
|
|
88
|
+
{"slug": "sensor-tower", "name": "Sensor Tower", "sector": "analytics"},
|
|
89
|
+
{"slug": "Thatgamecompany", "name": "thatgamecompany", "sector": "gaming"},
|
|
90
|
+
{"slug": "hyperhug", "name": "HyperHug", "sector": "gaming"},
|
|
91
|
+
{"slug": "mystenlabs", "name": "Mysten Labs", "sector": "web3 / blockchain"},
|
|
92
|
+
{"slug": "kraken.com", "name": "Kraken", "sector": "fintech / crypto"},
|
|
93
|
+
{"slug": "applied", "name": "Applied Intuition", "sector": "autonomous vehicles"},
|
|
94
|
+
{"slug": "homebase", "name": "Homebase", "sector": "hr software"},
|
|
95
|
+
{"slug": "alchemy", "name": "Alchemy", "sector": "web3 infrastructure"},
|
|
96
|
+
{"slug": "weave", "name": "Weave", "sector": "healthcare communications"},
|
|
97
|
+
{"slug": "buffer", "name": "Buffer", "sector": "social media software"},
|
|
98
|
+
{"slug": "MUBI", "name": "MUBI", "sector": "streaming / film"},
|
|
99
|
+
{"slug": "Serval", "name": "Serval", "sector": "ai it support"},
|
|
100
|
+
{"slug": "docker", "name": "Docker", "sector": "dev tools"},
|
|
101
|
+
{"slug": "goteleport", "name": "Teleport", "sector": "infrastructure access"},
|
|
102
|
+
{"slug": "airbyte", "name": "Airbyte", "sector": "data integration"},
|
|
103
|
+
{"slug": "prefect", "name": "Prefect", "sector": "data orchestration"},
|
|
104
|
+
{"slug": "astronomer", "name": "Astronomer", "sector": "data orchestration"},
|
|
105
|
+
{"slug": "confluent", "name": "Confluent", "sector": "streaming data"},
|
|
106
|
+
{"slug": "materialize", "name": "Materialize", "sector": "database"},
|
|
107
|
+
{"slug": "render", "name": "Render", "sector": "cloud platform"},
|
|
108
|
+
{"slug": "moderntreasury", "name": "Modern Treasury", "sector": "fintech / payments"},
|
|
109
|
+
{"slug": "sardine", "name": "Sardine", "sector": "fintech / fraud"},
|
|
110
|
+
{"slug": "socure", "name": "Socure", "sector": "fintech / identity"},
|
|
111
|
+
{"slug": "middesk", "name": "Middesk", "sector": "fintech / identity"},
|
|
112
|
+
{"slug": "airwallex", "name": "Airwallex", "sector": "fintech / payments"},
|
|
113
|
+
{"slug": "trustly", "name": "Trustly", "sector": "fintech / payments"},
|
|
114
|
+
{"slug": "column", "name": "Column", "sector": "fintech (banking)"},
|
|
115
|
+
{"slug": "unit", "name": "Unit", "sector": "fintech (banking)"},
|
|
116
|
+
{"slug": "clickhouse", "name": "ClickHouse", "sector": "database"},
|
|
117
|
+
{"slug": "temporal", "name": "Temporal", "sector": "dev tools"},
|
|
118
|
+
{"slug": "substrate-bio", "name": "Substrate Bio", "sector": "biotech"},
|
|
119
|
+
{"slug": "develop-health", "name": "Develop Health", "sector": "healthcare"},
|
|
120
|
+
{"slug": "lumin-digital", "name": "Lumin Digital", "sector": "fintech (banking)"},
|
|
121
|
+
{"slug": "siftstack", "name": "Sift", "sector": "observability"},
|
|
122
|
+
{"slug": "nango", "name": "Nango", "sector": "integration platform"},
|
|
123
|
+
{"slug": "bild-ai", "name": "Bild AI", "sector": "construction / property"},
|
|
124
|
+
{"slug": "chiefai", "name": "Chief AI", "sector": "ai automation"},
|
|
125
|
+
{"slug": "abridge", "name": "Abridge", "sector": "healthcare ai"},
|
|
126
|
+
{"slug": "tern", "name": "Tern", "sector": "travel tech"},
|
|
127
|
+
{"slug": "handshake", "name": "Handshake", "sector": "recruiting tech"},
|
|
128
|
+
{"slug": "stack-ai", "name": "StackAI", "sector": "ai automation"},
|
|
129
|
+
{"slug": "cognition", "name": "Cognition", "sector": "ai coding platform"},
|
|
130
|
+
{"slug": "fireworks", "name": "Fireworks AI", "sector": "ai inference"},
|
|
131
|
+
{"slug": "marqeta-inc", "name": "Marqeta", "sector": "fintech"},
|
|
132
|
+
{"slug": "snowflake", "name": "Snowflake", "sector": "database"},
|
|
133
|
+
{"slug": "materialsecurity", "name": "Material Security", "sector": "security"},
|
|
134
|
+
{"slug": "socket", "name": "Socket", "sector": "security"},
|
|
135
|
+
{"slug": "kong", "name": "Kong", "sector": "dev tools"},
|
|
136
|
+
{"slug": "benchling", "name": "Benchling", "sector": "life sciences"},
|
|
137
|
+
{"slug": "insitro", "name": "insitro", "sector": "biotech"},
|
|
138
|
+
{"slug": "headway", "name": "Headway", "sector": "mental health"},
|
|
139
|
+
{"slug": "commure", "name": "Commure", "sector": "healthcare ai"},
|
|
140
|
+
{"slug": "ambiencehealthcare", "name": "Ambience Healthcare", "sector": "healthcare ai"},
|
|
141
|
+
{"slug": "nabla", "name": "Nabla", "sector": "healthcare ai"},
|
|
142
|
+
{"slug": "talkiatry", "name": "Talkiatry", "sector": "mental health"},
|
|
143
|
+
{"slug": "dave", "name": "Dave", "sector": "fintech (banking)"},
|
|
144
|
+
{"slug": "imprint", "name": "Imprint", "sector": "fintech / cards"},
|
|
145
|
+
{"slug": "alan", "name": "Alan", "sector": "insurtech"},
|
|
146
|
+
{"slug": "formenergy", "name": "Form Energy", "sector": "energy tech"},
|
|
147
|
+
{"slug": "helion", "name": "Helion Energy", "sector": "energy tech"},
|
|
148
|
+
{"slug": "aurorasolar", "name": "Aurora Solar", "sector": "energy tech"},
|
|
149
|
+
{"slug": "span", "name": "Span", "sector": "energy tech"},
|
|
150
|
+
{"slug": "crusoe", "name": "Crusoe", "sector": "infrastructure"},
|
|
151
|
+
{"slug": "enpal", "name": "Enpal", "sector": "energy tech"},
|
|
152
|
+
{"slug": "strava", "name": "Strava", "sector": "fitness"},
|
|
153
|
+
{"slug": "legora", "name": "Legora", "sector": "legal ai"},
|
|
154
|
+
{"slug": "lovable", "name": "Lovable", "sector": "ai dev tools"},
|
|
155
|
+
{"slug": "bitvavo", "name": "Bitvavo", "sector": "fintech / crypto"}
|
|
49
156
|
]
|