1. Unit Economics Audit: TheirStack Job + Company Credit Multipliers vs Single-Call ATS Feeds
When modeling monthly job pipeline costs, engineering teams must distinguish between per-1,000-API-call quotas, per-1,000-matched-job-record deductions, and hidden secondary enrichment multipliers:
- $200/mo Entry Cliff & Monthly Credit Expiration: TheirStack's self-serve API plan begins around $200/month for ~30,000 job credits ($6.67 per 1,000 matched job records), and unused monthly credits reset to zero at the end of each billing cycle. Teams polling only 10,000–25,000 targeted roles per month pay an effective $8.00–$20.00 per 1,000 matched jobs.
- Dual Credit Pools (Job Credits + Separate Company Enrichment Credits): On TheirStack, POST /v1/jobs/search deducts 1 Job Credit per returned job record (e.g., 10 paginated calls × 100 jobs = 1,000 Job Credits = $6.67), while querying POST /v1/companies/search for company technographics or metadata consumes a separate Company Credit allowance. On JobPostings API, company.domain, company.slug, company.industry, and extracted skills[] are already embedded inside every returned job record at 0 extra credits.
- Deterministic Per-Record Billing & $0.00 Empty-Search Guarantee: JobPostings API meters strictly on delivered value: 1 Credit = 1 returned job record ($0.76 per 1,000 matched jobs on $19/mo Starter; $0.199 per 1,000 matched jobs on $199/mo Scale), with up to 100 full records per HTTP GET (60–600 RPM / 5–25 QPS) and $0.00 charged per 1,000 empty API calls.
| Monthly Job Volume | TheirStack Tier & Overage | Cost per 1,000 Matched Jobs | JobPostings API |
|---|---|---|---|
| 1,500 – 3,500 matched jobs (Dev & Staging) | Capped free sandbox (~200 job credits total; requires $200/mo upgrade) | Free cap -> $6.67 per 1,000 matched jobs ($200/mo cliff) | $0 Free Sandbox: 1,500 instant + 2,000 streak job records ($0.00 per 1,000 jobs · 60 RPM / 5 QPS) |
| 25,000 matched jobs / mo (250 API calls @ limit=100) | $200/mo API plan (~30,000 job credits/mo, expire monthly) | $6.67 – $8.00 per 1,000 matched job records | $19/mo Starter (25,000 job records · $0.76 per 1,000 matched jobs) or $25 non-expiring PAYG ($0.83 per 1,000 jobs) |
| 100,000 matched jobs / mo (1,000 API calls @ limit=100) | $500 – $600+/mo higher volume tier or overage packs (monthly reset) | $5.00 – $6.00 per 1,000 matched job records (+ company credits) | $49/mo Growth (100,000 job records · $0.49 per 1,000 matched jobs · 180 RPM / 10 QPS + /v1/feeds/*) |
| 300,000 matched jobs / mo (3,000 API calls @ limit=100) | $1,200 – $1,500+/mo high-volume tier or annual commitment | $4.00 – $5.00 per 1,000 matched job records | $99/mo Pro (300,000 job records · $0.33 per 1,000 matched jobs · 300 RPM / 15 QPS + 10 Webhooks) |
| 1,000,000 matched jobs / mo (10,000 API calls @ limit=100) | Custom enterprise annual contract ($3,500+/mo typical quote) | $3.50+ per 1,000 matched job records (annual lock-in) | $199/mo Scale (1,000,000 job records · $0.199 per 1,000 matched jobs · 600 RPM / 25 QPS) |
| Burst / On-Demand Backfills (Irregular Cadence) | No non-expiring PAYG — unused monthly job credits forfeit at reset | Up to 100% effective waste during low-volume months | $25 (30K jobs) to $300 (800K jobs) PAYG ($0.375–$0.83 per 1,000 matched jobs · never expire) |
| 10,000 Empty Domain Checks (0 Matching Jobs) | Subject to API request rate & search quota limits | Quota-metered per 1,000 API calls | $0.00 per 1,000 empty API calls (0 Credits deducted on 0-result searches & HTTP 404) |
2. 15-Minute Pipeline Migration: TheirStack JSON Field Map & Drop-In Swap Code
Switching an Airflow DAG, Clay HTTP column, n8n workflow, or FastAPI worker from TheirStack takes less than 15 minutes. Map the JSON keys below and swap your POST request for a single GET /v1/jobs/search call:
| TheirStack JSON Field | JobPostings API Field | Type & Real Captured Example |
|---|---|---|
| POST https://api.theirstack.com/v1/jobs/search | GET https://api.jobpostingsapi.com/v1/jobs/search | Idempotent HTTPS GET · up to 100 full jobs/call (<300ms p50) |
| Authorization: Bearer <token> | x-api-key: jp_live_... (or Bearer) | Instant self-serve key minting (no credit card) |
| data[].id (integer) | data[].id | string · "j_jj4nxynrruigoi4h" |
| data[].job_title | data[].title | string · "Principal Software Engineer – Platform Engineering" |
| data[].company_object.domain / company_domain | data[].company.domain | string · "alpha-sense.com" |
| data[].final_url / url | data[].apply_url | string · "https://job-boards.greenhouse.io/alphasense/jobs/8687641002" |
| data[].technology_slugs | data[].skills | string[] · ["microservices", "aws", "kubernetes", "python", "rust"] |
| data[].min_annual_salary_usd / max_annual_salary_usd | data[].salary.annual_usd_min / annual_usd_max | number · 246000 / 339000 (normalized annual USD) |
| data[].remote / hybrid | data[].work_arrangement | "remote" | "hybrid" | "onsite" |
| data[].date_posted | data[].posted_at | ISO-8601 · "2026-08-12T13:47:40.000Z" |
Drop-In Replacement for TheirStack POST /v1/jobs/search (Python, Node.js & cURL)
Query verified ATS roles by keyword, tech stack skills, recency, and country — returning full descriptions, company.domain, skills[], and normalized USD salaries in one call:
curl -sG "https://api.jobpostingsapi.com/v1/jobs/search" \
-H "x-api-key: jp_live_your_api_key" \
--data-urlencode "q=platform engineer" \
--data-urlencode "skills=kubernetes,python" \
--data-urlencode "country=US" \
--data-urlencode "limit=25"Verified Production 200 OK JSON Response (First Record from Live Gateway Capture)
{
"code": 0,
"provider": "https://jobpostingsapi.com",
"status": "ok",
"meta": {
"request_id": "c9071072-45ac-4ec2-b9e6-0e3023038899",
"count": 5,
"total": 10000,
"total_relation": "gte",
"has_more": true,
"took_ms": 313,
"redistribution_filter": "redistributable_only"
},
"data": [
{
"id": "j_jj4nxynrruigoi4h",
"data_tier": "premium",
"status": "active",
"title": "Principal Software Engineer – Platform Engineering",
"company": {
"id": "c_qfae67uoyqmis",
"name": "AlphaSense",
"slug": "alpha-sense",
"domain": "alpha-sense.com",
"is_staffing_agency": false,
"industry": "software_it"
},
"department": "Engineering",
"location": {
"raw": "Remote - United States",
"country": "US",
"remote_scope": ["US"]
},
"work_arrangement": "remote",
"employment_type": "full_time",
"seniority": "lead",
"job_function": "engineering",
"skills": ["microservices", "aws", "java", "kubernetes", "python", "react", "rust", "sre"],
"salary": {
"min": 246000,
"max": 339000,
"currency": "USD",
"period": "year",
"annual_usd_min": 246000,
"annual_usd_max": 339000
},
"url": "https://job-boards.greenhouse.io/alphasense/jobs/8687641002",
"apply_url": "https://job-boards.greenhouse.io/alphasense/jobs/8687641002",
"source": {
"name": "greenhouse",
"display_name": "Greenhouse",
"type": "ats",
"board": "alphasense",
"job_id": "8687641002"
},
"redistribution_allowed": true,
"posted_at": "2026-08-12T13:47:40.000Z"
}
]
}3. Real-Time ATS Delta Streams (/v1/feeds/*), Live ETag Refresh & 1-Click MCP
Beyond 88%–97% lower per-1,000-job unit costs, JobPostings API gives high-throughput pipelines direct ATS lifecycle primitives without custom enterprise contracts:
- Incremental New, Updated & Closed Streams (/v1/feeds/*): Unlocked at $49/mo Growth (or $50+ PAYG), GET /v1/feeds/new, /updated, and /closed let ETL pipelines sync delta changes across 434 ATS connectors without re-querying historical pages.
- Live Employer ATS Verification (?refresh=true): Pass ?refresh=true on GET /v1/companies/{slug}/jobs to trigger a real-time ETag check against Greenhouse, Lever, or Ashby right before sending executive outbound.
- Interactive Cost Modeling & 1-Click Remote OAuth 2.1 MCP: Model your exact monthly volume on /tools/job-api-cost-calculator, review the architectural benchmark on /compare/theirstack-alternative, or connect Claude & ChatGPT in 1 click at https://mcp.jobpostingsapi.com/v1/mcp.
Interactive Engineering Workbench · GET /v1/jobs/search
Verify real-time latency, pagination math & JSON schema
Frequently Asked Questions
- How much does TheirStack cost per 1,000 jobs compared to JobPostings API?
- TheirStack's public self-serve API plan starts around $200/month for ~30,000 expiring monthly job credits ($6.67 per 1,000 matched job records, plus separate company credits for firmographic lookups). JobPostings API starts at $19/month for 25,000 full job records ($0.76 per 1,000 matched jobs), drops to $0.199 per 1,000 matched jobs on Scale ($199/mo for 1,000,000 jobs), and offers $25–$300 never-expiring Pay-As-You-Go packs.
- Do JobPostings API credits expire at the end of the month like TheirStack?
- Monthly subscription credits reset on your monthly billing cycle, while all Pay-As-You-Go packs ($25 for 30,000 Credits up to $300 for 800,000 Credits) never expire. You can also combine a monthly plan with a non-expiring PAYG buffer.
- Do I need separate Company Credits to get employer domains and tech stack skills?
- No. Every job record returned by GET /v1/jobs/search and GET /v1/companies/{slug}/jobs already includes company.domain, company.name, company.slug, extracted technical skills[] (1,200+ canonical tags), normalized annual USD salary bounds, and the direct ATS apply URL for 1 Credit per returned job.
- Am I charged Credits when a company or keyword filter returns 0 matching jobs?
- Never. Queries returning 0 matching job records (as well as HTTP 404, 429, or 5xx responses, plus /v1/sources and /v1/tools/ats-detector) deduct 0 Credits ($0.00).
- Can I test the API right now without a credit card?
- Yes. Run 3 live queries immediately with zero login in our homepage Live Playground (/#playground), or sign in with Google in 1 click to receive 1,500 Free Instant Credits ($1.50) plus up to 2,000 Sandbox Streak Bonus Credits.