Use case

What job postings reveal about the technologies a company is adopting

A website shows the tools that face visitors. Job postings name the data warehouse, the cloud platform and the finance system behind them. Five tests for a named tool, three queries and a worked example.

11 min read

Job postings reveal the technologies a company is adopting that its website never shows: the data warehouse behind its reporting, the cloud platform under its product, the finance system its accountants work in. This guide shows an analyst or a revenue operations lead how to read a named tool correctly, how to tell a system in use from one on its way in, and how to join the posting view to website detection on one company with a query.

What a job posting reveals about the technologies a company is adopting

A job posting names the software a role will work with, in the employer's own words and on the employer's own careers page. Read across a company's open roles, those names show which systems it runs, which it is bringing in and which teams work in them, including systems that leave no trace on a public website.

In its job openings survey, the US Bureau of Labor Statistics counts a job as open only if it meets three conditions: a specific position exists with work available for it, the job could start within 30 days, and the employer is actively recruiting workers from outside the establishment. Posting a notice on the internet is one of the recruiting steps it lists. A posting is that step made public, so read a tool it names as part of work the employer expects to staff soon.

The tools sit in prose. The schema.org vocabulary gives a job posting a skills property for the knowledge and abilities a role asks for. Google's guide to job posting markup lists five required properties: the date posted, the description, the hiring organisation, the job location and the title. It requires the description to represent the job completely, with responsibilities, qualifications and skills among its parts. So the tools are normally found in the description text, and the catalogue a dataset matches them against decides what you can count.

In Fokals data, Job Postings holds every role a company publishes, labelled by job function, seniority and ten role flags, with the tools named in it. The tools are matched from a curated catalogue of software, and a company's own products are left out of the tools it is taken to use.

Reading hiring data: skills and requirements in job postings as technology adoption signals

A tool listed under the skills or requirements of a job posting becomes a technology adoption signal once you read it in context: how many roles name it, which functions those roles sit in, whether the role builds the system or only uses it, and when the tool first appeared in the company's postings.

Five tests turn a mention into a reading. Each uses a field of Job Postings in the hiring dataset.

TestWhere to read itWhat it tells you
How many roles name itOpen postings naming the tool, against all open postingsOne posting is one role. A tool in a fifth of open roles is part of how the company works
Who names itThe job function label of each postingA warehouse named in data, engineering and finance roles has users across the company
Build or useThe technical depth score, from 0 to 3At 2 or 3 the role builds, configures, administers or designs systems, so the company runs the tool itself. At 1 the role works in it as a user
Alone or in a listThe other tools named in the same postingA posting that names three warehouses asks for a kind of experience. Count a tool when it is named alone or recurs across postings
New or establishedThe first date the tool was named, and the new-initiative, selects-tools and team-build role flagsA first mention in recent weeks, under one of those flags, dates an adoption in progress

A posting records an intention to hire, so every test reads direction. A count of postings is a floor for use: a fully staffed team names nothing.

Applied in order, the tests give a starting rule: the first row that fits wins. Set its thresholds on accounts whose stack you already know.

ReadingEvidence in the postings
Being adoptedFirst named within the last 60 days, in roles flagged as a new initiative, as selecting tools or as building a team
In useNamed in three or more open postings, or in two or more job functions, or in a posting already open when the company's roles were first observed
Named in passingAnything less, or a posting that lists alternatives of the same kind

Using job listings to track a company's tech stack adoption

To track tech stack adoption, turn a company's job listings into a dated series for each tool: the number of open postings that name it each day and the day it was first named. A tool that goes from no postings to several, in roles that build or select it, points to an adoption you can date.

Job Postings (job_postings) has one row for each posting, with the tools it names in technologies, its labels in labels and its dates. Hiring Activity (company_hiring_daily) has one row for each company and day, with the open postings naming each tool in tech_mentions. The first query builds the inventory: every tool a company's postings name, with its counts, job functions, builder roles, adoption flags and dates.

-- Postgres syntax. technologies is the JSON list of tools named in a posting,
-- labels the JSON object of its labels. Load both as jsonb.
select
  p.company_id,
  p.company,
  t.tool,
  count(*) filter (where p.closed_at is null)                        as open_postings_naming,
  count(*)                                                           as postings_naming,
  count(distinct p.labels ->> 'job_function')                        as job_functions,
  count(*) filter (where (p.labels ->> 'technical_depth')::int >= 2) as builder_roles,
  count(*) filter (where p.labels ->> 'new_initiative' = 'true'
                      or p.labels ->> 'selects_tools'  = 'true'
                      or p.labels ->> 'team_build'     = 'true')     as adoption_roles,
  bool_or(p.found_on_first_read)                                     as in_baseline,
  min(p.first_seen_at) filter (where not p.found_on_first_read)      as first_named_opening
from job_postings p
cross join lateral jsonb_array_elements_text(p.technologies) as t(tool)
group by p.company_id, p.company, t.tool
order by p.company_id, open_postings_naming desc;

in_baseline is true when a posting naming the tool was already open when the company's roles were first observed: read the tool as established. first_named_opening dates the first role seen to open. The tool values are the keys of tech_mentions, which the second query takes as a parameter.

-- Open postings naming one tool, day by day, for one company.
select
  day,
  open_postings,
  coalesce((tech_mentions ->> :tool)::int, 0) as naming_tool
from company_hiring_daily
where company_id = :company_id
order by day;

Chart naming_tool beside open_postings. The first day above zero after a run of zeros is the dated first mention, and the ratio of the two columns keeps a hiring surge from passing as a tool surge. Daily tables are written once, after the day closes, and never revised.

Website technology detection vs job postings as technographic data

Website technology detection and job postings are two sources of technographic data that see different parts of a company. Detection reads what a website makes public and dates the arrival and removal of each tool. Postings name the systems staff work in. They overlap on customer-facing tools and complement each other elsewhere.

QuestionWebsite detectionJob postings
What is readPage content, scripts, network requests, response headers and DNS recordsThe roles a company publishes on its careers pages
What it showsThe customer-facing stack: analytics, advertising, commerce, chat and marketing tools, and the services a domain's records revealThe systems staff work in: data, cloud, finance and HR platforms, and the customer-facing tools they operate
What a date meansFirst seen and last seen on the website, with adoption and removal as dated eventsThe day a role naming the tool opened, and the day it closed
Which companiesAny company with a websiteCompanies with open roles that name tools
When a tool goesA removal is recordedThe tool stops being named, which can also mean the team stopped hiring

In Fokals data the two sources are separate datasets on one company ID. Technology Stack, in the marketing stack dataset, holds the technologies detected on each company website with first-seen and last-seen dates, and Technology Changes records every adoption and removal as a dated event. What a Fokals technology row tells you explains each field of a row.

Limitations of website technology detection: Wappalyzer, BuiltWith and the tech stack in job postings

The limitation of website technology detection is its field of view: it reads what a site makes public. Wappalyzer's browser extension and BuiltWith each describe reading a site's pages. The part of a tech stack that never touches a public page, such as a data warehouse or a finance system, shows up in job postings that name it.

Wappalyzer says its browser extension inspects the HTML, scripts, cookies, network requests and certificates of the pages you visit, looking for technology fingerprints. BuiltWith's indexing policy says its system determines a website's technology profile by looking at the publicly visible code, from information anyone could find, and makes no attempt to log in or to reach restricted areas.

That is the strength of the method as much as its edge: the evidence is public and covers every company with a website. A detection shows presence on the website. Hiring signals supply the rest while a company is hiring, and a tool that appears in both sources is confirmed.

Which cloud provider or data warehouse a company uses: what technographic data shows

Technographic data shows the cloud provider or data warehouse a company uses through two kinds of evidence. Website detection shows who hosts and delivers the public site. Job postings name the cloud platform engineers build on and the warehouse analysts query. For the warehouse, postings carry evidence that a website seldom shows.

These systems are common and mostly internal. Eurostat's statistics on cloud computing in enterprises, from a survey of enterprises with at least 10 employees or self-employed persons, report that 52.74% of EU enterprises used paid cloud computing services in 2025. Among those users, 58.16% used cloud software for finance or accounting and 45.52% hosted their database in the cloud. A survey gives the share. Technographic data names the companies.

SystemWhat the website showsWhat postings showHow to read both
Cloud providerThe hosting and content delivery services behind the public siteThe platform named in engineering roles, such as AWS, Azure or Google CloudThe site's host and the product's cloud can differ. Take the platform that builder roles name
Data warehouseSeldom anything: a warehouse sends nothing to a visitor's browserSnowflake, Databricks and other warehouses named in data rolesBuilder roles show who runs it, analyst roles show who queries it
Finance and HR systemsSeldom anythingSAP, Workday and similar systems named in finance, operations and IT rolesNew-initiative roles date a roll-out

Job Postings labels the tool families a posting names or requires, among them Snowflake, Databricks, AWS, Azure, Google Cloud, SAP and Workday, so each row of the table is a filter on labels. The query below joins the two views on company_id, one row for each company: Technology Stack (company_technologies) beside the postings.

-- Postgres syntax. One row per company: website view beside posting view.
with site as (
  select
    company_id,
    count(distinct technology)          as technologies_on_website,
    count(distinct technology_category) as website_categories
  from company_technologies
  where missing_since is null
  group by company_id
),
roles as (
  select
    company_id,
    count(*)                                                         as open_postings,
    count(*) filter (where labels ->> 'tool_snowflake' = 'true')     as naming_snowflake,
    count(*) filter (where labels ->> 'tool_snowflake' = 'true'
                       and (labels ->> 'technical_depth')::int >= 2) as snowflake_builders,
    count(*) filter (where labels ->> 'tool_databricks' = 'true')    as naming_databricks,
    count(*) filter (where labels ->> 'tool_aws' = 'true')           as naming_aws,
    count(*) filter (where labels ->> 'tool_azure' = 'true')         as naming_azure,
    count(*) filter (where labels ->> 'tool_gcp' = 'true')           as naming_gcp,
    count(*) filter (where labels ->> 'tool_sap' = 'true')           as naming_sap,
    count(*) filter (where labels ->> 'tool_sap' = 'true'
                       and labels ->> 'new_initiative' = 'true')     as sap_new_initiative
  from job_postings
  where closed_at is null
  group by company_id
)
select
  coalesce(r.company_id, s.company_id) as company_id,
  s.technologies_on_website,
  s.website_categories,
  r.open_postings,
  r.naming_snowflake,
  round(100.0 * r.naming_snowflake / r.open_postings, 1) as snowflake_share_pct,
  r.snowflake_builders,
  r.naming_databricks,
  r.naming_aws,
  r.naming_azure,
  r.naming_gcp,
  r.naming_sap,
  r.sap_new_initiative
from roles r
full join site s on s.company_id = r.company_id;

A company with website columns and empty posting columns has no open roles on record, so the website view is the reading you have. For a tool both sides can see, such as a CRM, finding accounts by the technology they run builds the list from the website side.

Cloud provider and data warehouse detection in technographic data: BuiltWith, 6sense and others

Providers of technographic data differ in the evidence behind a cloud provider or data warehouse record. BuiltWith detects technologies on websites and lists hosting among them. 6sense documents website scans and job postings as sources. TheirStack reports the technologies detected in job postings. Ask each provider which evidence a record rests on.

ProviderThe evidence its own documentation describes
BuiltWithTechnologies detected on websites from publicly visible code. Its home page lists hosting beside analytics, advertising and CMS among the technologies it covers
6sensePassive sources that interpret public information such as job postings, and active sources that scan HTML source, JavaScript, known subdomain patterns and name-server and mail records
TheirStackJob postings. For each technology its guide shows a confidence level, the number of postings that mention it and the dates it was first and last detected
FokalsTwo datasets on one company ID: Technology Stack, the technologies on each company website with first-seen and last-seen dates, and the tools named in Job Postings

Three questions settle what such a record means, whoever supplies it.

  1. Which evidence does the record rest on, a page, a DNS record or a posting, and can you open it?
  2. What do its dates mean: first seen and last seen on a website, or the first and latest posting that named the tool?
  3. What happens when the evidence ends: is the record kept after the last posting closes, and for how long?

Run them on companies whose stack you know before comparing providers.

A worked example: Acme Robotics read from both views

Acme Robotics is an invented company, and every figure in this example is illustrative.

Assumptions:

  • Acme Robotics has 40 open postings on the day of the query.
  • 9 of them name Snowflake. 6 of the 9 have a technical depth of 2 or 3 and 3 have a depth of 1, across four job functions.
  • 12 name AWS. 1 names Azure, in a role with none of the adoption flags.
  • Snowflake and AWS were named in postings already open when the company's roles were first observed.
  • 3 name SAP. All 3 opened in the last 30 days and carry the new-initiative flag, and no earlier posting names SAP.
  • 2, in two job functions, name the marketing automation tool that Technology Stack also detects on the website.
  • Technology Stack lists 14 technologies on the website, among them analytics, advertising, chat and a content delivery network.

Each share is the count divided by the 40 open roles.

SystemPostings naming itShare of open rolesWebsite viewReading
Snowflake9, of which 6 builder roles9 / 40 = 22.5%No detectionIn use and run in-house
AWS1212 / 40 = 30.0%No detectionIn use, the primary cloud
Azure11 / 40 = 2.5%No detectionNamed in passing: open the posting
SAP3, all new-initiative roles3 / 40 = 7.5%No detectionBeing adopted
Marketing automation tool22 / 40 = 5.0%Detected, with its first-seen dateConfirmed from both views

A posting can name several tools, so the counts need not add up to 40. Three readings follow.

  • The cloud. The content delivery network on the website says who delivers the public site. The cloud under the product is AWS: 12 roles against 1 for Azure.
  • The warehouse. Snowflake is operated in-house, because 6 of the 9 roles that name it, or 66.7%, build or administer systems.
  • The dated event. SAP fits the first row of the starting rule. Three new-initiative roles in 30 days, with no earlier mention, date a roll-out.

Timing outreach with hiring signals turns the third reading into a sales play, and reading technology adoption as a signal of vendor revenue counts it across many companies.

How the two views are delivered

Both views arrive on one company ID, by REST API or as bulk files, and the hiring dataset is refreshed daily. Every observation is dated, and the data dictionary defines each field used in the queries above.

Frequently asked questions

Can job postings show which data warehouse or cloud provider a company uses?

Yes. A data warehouse and a cloud platform are named in the roles that build on them, such as data engineering and platform engineering roles, and in the analyst roles that query them. Count the open postings that name the tool, check that some of those roles build or administer it, and note the date it was first named. Website detection adds the hosting and delivery services behind the public site, which is a separate fact about the same company.

Does a tool named in a job posting mean the company already uses it?

It means the role will work with it. As a starting rule, a tool named across several open roles, in more than one job function, is in use. A tool first named in recent weeks, in roles flagged as a new initiative or as selecting tools, is being adopted. A tool named once, or listed beside alternatives of the same kind, describes the experience wanted. Read the count, the functions and the dates together before you decide.

What does website technology detection miss that job postings show?

Website detection reads what a site makes public: page content, scripts, network requests, response headers and DNS records. Systems that staff use behind a sign-in, such as a data warehouse, a finance system or an HR system, normally put nothing on a public page. Job postings name those systems in their requirements, so the two sources together describe the customer-facing stack and the internal one.

How do I combine website technology detection with job postings data?

Key both on one company identifier. Build one row for each company, with the technologies detected on its website on one side and the tools named in its open postings on the other, then sort each tool into three groups: detected and named, named only, detected only. The named-only group is where internal systems appear. In Fokals data, Technology Stack and Job Postings share one company ID, so the join is on a single key.

How long does a technology signal from a job posting stay valid?

For as long as the posting is open, and as history afterwards. Each posting carries the date it was first observed and the date it closed, so a count of open postings naming a tool describes today, and the same count on earlier days gives the trend. A tool that stops being named may still be in use, because the team may simply have finished hiring. Where the tool faces the web, a removal recorded on the website confirms that it has gone.

The queries and code on this page are examples to adapt. Test them in your own environment before you rely on them.

What this page says about the products it names was checked against their public documentation on 7 October 2026. Product and company names are trademarks of their owners. Fokals is not affiliated with them or endorsed by them.