Skip to main content
Comparisons
TheirStackvsCoresignal

TheirStack vs Coresignal

Compare TheirStack and Coresignal to find the best job data solution. While Coresignal offers extensive datasets and APIs for company, employee, and job data, TheirStack provides a comprehensive, real-time job data platform with advanced filtering, instant results, and seamless integration. Discover which solution best fits your needs in this detailed comparison guide.

TheirStack and Coresignal are both data providers that offer job and company data.

Quick Decision Guide

Use TheirStack for

  • Outbound on hiring signals Turn "who is hiring X" into an account list in one query, in a UI sales can drive — Coresignal offers only a prompt-driven AI search, and its company search cannot filter by hiring activity.
  • Enriching companies with hiring signals Scheduled exports and webhooks keep the CRM field refreshing itself — on Coresignal every refresh is a search-and-collect flow you re-run yourself.
  • Backfilling a job board with job postings Deduplicated postings on every plan, webhooks that push new and closed jobs, and descriptions normalized to Markdown — Coresignal only dedupes in its multi-source product and has no job webhooks.
  • Outbound on technographics A browsable catalogue of 33k+ technologies and one-time purchases sized for a campaign — Coresignal has 5M+ NLP-extracted records, no catalogue, and subscription-only credits.
  • Enriching a CRM with technographics Catalogue-normalized technology names that refresh on a schedule — Coresignal has no catalogue to normalize against, and company records cost 10–20 credits each.
  • Outbound on buying intent TheirStack sells the intent product; Coresignal sells the raw records and leaves the intent layer for you to build.

Choose Coresignal when

  • You need employee or contact data — 895M+ profiles with business emails, experience, and seniority is Coresignal's strongest asset, and TheirStack does not sell person data.
  • You want highly detailed standalone company profiles — 70M+ companies with 500+ fields, with history back to 2016.
  • You are buying deep job history: 468M+ postings archived since 2020, delivered as bulk files.
  • Your volume sits at their pricing sweet spots — under ~2,500 records a month ($49 Mini), or above 4M where Scale and Elite price credits below any per-record rate.
  • You are building your own signal or intent models and want raw records as the ingredient rather than a finished product.

Which one to use, by use case

Feature-by-feature tables rarely answer the question you actually have, which is whether this provider fits the job you are trying to do. Here is where each one lands on the most common use cases.

Outbound on hiring signals

Monitoring job postings as a buying signal and reaching out while it is fresh — a company hiring for a role has just admitted a need.

Our pick: TheirStack

This motion is run by sales, and it lives or dies on turning "who is hiring X" into an account list fast. TheirStack does that in one query — company search filtered by job attributes, in a UI sales can drive, with webhooks feeding new matches to the sequencer. Coresignal's dashboard offers only a prompt-driven AI search with previews capped at 100 records, and its company search cannot filter by hiring activity, so the same motion still needs engineering to build and maintain a pipeline. Their edges are on either side of that gap: a semantic jobs endpoint that expands title synonyms automatically, where TheirStack matches keywords and regex and leaves the variants to you, and 895M+ employee profiles with business emails for the step after the signal.

Pick TheirStack if
  • Sales should self-serve the account list — no engineering between the signal and the outreach.
  • You want outreach on autopilot: webhooks push newly-matching companies as their postings go live.
  • The signal must be fresh — postings are searchable within minutes, deduplicated so one role is one signal.
Pick Coresignal if
  • You already have an engineering-built signal pipeline and want the contact emails from the same vendor — their employee data covers the who-to-write-to step that TheirStack leaves to a contact provider.
  • Role targeting must survive title drift — semantic search finds "Software Developer" from "Software Engineer" without a synonym list to maintain.
What this use case demandsTheirStackCoresignal
Time to discover new jobs

A hiring signal decays in days — the value is reaching out while the need is fresh and before the company runs a formal process.

Discovered jobs become searchable within a minute of ingestion, but discovery itself depends on per-source scrape frequency — every 10 minutes for high-volume boards and career pages, hourly for medium sources, daily for the smallest. 86% of new postings are discovered the same day and 98% within 48 hours. source
10 min to discover a new posting
New postings reach customers a day after collection at the fastest — datasets deliver daily and no ingestion latency is published — while the separate every-24h revisit claim covers re-checking active postings, not discovering new ones. source
1.4K min to discover a new posting
Company search by job attributes

The unit of outreach is the company, not the posting — "companies hiring SDRs" has to be one query, not a jobs export you post-process into accounts.

Company search accepts job filters — "companies hiring SDRs", "companies with Python jobs" — so a hiring signal becomes an account list in one query. source
Company and job records live in separate APIs — company search filters on company fields only, so there is no way to ask for companies by what they are hiring. source
Self-serve UI

The people running this motion are sales, not engineers — they need to build, refine, and export the list themselves.

Both UI and API — explore, filter, and export at app.theirstack.com, or use the UI as a playground that writes the API query for you. source
The self-serve dashboard now ships AI Data Search: plain-language search over jobs, companies and employees with list preview, enrichment and free CSV/JSON export, spending the same credits as the API. Prompt-driven rather than a faceted filter UI, and previews are capped at 100 records, so refining a list still means re-prompting instead of adjusting filters. source
Direct-employer filtering

A large share of postings are placed by staffing agencies on behalf of unnamed clients — outreach to the intermediary is a wasted touch, so the provider must classify company type and let you filter on it.

Every company is classified as direct employer or recruiting/consulting agency, and searches filter on it — so outreach lists exclude intermediaries in one click. source
Neither the job nor the company data dictionaries carry a staffing-agency flag — `company_type` holds legal forms like "Private" — so separating direct employers from recruiters is left to your own industry-keyword heuristics. source
Contact data

A hiring signal points at a company, but the email goes to a person — native contacts save a second tool, though most teams already run waterfall enrichment downstream.

Job postings include the hiring team behind them when the source exposes it, but there are no standalone person profiles or business emails — teams pair TheirStack with a dedicated contact provider. source
895M+ employee profiles with 300+ fields including business emails, experience, and seniority; a contact enrichment costs 10 credits. source
Job push delivery

Outreach on autopilot means new matching companies flow into the CRM or sequencer as they appear, without anyone re-running the search.

Webhooks push new and closed postings as they happen — no polling pipeline to build. source
No job change subscriptions — webhooks only signal that a bulk file is ready, and push updates exist for employee data only. source
No-code search alerts

The team running this has no engineer to receive a webhook — a saved search that fires an email or Slack alert on new matches is what autopilot looks like without code.

Saved searches fire daily or weekly email alerts with the new matches — no code involved — and the same saved search can feed webhooks for automated pipelines. source
The dashboard's AI Data Search runs one-off prompts with nothing to save or re-run — the only notifications are developer webhooks announcing that a bulk file is ready or an employee profile changed, not email or Slack alerts on new matches. source
Company exclusion lists

The same query runs forever — without suppressing companies already exported, already in the CRM, or already sequenced, the motion re-bills and re-emails the same accounts every week.

Company lists work as negative filters — exclude companies already contacted, already in the CRM, or previously exported, so a recurring search never re-bills or re-emails the same account. source
No suppression-list feature exists — keeping already-contacted or CRM companies out of results means writing your own `must_not` clauses into every Elasticsearch DSL query. source
Job filter granularity

Half of this motion is watching a named account list — past customers, open opportunities, a territory — which means pulling jobs for your list of companies, not just discovering new ones.

40+ filters, cross-filtering in both directions: jobs by company attributes (industry, size, revenue) and companies by job attributes (title, description, location). source
Elasticsearch DSL gives full control over the job record, including the company columns it carries (size range, industry) — but nothing deeper like revenue or funding, and writing DSL queries is an engineering task. source
Geographic coverage: which countries

A seller whose ICP is DACH or LATAM rejects a US-centric provider outright — what matters is depth in your target countries and languages, not global totals.

Postings from 195+ countries in their local languages, filterable by country, region, and city — coverage is global rather than US-centric. source
Marketplace listings claim global coverage across 250 countries, but neither the website nor the docs publish per-country volumes, a country list, or how non-English postings are handled. source
Hiring decision-maker identification

The posting says what the company needs; the reply rate depends on writing to the person who owns that pain — mapping each posting to its hiring manager beats guessing from a title list.

Postings include the hiring team behind them when the source exposes it, but there is no dedicated decision-maker mapping — no org charts and no per-posting hiring-manager lookup. source
Job records carry no contacts — the separate employee API can be filtered to managers by title and seniority at the hiring company, but linking a specific posting to its hiring manager is a join you build yourself. source
Job source coverage

The signal is only as complete as the sources behind it — a segment of the market the provider does not scrape is an in-market account that never enters the list.

353k+ sources: job boards, company career pages, and ATS platforms, deduplicated into one record per posting. source
353K job sources
A handful of large sources — a professional network plus platforms like Indeed and Glassdoor — with career pages and ATS boards reaching only the multi-source dataset. source
Company enrichment

The matching companies still have to be qualified — size, industry, and country decide who actually gets outreach.

Every job comes with the company behind it: logo, domain, industry, headcount, revenue, location, and tech stack. source
Job records embed company context — standardized name, domain, size range, industry, HQ location, and a logo (from the professional network only); fuller company profiles are separate records with 500+ fields at 10–20 credits each. source
Job removal signals

Reaching out about a role filled last month burns the rep's credibility — sequences must stop when the role closes, and "just filled the role" is itself a trigger.

Every posting carries an active-or-expired status with the exact closure date — filter by `is_closed` and `closed_at` in the API, and webhooks push each closure so listings can be delisted in real time. source
Jobs carry an active/inactive flag, but no closure date is recorded and nothing pushes the change — you find out on the next re-run of your search. source
Job deduplication

In an automated pipeline the same role posted on three boards is three triggers and three emails to the same account — duplicates cause visible outreach mistakes, not just inflated lists.

The same posting found on several sources is merged into one record before billing, on every plan. source
Cross-source merging exists but only in the multi-source product — the base dataset and the Base Jobs API return the same posting once per source. source
Compliant data sourcing

Bounces and complaints burn the sending domain the whole motion depends on — the data behind the outreach needs a documented lawful basis, especially for EU and California prospects.

All signals derive from publicly posted job listings — no bidstream, cookies, or tracking of individuals — a provenance that survives GDPR review and cookie deprecation. source
Documents public-sources-only collection (no login areas, no MNPI), GDPR/CCPA alignment with data processing agreements in place, an opt-out rights portal, and founding membership of the Ethical Web Data Collection Initiative. source
Free counts and previews

The way to judge a signal vendor is to run your ICP and check the matches against accounts you already know — free counts and sample records make that test possible before any money moves.

Preview mode (`blur_company_data`) returns results with identifying fields blurred at zero credit cost, and adding `include_total_results` makes the same free request return the total match count — the mechanism the TheirStack app itself runs on. source
Search queries are free but return only record IDs, and the preview endpoint that retrieves a small set of partial data is billed at 20 credits per call — counting is free, showing anything to an end user is not. source
Pricing transparency

The buyer is a sales team with a tool budget, not procurement — public self-serve pricing means the motion starts this week, while quote-only annual contracts price out most of the teams that run it.

Prices are public and self-serve — per-credit pricing with volume tiers on the pricing page, one credit per deduplicated record, and free re-fetches avoidable with delta filters — no contact-sales step to learn the cost. source
API plans are public and self-serve ($49–$5,000/month with per-record credit costs), but dataset pricing is a custom sales quote, part of the price list lives in the docs rather than on the pricing page, and every collect of a record bills again — no free re-fetch window is documented. source
Original job URL

The posting is the evidence behind the signal — a rep personalizing the first line needs to read the actual job ad, and a link to the source posting beats a black-box "this account is hiring" flag.

Every job carries `final_url`, the posting on the company careers page or ATS, so the apply button can redirect candidates to the authentic source. source
Multi-source job records carry `url` (the posting on the source platform) and `external_url` (the company job URL), though the dictionary does not document how often the company URL is filled. source
Published support channels and response time

The team running this has no engineer to debug a query that returns nothing, so the practical question is whether a non-technical user can get an answer the same day instead of filing a ticket into silence.

Support is a ticket system inside the product — categorised, status-tracked, and answered by the people who build it — reached from the app or documented at one page, with a typical reply in under 24 hours published as what happens in practice rather than as an SLA. A wrong record can be reported from the record itself or straight from the MCP server (`report_data_bug`, `request_technology`), and an open community Slack covers questions that are not tickets. source
Support is laddered on the pricing page — "Email" on Free through Pro, "Account manager" on Growth and Premium, "Account manager, Slack" on Scale and Elite — but no response time is committed to at any tier. source
Official MCP server

The rep asks the assistant for the list instead of building a query — an official MCP server is what makes “which companies started hiring SDRs this week” answerable without opening the tool.

Remote MCP server at `https://api.theirstack.com/mcp` with OAuth or API-key auth, documented for Claude, Claude Code, Cursor, VS Code, Windsurf, Codex and Gemini CLI, with documented skills that run whole workflows agent-side. source
Remote MCP server at `mcp.coresignal.com/mcp` exposing job, company and employee tools, though connecting needs Node.js and the `mcp-remote` bridge with a pasted API key rather than a hosted OAuth flow. A separate Agentic Search API is marketed for agent access but is consumed as plain REST. source

Enriching companies with hiring signals

Keeping a set of companies you already own up to date with what they are hiring for, on a schedule, through the API. The destination is usually a CRM, but just as often it is a warehouse table, a product signup feed scored on the fly, or a target-account list a sales team works from.

Our pick: TheirStack

Enrichment is a scheduled loop over the accounts you already own, and the loop shape differs completely: TheirStack pulls jobs for your company list in synchronous 500-record batches, on scheduled exports with webhooks in between; on Coresignal every refresh is a search plus a separate collect (async Bulk Collect for volume) that you re-run yourself, because job change subscriptions do not exist.

Pick TheirStack if
  • The CRM field must refresh itself — scheduled exports plus webhooks, no cron jobs re-running searches.
  • You enrich at warehouse scale and want synchronous batched retrieval instead of submit-wait-download loops.
  • Hiring-activity counts feed scoring — deduplicated postings keep the scores honest.
Pick Coresignal if
  • The same pipeline also enriches people — employee profiles and contact data come from the one vendor, sharing a credit pool with jobs.
What this use case demandsTheirStackCoresignal
Company identity matching

You start from the accounts you already own — the provider must resolve your identifiers (domain, name, LinkedIn URL) to its records, and its match rate on your list is the ceiling of the whole project.

Enrichment accepts your identifiers as they are — web domain, company name, or LinkedIn URL — so messy CRM records still match without a cleanup project first. source
Multi-source company records can be fetched by the buyer's own identifiers — `/enrich?website=` takes a domain and the collect endpoint takes a professional-network profile URL or shorthand name — with plain-name matching left to a free Elasticsearch search. source
Scheduled refresh

A CRM field is only trustworthy if it refreshes itself — the provider has to deliver updates on a cadence you set, not wait for you to re-run searches.

Scheduled exports deliver refreshed data on the cadence you set, and webhooks push changes between runs. source
Datasets deliver to S3, Snowflake, BigQuery, or Databricks on a daily, weekly, or monthly cadence, from $1,000/month — on the API plans there are no job change subscriptions, so refreshing means re-running the search-and-collect flow yourself. source
Job filter granularity

Filters like title, date, and country scope the pull to the roles that matter for scoring — without them you pay for every posting an account has.

40+ filters, cross-filtering in both directions: jobs by company attributes (industry, size, revenue) and companies by job attributes (title, description, location). source
Elasticsearch DSL gives full control over the job record, including the company columns it carries (size range, industry) — but nothing deeper like revenue or funding, and writing DSL queries is an engineering task. source
Job push delivery

New and closed jobs for your accounts should arrive as webhook events — keeping CRM fields current without a polling pipeline you build and babysit.

Webhooks push new and closed postings as they happen — no polling pipeline to build. source
No job change subscriptions — webhooks only signal that a bulk file is ready, and push updates exist for employee data only. source
Incremental delta retrieval

A recurring sync re-visits the same accounts every run — unless you can pull and pay for only what changed since last time, the bill scales with cadence times account count instead of with actual hiring activity.

API filters like `discovered_at_gte` and `job_id_not` pull only records new since the last run, webhooks push changes as they happen, and datasets ship daily delta files — a refresh pays for what changed, not for the whole list. source
Job records carry `created_at` and `updated_at` timestamps you can filter on in the free search step and then collect only the changed IDs, but there is no dedicated delta endpoint and the dataset docs never say whether the daily deliveries are deltas or full drops. source
Job removal signals

Without removal signals roles never leave the CRM and hiring-activity counts only ever go up — reps end up acting on positions filled months ago.

Every posting carries an active-or-expired status with the exact closure date — filter by `is_closed` and `closed_at` in the API, and webhooks push each closure so listings can be delisted in real time. source
Jobs carry an active/inactive flag, but no closure date is recorded and nothing pushes the change — you find out on the next re-run of your search. source
Synchronous bulk retrieval

An enrichment run touches thousands of accounts — it should be a few synchronous batched requests, not an async submit-wait-download-unzip loop.

Up to 500 full records per request, sub-second, in the same call as the search — no separate collect step and no async file jobs. source
The endpoint that answers inside the same request returns one job; volume goes through Bulk Collect, which takes up to 10,000 records but is asynchronous — submit, wait for the files to be generated, then download and unzip them. source
Time to discover new jobs

The field says what the account is hiring for now — stale data misleads every rep who reads it.

Discovered jobs become searchable within a minute of ingestion, but discovery itself depends on per-source scrape frequency — every 10 minutes for high-volume boards and career pages, hourly for medium sources, daily for the smallest. 86% of new postings are discovered the same day and 98% within 48 hours. source
10 min to discover a new posting
New postings reach customers a day after collection at the fastest — datasets deliver daily and no ingestion latency is published — while the separate every-24h revisit claim covers re-checking active postings, not discovering new ones. source
1.4K min to discover a new posting
Job deduplication

Hiring-activity counts drive scoring — the same posting counted once per source inflates every score.

The same posting found on several sources is merged into one record before billing, on every plan. source
Cross-source merging exists but only in the multi-source product — the base dataset and the Base Jobs API return the same posting once per source. source
Free counts and previews

Coverage on the homepage is not coverage on your accounts — running your own list and seeing how many return data must cost nothing, both to evaluate before buying and to skip paid pulls for accounts with nothing new.

Preview mode (`blur_company_data`) returns results with identifying fields blurred at zero credit cost, and adding `include_total_results` makes the same free request return the total match count — the mechanism the TheirStack app itself runs on. source
Search queries are free but return only record IDs, and the preview endpoint that retrieves a small set of partial data is billed at 20 credits per call — counting is free, showing anything to an end user is not. source
API documentation

This use case is the API — the enrichment pipeline is code a developer maintains forever, and the docs decide how long the integration takes.

One API to learn: a single documented search endpoint per record type with an OpenAPI reference and step-by-step guides, and the app UI doubles as a playground that writes the API request for you. source
The docs split every dataset into parallel Base and Multi-source API generations with separate endpoint sets and data dictionaries, and part of the pricing lives in the docs rather than on the pricing page — choosing which API to integrate is left to the reader. source
Geographic coverage: which countries

Fill rate is capped by where your accounts are — a provider deep only in the US leaves the hiring fields of an EMEA or LATAM account list blank, whatever its global totals say.

Postings from 195+ countries in their local languages, filterable by country, region, and city — coverage is global rather than US-centric. source
Marketplace listings claim global coverage across 250 countries, but neither the website nor the docs publish per-country volumes, a country list, or how non-English postings are handled. source
Pricing transparency

The sync re-bills every month forever — the real unit is cost per enriched account, which depends on published per-record prices and on whether no-match lookups burn credits too.

Prices are public and self-serve — per-credit pricing with volume tiers on the pricing page, one credit per deduplicated record, and free re-fetches avoidable with delta filters — no contact-sales step to learn the cost. source
API plans are public and self-serve ($49–$5,000/month with per-record credit costs), but dataset pricing is a custom sales quote, part of the price list lives in the docs rather than on the pricing page, and every collect of a record bills again — no free re-fetch window is documented. source
API rate limits at scale

A refresh sweeps thousands of accounts in one run — the per-minute cap decides whether that takes minutes or days, so limits must be documented and raisable before the pipeline is designed around them.

Rate limits are documented per tier with IETF-standard RateLimit headers on every response and sliding windows per user — and limits are raised on paid and enterprise plans. source
Plan-tiered limits are published (5 req/s on Mini and Starter, 10 on Pro, 20 on Growth, 50 on Premium, 100 on Scale and 100+ on Elite, with per-endpoint caps on agentic search), so limits rise by upgrading — but responses expose only an x-credits-remaining header, with no X-RateLimit-* or Retry-After backoff signal on 429s. source
API versioning and deprecation policy

The sync is unattended code running on a schedule — an unannounced breaking change upstream silently stops the refresh, so versioned endpoints and a deprecation window are part of the contract.

Endpoints are versioned (`/v1/`) and changes ship in a public product-updates changelog, but there is no published deprecation-window policy. source
The Multi-source Jobs API uses versioned /v2/ paths and the release notes are a monthly changelog that flags "[Breaking change]" entries, but there is no standing deprecation policy — sunset windows are announced ad hoc per change (the Employee API got 4 months). source
Compliant data sourcing

The enrichment writes vendor data into your CRM permanently — the provider's lawful sourcing becomes your compliance answer when legal or a customer audit asks where the field came from.

All signals derive from publicly posted job listings — no bidstream, cookies, or tracking of individuals — a provenance that survives GDPR review and cookie deprecation. source
Documents public-sources-only collection (no login areas, no MNPI), GDPR/CCPA alignment with data processing agreements in place, an opt-out rights portal, and founding membership of the Ethical Web Data Collection Initiative. source
Official MCP server

Enrichment is increasingly a step inside an agent workflow rather than a nightly job — an MCP server means the agent can fetch what it needs mid-run without a service someone maintains around it.

Remote MCP server at `https://api.theirstack.com/mcp` with OAuth or API-key auth, documented for Claude, Claude Code, Cursor, VS Code, Windsurf, Codex and Gemini CLI, with documented skills that run whole workflows agent-side. source
Remote MCP server at `mcp.coresignal.com/mcp` exposing job, company and employee tools, though connecting needs Node.js and the `mcp-remote` bridge with a pasted API key rather than a hosted OAuth flow. A separate Agentic Search API is marketed for agent access but is consumed as plain REST. source
Published support channels and response time

Enrichment fails quietly — a match rate that drops or a field that starts arriving empty looks like the data, not like a bug. Getting to someone who can check the record is what turns a suspicion into a fix.

Support is a ticket system inside the product — categorised, status-tracked, and answered by the people who build it — reached from the app or documented at one page, with a typical reply in under 24 hours published as what happens in practice rather than as an SLA. A wrong record can be reported from the record itself or straight from the MCP server (`report_data_bug`, `request_technology`), and an open community Slack covers questions that are not tickets. source
Support is laddered on the pricing page — "Email" on Free through Pro, "Account manager" on Growth and Premium, "Account manager, Slack" on Scale and Elite — but no response time is committed to at any tier. source

Backfilling a job board with job postings

Filling and keeping a job board or recruiting platform stocked with listings. You pay per record, so every duplicate of the same posting is both a bill you did not need and a repeated listing your users see.

Our pick: TheirStack

A job board pays per record and shows every record to its users, so what matters most is not paying twice for the same posting and keeping the board current. TheirStack deduplicates across sources on every plan and pushes new and closed postings by webhook; on Coresignal deduplication only comes with the multi-source product — the base dataset and the Base Jobs API still return the same posting once per source — and there are no job change subscriptions, so staying current means re-running searches yourself.

Pick TheirStack if
  • Your users see the listings or you bill per record — a duplicate is both a repeated listing and a bill you did not need.
  • The board must stay current without a polling pipeline — webhooks push postings as they open and close, with the closure date.
  • You want to start self-serve, free or from $49/mo, instead of a sales conversation for datasets.
Pick Coresignal if
  • You are backfilling deep history: their archive reaches back to 2020 with 468M+ postings, available as bulk files.
  • You need under ~2,500 postings a month — their $49 Mini plan is the cheapest way in at that volume.
  • Your board search runs on meaning rather than keywords — their semantic endpoint expands title synonyms automatically with a tunable confidence threshold, where TheirStack title filters need the variants enumerated.
What this use case demandsTheirStackCoresignal
Time to discover new jobs

A job board competes on having new postings first — every hour between a job going live at the source and appearing on your board is a gap where faster-fed boards already list it. New postings should appear within minutes; daily is the minimum.

Discovered jobs become searchable within a minute of ingestion, but discovery itself depends on per-source scrape frequency — every 10 minutes for high-volume boards and career pages, hourly for medium sources, daily for the smallest. 86% of new postings are discovered the same day and 98% within 48 hours. source
10 min to discover a new posting
New postings reach customers a day after collection at the fastest — datasets deliver daily and no ingestion latency is published — while the separate every-24h revisit claim covers re-checking active postings, not discovering new ones. source
1.4K min to discover a new posting
Original job URL

The apply button must send candidates to the authentic careers-page posting — not to LinkedIn or another job board, which compete with you for the same candidates and would capture your audience. Broken redirect chains get blamed on your board, not on the source.

Every job carries `final_url`, the posting on the company careers page or ATS, so the apply button can redirect candidates to the authentic source. source
Multi-source job records carry `url` (the posting on the source platform) and `external_url` (the company job URL), though the dictionary does not document how often the company URL is filled. source
Normalized job descriptions

Descriptions arrive as HTML fragments, broken encodings, and converted PDFs. Unless the provider normalizes them into one format, every listing renders differently on your board.

Descriptions are converted to consistent Markdown across all 353k+ sources — HTML stripped, bullet points, headers, and emphasis kept — so every listing renders uniformly. source
The `description` field is documented only as "Cleaned full description" — no output format (HTML, plain text, or Markdown) is specified, so uniform rendering across sources is not guaranteed. source
Job deduplication

You pay per record and your users see every record — a duplicate is both a bill you did not need and a repeated listing.

The same posting found on several sources is merged into one record before billing, on every plan. source
Cross-source merging exists but only in the multi-source product — the base dataset and the Base Jobs API return the same posting once per source. source
Job removal signals

Stale listings destroy candidate trust and search rankings — the provider must know whether each posting is still active or already expired, and tell you when it closes so you can delist it.

Every posting carries an active-or-expired status with the exact closure date — filter by `is_closed` and `closed_at` in the API, and webhooks push each closure so listings can be delisted in real time. source
Jobs carry an active/inactive flag, but no closure date is recorded and nothing pushes the change — you find out on the next re-run of your search. source
Data redistribution license

A job board displays every purchased record to the public — if the license does not permit republishing, the entire board is a violation waiting for a takedown letter.

The standard terms explicitly permit republishing job postings publicly (job boards, SEO pages) and reselling the data as an integrated part of your own product — only standalone raw-dataset resale requires written consent. source
The public terms prohibit selling, sublicensing, or republishing site material and state that any data purchase is governed by a separately signed agreement, so no standard redistribution right is published. source
Job push delivery

Without push delivery, keeping the board current means re-querying the API on a schedule, diffing the results against what you already list, and monitoring that pipeline forever. With webhooks the provider notifies your endpoint the moment a matching job is posted or closed, so listings appear and get delisted on time with far less code.

Webhooks push new and closed postings as they happen — no polling pipeline to build. source
No job change subscriptions — webhooks only signal that a bulk file is ready, and push updates exist for employee data only. source
Bulk datasets

A board launches empty — the initial backfill needs thousands of currently-active matching jobs on day one as a bulk load, not paged through a per-request metered API.

Jobs, companies, and technographics ship as flat CSV or Parquet files through S3 — one-time historical, daily delta files, or both — browsable and purchasable self-serve from the app. source
Datasets deliver the full archives as Parquet or JSONL to S3, Google Cloud, Azure, Snowflake, or Databricks on a daily, weekly, or monthly cadence — from $1,000/month, configured through a sales conversation rather than self-serve. source
Geographic coverage: which countries

Most boards are country- or region-niche — a global source count says nothing about whether the provider actually covers your market in its local language.

Postings from 195+ countries in their local languages, filterable by country, region, and city — coverage is global rather than US-centric. source
Marketplace listings claim global coverage across 250 countries, but neither the website nor the docs publish per-country volumes, a country list, or how non-English postings are handled. source
Pricing transparency

You pay per record forever — whether the price is public and what silently re-bills (duplicates, expiry re-checks, refreshed records) decides the real monthly cost, not the headline rate.

Prices are public and self-serve — per-credit pricing with volume tiers on the pricing page, one credit per deduplicated record, and free re-fetches avoidable with delta filters — no contact-sales step to learn the cost. source
API plans are public and self-serve ($49–$5,000/month with per-record credit costs), but dataset pricing is a custom sales quote, part of the price list lives in the docs rather than on the pricing page, and every collect of a record bills again — no free re-fetch window is documented. source
Free counts and previews

Coverage varies wildly by niche — the only way to know whether a provider can actually fill your board is to count and sample the currently-active jobs matching your filters before paying, and again whenever you weigh adding a category.

Preview mode (`blur_company_data`) returns results with identifying fields blurred at zero credit cost, and adding `include_total_results` makes the same free request return the total match count — the mechanism the TheirStack app itself runs on. source
Search queries are free but return only record IDs, and the preview endpoint that retrieves a small set of partial data is billed at 20 credits per call — counting is free, showing anything to an end user is not. source
Compliant data sourcing

Your board republishes the scraped content under your own domain — the provider's sourcing practices become your public legal exposure, not just theirs.

All signals derive from publicly posted job listings — no bidstream, cookies, or tracking of individuals — a provenance that survives GDPR review and cookie deprecation. source
Documents public-sources-only collection (no login areas, no MNPI), GDPR/CCPA alignment with data processing agreements in place, an opt-out rights portal, and founding membership of the Ethical Web Data Collection Initiative. source
Job source coverage

Inventory breadth is the whole point of backfilling — coverage of career pages and ATS boards, not just the big aggregators, decides how many niches you can serve.

353k+ sources: job boards, company career pages, and ATS platforms, deduplicated into one record per posting. source
353K job sources
A handful of large sources — a professional network plus platforms like Indeed and Glassdoor — with career pages and ATS boards reaching only the multi-source dataset. source
Direct-employer filtering

Staffing agencies flood popular niches with anonymous-client reposts of the same role — without a company-type classification to filter on, agency spam crowds out the direct-employer listings candidates came for.

Every company is classified as direct employer or recruiting/consulting agency, and searches filter on it — so outreach lists exclude intermediaries in one click. source
Neither the job nor the company data dictionaries carry a staffing-agency flag — `company_type` holds legal forms like "Private" — so separating direct employers from recruiters is left to your own industry-keyword heuristics. source
Self-serve UI

A UI over the full inventory lets you run your board's exact filters and see every matching job before writing integration code — validating coverage for your niche, and letting the non-engineers deciding what the board carries explore the data themselves.

Both UI and API — explore, filter, and export at app.theirstack.com, or use the UI as a playground that writes the API query for you. source
The self-serve dashboard now ships AI Data Search: plain-language search over jobs, companies and employees with list preview, enrichment and free CSV/JSON export, spending the same credits as the API. Prompt-driven rather than a faceted filter UI, and previews are capped at 100 records, so refining a list still means re-prompting instead of adjusting filters. source
Company enrichment

Logo, domain, and headcount turn a bare listing into a page worth indexing, and enable company profile pages.

Every job comes with the company behind it: logo, domain, industry, headcount, revenue, location, and tech stack. source
Job records embed company context — standardized name, domain, size range, industry, HQ location, and a logo (from the professional network only); fuller company profiles are separate records with 500+ fields at 10–20 credits each. source
Job filter granularity

A niche board needs tight filters — 500 relevant jobs beat 50,000 random ones.

40+ filters, cross-filtering in both directions: jobs by company attributes (industry, size, revenue) and companies by job attributes (title, description, location). source
Elasticsearch DSL gives full control over the job record, including the company columns it carries (size range, industry) — but nothing deeper like revenue or funding, and writing DSL queries is an engineering task. source
Structured job fields

Salary, employment type, and location power both the faceted search candidates expect and the Google JobPosting structured data behind the board's main SEO traffic channel.

Structured title, location, salary range, seniority, remote/hybrid flags, employment status, and detected technologies on every record. source
Multi-source job records carry structured salary (min/max, currency, period), `seniority`, `employment_type`, an `accepts_remote` flag, and location split into country, city, state, and coordinates. source
API documentation

A backfill is an integration project — how fast an engineer gets from the docs to the first working request is real cost.

One API to learn: a single documented search endpoint per record type with an OpenAPI reference and step-by-step guides, and the app UI doubles as a playground that writes the API request for you. source
The docs split every dataset into parallel Base and Multi-source API generations with separate endpoint sets and data dictionaries, and part of the pricing lives in the docs rather than on the pricing page — choosing which API to integrate is left to the reader. source
File formats offered

A board ingests the whole feed repeatedly rather than querying it, so the file format decides whether the loader is a warehouse COPY or a conversion script maintained forever.

JSON over the API and a choice of CSV or Parquet on every dataset — the columnar format a warehouse loads directly is available on the same purchase, not only on an enterprise contract. source
Formats are published as "JSON, JSONL, CSV, Parquet, Other (upon request)" — including the line-delimited and columnar formats a warehouse ingests without a conversion step. source
Published support channels and response time

A board is a production dependency: a feed that stops or starts shipping malformed records is visible on your site within hours, and the response time you can expect decides how long it stays broken.

Support is a ticket system inside the product — categorised, status-tracked, and answered by the people who build it — reached from the app or documented at one page, with a typical reply in under 24 hours published as what happens in practice rather than as an SLA. A wrong record can be reported from the record itself or straight from the MCP server (`report_data_bug`, `request_technology`), and an open community Slack covers questions that are not tickets. source
Support is laddered on the pricing page — "Email" on Free through Pro, "Account manager" on Growth and Premium, "Account manager, Slack" on Scale and Elite — but no response time is committed to at any tier. source

Outbound on technographics

Building target lists of companies that use (or are adopting) a specific technology, including the backend and internal tools a website scan cannot see.

Our pick: TheirStack

A technographic campaign needs a catalogue to target against and coverage to fill the list. TheirStack tracks 33k+ named technologies across 51M company ↔ technology signals, browsable in a UI and buyable one-time for a campaign. Coresignal has 5M+ technographic records extracted with NLP from free text — no published catalogue to filter by, no faceted UI to build the list in, and credits tied to a subscription rather than a campaign budget.

Pick TheirStack if
  • You target users of a named technology, including backend and internal tools a website scan cannot see.
  • GTM builds and exports the list without engineering.
  • The budget is per campaign — buy credits once, no recurring plan.
Pick Coresignal if
  • You are already a Coresignal customer for company or employee data and a thin technology signal on the largest companies is enough for your list.
What this use case demandsTheirStackCoresignal
Technographic coverage

The list is only as long as the company ↔ technology signals behind it — thin coverage means missing most of your addressable market.

51M company ↔ technology signals, read from what companies hire for — including backend, data, and internal tools a website scan cannot see. source
51M company ↔ technology signals
5M+ technographic records extracted with NLP from job and company descriptions — coverage thins out fast outside the largest companies. source
5M company ↔ technology signals
Technology catalogue

You are targeting users of a named technology — that only works against a maintained catalogue you can filter by, not free-text extraction you have to guess at.

A maintained catalogue of 33k+ technologies you can browse and filter by, with missing technologies addable on request. source
33K technologies tracked
No published catalogue of tracked technologies — signals are extracted with NLP from free text, so there is no maintained list to filter against or normalize CRM fields to. source
Self-serve UI

Building and exporting a campaign list is a GTM task — it cannot depend on engineering time.

Both UI and API — explore, filter, and export at app.theirstack.com, or use the UI as a playground that writes the API query for you. source
The self-serve dashboard now ships AI Data Search: plain-language search over jobs, companies and employees with list preview, enrichment and free CSV/JSON export, spending the same credits as the API. Prompt-driven rather than a faceted filter UI, and previews are capped at 100 records, so refining a list still means re-prompting instead of adjusting filters. source
Backend technology detection

Backend and internal tools — databases, ERPs, infrastructure — never appear in website source code, so a provider that only scans frontends cannot build the list at all.

Technology signals are read from what companies hire for, so backend, data, and internal tools — databases, ERPs, cloud infrastructure — are detected even though they never appear in website source code. source
Technology signals are NLP-extracted from job postings and company descriptions rather than website source code, so backend stacks named in job ads — databases, ERPs, IT infrastructure — are captured. source
Technographic detection evidence

Before paying for the list you will spot-check it — "why do you say company X uses tech Y" must have a verifiable answer, or every false positive becomes a refund dispute.

Each company ↔ technology signal carries a confidence score and links back to the job postings that mention the technology — every detection can be verified against its original evidence. source
Each `technologies_used` entry carries only the technology name and verification dates — no confidence score and no pointer to the posting or description the signal was extracted from. source
One-time purchase

These are campaign-shaped projects: buy the list once, run the campaign — a recurring subscription is the wrong billing shape.

Credits can be bought one-time, with no subscription at all, and stay valid for 12 months — a monthly plan can also be cancelled after a single month with the same 12-month credit validity. source
Credits are tied to a recurring monthly subscription and cannot be bought once for a one-off project — below the Premium plan, unused credits expire at the end of each month. source
Company enrichment

The raw list still has to be qualified before export — firmographic filters at query time (size, industry, country) decide who actually gets outreach, not fields appended afterwards.

Every job comes with the company behind it: logo, domain, industry, headcount, revenue, location, and tech stack. source
Job records embed company context — standardized name, domain, size range, industry, HQ location, and a logo (from the professional network only); fuller company profiles are separate records with 500+ fields at 10–20 credits each. source
Technographic freshness

A signal last seen two years ago targets an account that already switched — first- and last-detected dates separate current users from historical ones.

Each signal is dated by the job postings behind it, and confidence weighs the recency of mentions — current users are distinguishable from companies that mentioned a technology years ago. source
Every technology on a multi-source company record carries `first_verified_at` and `last_verified_at` dates, so each signal states when it was first and most recently confirmed. source
Contact data

The campaign emails go to people, not domains — a company list without contacts forces a second vendor and a matching step before a single email can be sent.

Job postings include the hiring team behind them when the source exposes it, but there are no standalone person profiles or business emails — teams pair TheirStack with a dedicated contact provider. source
895M+ employee profiles with 300+ fields including business emails, experience, and seniority; a contact enrichment costs 10 credits. source
Free counts and previews

A one-time buyer has no second month to discover the list is bad — seeing how many companies match and sampling records before paying is the purchase decision.

Preview mode (`blur_company_data`) returns results with identifying fields blurred at zero credit cost, and adding `include_total_results` makes the same free request return the total match count — the mechanism the TheirStack app itself runs on. source
Search queries are free but return only record IDs, and the preview endpoint that retrieves a small set of partial data is billed at 20 credits per call — counting is free, showing anything to an end user is not. source
Pricing transparency

A campaign list is a project purchase with a project budget — a public per-record or per-list price closes it this week, while quote-only pricing turns a one-time buy into an enterprise sales cycle.

Prices are public and self-serve — per-credit pricing with volume tiers on the pricing page, one credit per deduplicated record, and free re-fetches avoidable with delta filters — no contact-sales step to learn the cost. source
API plans are public and self-serve ($49–$5,000/month with per-record credit costs), but dataset pricing is a custom sales quote, part of the price list lives in the docs rather than on the pricing page, and every collect of a record bills again — no free re-fetch window is documented. source
Compliant data sourcing

The campaign emails EU and California prospects with data someone scraped — the provider needs a documented lawful basis legal can sign off on, or the list never gets used.

All signals derive from publicly posted job listings — no bidstream, cookies, or tracking of individuals — a provenance that survives GDPR review and cookie deprecation. source
Documents public-sources-only collection (no login areas, no MNPI), GDPR/CCPA alignment with data processing agreements in place, an opt-out rights portal, and founding membership of the Ethical Web Data Collection Initiative. source
Detection from job postings

A job posting names the tools the team is staffed to run, including the ones no crawl can see — it is the only surface that reaches the internal stack.

Every company ↔ technology signal is extracted from job postings, and each one links back to the postings that mention the technology. source
Technology signals are NLP-extracted from job postings, which together with company descriptions is the documented detection surface. source
Published support channels and response time

Technology detections are the claims most likely to be disputed by a prospect ("we do not use that"), so a channel that gets a wrong attribution corrected — rather than acknowledged — is what keeps the list trustworthy.

Support is a ticket system inside the product — categorised, status-tracked, and answered by the people who build it — reached from the app or documented at one page, with a typical reply in under 24 hours published as what happens in practice rather than as an SLA. A wrong record can be reported from the record itself or straight from the MCP server (`report_data_bug`, `request_technology`), and an open community Slack covers questions that are not tickets. source
Support is laddered on the pricing page — "Email" on Free through Pro, "Account manager" on Growth and Premium, "Account manager, Slack" on Scale and Elite — but no response time is committed to at any tier. source
Official MCP server

Technographic prospecting is iterative research — “who runs Snowflake but not dbt” is a conversation, and an MCP server lets the rep have it with the assistant instead of with a filter UI.

Remote MCP server at `https://api.theirstack.com/mcp` with OAuth or API-key auth, documented for Claude, Claude Code, Cursor, VS Code, Windsurf, Codex and Gemini CLI, with documented skills that run whole workflows agent-side. source
Remote MCP server at `mcp.coresignal.com/mcp` exposing job, company and employee tools, though connecting needs Node.js and the `mcp-remote` bridge with a pasted API key rather than a hosted OAuth flow. A separate Agentic Search API is marketed for agent access but is consumed as plain REST. source

Enriching a CRM with technographics

Appending the tech stack to the companies in your CRM or warehouse, and refreshing it as it changes.

Our pick: TheirStack

A CRM append needs normalized technology names, coverage beyond the largest companies, and a refresh that runs itself. TheirStack serves all three — a maintained catalogue, 51M signals, scheduled exports. On Coresignal the technology signal is NLP-extracted free text with no catalogue to normalize against, and each company record costs 10–20 credits from the same pool as everything else, so a large append burns a plan quickly.

Pick TheirStack if
  • CRM fields need catalogue-normalized technology names you can segment and report on.
  • The append must refresh on a schedule without manual re-runs.
Pick Coresignal if
  • The append is really about firmographics and people — their 70M+ company and 895M+ employee profiles are the stronger dataset when technology is a secondary field.
What this use case demandsTheirStackCoresignal
Technographic coverage

An enrichment that only fills the field for the largest companies leaves most of a CRM blank.

51M company ↔ technology signals, read from what companies hire for — including backend, data, and internal tools a website scan cannot see. source
51M company ↔ technology signals
5M+ technographic records extracted with NLP from job and company descriptions — coverage thins out fast outside the largest companies. source
5M company ↔ technology signals
Technology catalogue

CRM fields need normalized technology names — free-text extractions cannot be segmented, deduplicated, or reported on.

A maintained catalogue of 33k+ technologies you can browse and filter by, with missing technologies addable on request. source
33K technologies tracked
No published catalogue of tracked technologies — signals are extracted with NLP from free text, so there is no maintained list to filter against or normalize CRM fields to. source
Scheduled refresh

Tech stacks change — the append is only useful if it re-runs on a cadence without manual work.

Scheduled exports deliver refreshed data on the cadence you set, and webhooks push changes between runs. source
Datasets deliver to S3, Snowflake, BigQuery, or Databricks on a daily, weekly, or monthly cadence, from $1,000/month — on the API plans there are no job change subscriptions, so refreshing means re-running the search-and-collect flow yourself. source
Company identity matching

The append starts from your records, and CRMs are messy — if the provider only accepts clean domains, every account with just a name or LinkedIn URL comes back unmatched and the field stays blank.

Enrichment accepts your identifiers as they are — web domain, company name, or LinkedIn URL — so messy CRM records still match without a cleanup project first. source
Multi-source company records can be fetched by the buyer's own identifiers — `/enrich?website=` takes a domain and the collect endpoint takes a professional-network profile URL or shorthand name — with plain-name matching left to a free Elasticsearch search. source
Technographic detection evidence

A CRM field reps distrust gets ignored, then ripped out — each detection needs a confidence level and a way to verify why the provider believes it.

Each company ↔ technology signal carries a confidence score and links back to the job postings that mention the technology — every detection can be verified against its original evidence. source
Each `technologies_used` entry carries only the technology name and verification dates — no confidence score and no pointer to the posting or description the signal was extracted from. source
Technographic freshness

The whole point of refreshing is that stacks change — without first- and last-detected dates on each signal, every run re-writes technologies the account may have dropped years ago.

Each signal is dated by the job postings behind it, and confidence weighs the recency of mentions — current users are distinguishable from companies that mentioned a technology years ago. source
Every technology on a multi-source company record carries `first_verified_at` and `last_verified_at` dates, so each signal states when it was first and most recently confirmed. source
Backend technology detection

A website-scan-only provider fills the column with frontend widgets and leaves it blank for the databases, ERPs, and internal tools most segmentation actually runs on.

Technology signals are read from what companies hire for, so backend, data, and internal tools — databases, ERPs, cloud infrastructure — are detected even though they never appear in website source code. source
Technology signals are NLP-extracted from job postings and company descriptions rather than website source code, so backend stacks named in job ads — databases, ERPs, IT infrastructure — are captured. source
Incremental delta retrieval

A monthly refresh that re-pays for the unchanged majority of the warehouse is a 10x cost difference versus paying only for deltas.

API filters like `discovered_at_gte` and `job_id_not` pull only records new since the last run, webhooks push changes as they happen, and datasets ship daily delta files — a refresh pays for what changed, not for the whole list. source
Job records carry `created_at` and `updated_at` timestamps you can filter on in the free search step and then collect only the changed IDs, but there is no dedicated delta endpoint and the dataset docs never say whether the daily deliveries are deltas or full drops. source
Bulk datasets

Above warehouse scale, per-record API credits stop making sense — the append becomes a flat-file load with periodic refreshes at a flat price.

Jobs, companies, and technographics ship as flat CSV or Parquet files through S3 — one-time historical, daily delta files, or both — browsable and purchasable self-serve from the app. source
Datasets deliver the full archives as Parquet or JSONL to S3, Google Cloud, Azure, Snowflake, or Databricks on a daily, weekly, or monthly cadence — from $1,000/month, configured through a sales conversation rather than self-serve. source
Synchronous bulk retrieval

Warehouse-scale appends need batched, synchronous retrieval rather than per-record calls or async file jobs.

Up to 500 full records per request, sub-second, in the same call as the search — no separate collect step and no async file jobs. source
The endpoint that answers inside the same request returns one job; volume goes through Bulk Collect, which takes up to 10,000 records but is asynchronous — submit, wait for the files to be generated, then download and unzip them. source
API documentation

This buyer has no UI to fall back on — the append runs as code against the API, and the docs decide how long the integration takes.

One API to learn: a single documented search endpoint per record type with an OpenAPI reference and step-by-step guides, and the app UI doubles as a playground that writes the API request for you. source
The docs split every dataset into parallel Base and Multi-source API generations with separate endpoint sets and data dictionaries, and part of the pricing lives in the docs rather than on the pricing page — choosing which API to integrate is left to the reader. source
Free counts and previews

The purchase decision is a match test on your own list — vendor-published match rates run far above what real CRM data returns, so sampling coverage before paying is the only honest benchmark.

Preview mode (`blur_company_data`) returns results with identifying fields blurred at zero credit cost, and adding `include_total_results` makes the same free request return the total match count — the mechanism the TheirStack app itself runs on. source
Search queries are free but return only record IDs, and the preview endpoint that retrieves a small set of partial data is billed at 20 credits per call — counting is free, showing anything to an end user is not. source
Pricing transparency

The real unit is cost per matched record — published prices, and whether no-match lookups bill credits, decide what the append actually costs at CRM scale.

Prices are public and self-serve — per-credit pricing with volume tiers on the pricing page, one credit per deduplicated record, and free re-fetches avoidable with delta filters — no contact-sales step to learn the cost. source
API plans are public and self-serve ($49–$5,000/month with per-record credit costs), but dataset pricing is a custom sales quote, part of the price list lives in the docs rather than on the pricing page, and every collect of a record bills again — no free re-fetch window is documented. source
API rate limits at scale

A full-CRM append is tens of thousands of lookups — the per-minute cap decides whether the refresh takes hours or weeks, so limits must be documented and raisable.

Rate limits are documented per tier with IETF-standard RateLimit headers on every response and sliding windows per user — and limits are raised on paid and enterprise plans. source
Plan-tiered limits are published (5 req/s on Mini and Starter, 10 on Pro, 20 on Growth, 50 on Premium, 100 on Scale and 100+ on Elite, with per-endpoint caps on agentic search), so limits rise by upgrading — but responses expose only an x-credits-remaining header, with no X-RateLimit-* or Retry-After backoff signal on 429s. source
API versioning and deprecation policy

The append is unattended code on a schedule — an unannounced breaking change upstream silently stops the refresh, so versioned endpoints and a deprecation window are part of the contract.

Endpoints are versioned (`/v1/`) and changes ship in a public product-updates changelog, but there is no published deprecation-window policy. source
The Multi-source Jobs API uses versioned /v2/ paths and the release notes are a monthly changelog that flags "[Breaking change]" entries, but there is no standing deprecation policy — sunset windows are announced ad hoc per change (the Employee API got 4 months). source
Detection from job postings

Hiring is the only surface that reports the internal stack, and the one that dates a technology to when the company was actively investing in it rather than when a tag was last served.

Every company ↔ technology signal is extracted from job postings, and each one links back to the postings that mention the technology. source
Technology signals are NLP-extracted from job postings, which together with company descriptions is the documented detection surface. source
Published support channels and response time

Once detections are written into the CRM, a systematic error propagates to every team reading them, and unwinding it needs someone at the vendor who can confirm whether the detection logic changed.

Support is a ticket system inside the product — categorised, status-tracked, and answered by the people who build it — reached from the app or documented at one page, with a typical reply in under 24 hours published as what happens in practice rather than as an SLA. A wrong record can be reported from the record itself or straight from the MCP server (`report_data_bug`, `request_technology`), and an open community Slack covers questions that are not tickets. source
Support is laddered on the pricing page — "Email" on Free through Pro, "Account manager" on Growth and Premium, "Account manager, Slack" on Scale and Elite — but no response time is committed to at any tier. source

Outbound on buying intent

Finding companies actively looking for a solution before they run a formal process, and getting in front of them first.

Our pick: TheirStack

Only one of the two sells the thing this use case needs: TheirStack has a buying-intent product that surfaces in-market companies while the signal is fresh; Coresignal sells the underlying records and leaves the intent layer for you to build — a data-science project, not a campaign.

Pick TheirStack if
  • You want a list of in-market companies this week, not a modeling project.
  • Sales acts on the intent directly — UI, exports, and one-time purchases fit a campaign push.
Pick Coresignal if
  • You are building your own intent models and want raw company, employee, and job records as the ingredient — their bulk datasets are made for that.

What is Coresignal?

Coresignal is a data provider focused on 3 kinds of datasets:

  • Jobs data
  • Company data
  • Employee data

Their strongest asset is people data: 895M+ employee profiles and 70M+ company profiles. Jobs are the smaller part of the offering, and they come from a handful of large sources — professional networks plus platforms like Indeed and Glassdoor — with company career pages and ATS boards only reaching the multi-source dataset. Cross-source deduplication is a property of that multi-source product: the cheaper base dataset, and the Base Jobs API their MCP server is wired to, still return the same posting several times.

A note on their volume figures: they advertise "500,000+ job listings added daily", but sustained since 2020 — the start of their jobs archive — that would be over 1B postings, more than twice the 468M+ they report (which implies closer to 200k/day). A separate page advertises 1.3M jobs a day for discovery, and a third says the 70M+ active postings are revisited every 24h. Four figures, four pages, and none of them defines its unit — unique postings, one row per source, or updates to existing rows — so treat absolute counts with care.

Coresignal's interface is API only and there is no way to explore the data visually. Fetching jobs is a two-step flow: search returns job IDs (free) and collect returns the actual record (1 credit per job). For volume there is Bulk Collect, which takes up to 10,000 IDs — or an Elasticsearch query directly — in a single request, so you are not limited to one call per job. The catch is that Bulk Collect is asynchronous: you submit the request, wait for Coresignal to generate the files, and then download and unzip them. The synchronous path, the one that answers inside the same request, still returns one job at a time.

There are no webhook subscriptions for jobs either. Webhooks exist, but they notify you that a bulk file is ready; change subscriptions that push updates as they happen are only available for employee data. Keeping a job database in sync means re-running searches yourself.

Pricing is a recurring monthly subscription with a single credit pool: jobs cost 1 credit, company and employee records 10–20. Below the $1,500/month Premium plan, unused credits reset every month; from Premium up they roll over for 3 months. There is no way to buy credits once for a one-off project.

What is TheirStack?

TheirStack is a data provider focused on 2 kinds of datasets:

  • Jobs data
  • Company data

TheirStack combines jobs data from multiple sources and deduplicates them. TheirStack has a free plan and has put a lot of effort into the developer experience and into making the product as self-service as possible. TheirStack's pricing is designed to support both customers starting out and bigger customers with higher usage needs. With a single API, TheirStack customers can fetch jobs data, making it easier to build integrations and estimate costs. TheirStack offers a UI that can be used to explore the data visually, export it, integrate with other sources and also works as an API playground to learn how to use the API.

Price comparison

Both products bill by credits, and on both a job posting costs 1 credit. The shapes differ in three ways that matter more than the headline price: our tiers step in smaller increments than theirs, our unused credits stay valid for 12 months instead of expiring at the end of the billing cycle, and our credits can also be bought one-time — Coresignal only sells monthly subscriptions.

This is what fetching jobs costs via API, month against month: the cheapest TheirStack monthly tier that covers the volume, against the cheapest Coresignal plan that covers it. Both columns are monthly subscriptions you can cancel at any time — the difference is what happens afterwards, and we come back to that below the table.

Number of jobsTheirStack, per month (see pricing)Coresignal, per month (see pricing)Cheaper
200Free, every month, foreverFree for 7 days only✅ TheirStack
1,500$49$49 (Mini, 2,500 credits)Tie
2,500$100$49 (Mini, 2,500 credits)✅ Coresignal
5,000$100$199 (Starter, 12,000 credits)✅ TheirStack
10,000$169$199 (Starter, 12,000 credits)✅ TheirStack
12,000$240$199 (Starter, 12,000 credits)✅ Coresignal
20,000$240$499 (Pro, 35,000 credits)✅ TheirStack
50,000$400$1,000 (Growth, 150,000 credits)✅ TheirStack
100,000$600$1,000 (Growth, 150,000 credits)✅ TheirStack
200,000$900$1,500 (Premium, 1M credits)✅ TheirStack
500,000$1,200$1,500 (Premium, 1M credits)✅ TheirStack
1,000,000$1,500$1,500 (Premium, 1M credits)Tie
2,000,000$2,300$3,000 (Scale, 4M credits)✅ TheirStack
4,000,000$5,500$3,000 (Scale, 4M credits)✅ Coresignal
10,000,000Custom (dataset)$5,000 (Elite, 10M credits)Talk to us

We are cheaper across most of the range, but not all of it, and it is worth being straight about where. Coresignal's plans come in large steps — 2,500, then 12,000, then 35,000, then 150,000 credits — while our tiers are finer-grained. That means we win comfortably in the middle of each of their steps and lose just above each threshold: at 2,500 jobs their Mini plan covers you for $49 while our next tier up is $100, and at exactly 12,000 their Starter is $199 against our $240. Up to 1,500 jobs a month the two cost the same $49; between 1,500 and 2,500 Coresignal's Mini is the cheaper way to buy job data. The other place they win is the top of the range: their Scale plan is $3,000 for 4M credits, where our next tier up is $5,500 for 5M — if you need several million jobs a month and nothing else, ask us about a dataset instead of the credit ladder.

Three things matter as much as the monthly number. First, Coresignal's plans are sized in credits, not jobs: a job is 1 credit, but a company or employee record is 10–20 and a contact enrichment is 10, so the moment your workload is not purely jobs, the same plan covers far fewer of them. Second, below the $1,500/month Premium plan the credits you don't spend disappear at the end of the month, whereas ours roll over and stay valid for 12 months — so a one-off pull or a bursty workload can buy TheirStack credits once (or subscribe for a single month and cancel) and keep spending them for a year, while the equivalent Coresignal plan has to be kept alive. Third, deduplication: on the plans where they don't merge across sources, some of the records you paid for are the same posting again.