Use case

Signs in sales job postings that a company is moving upmarket

A first enterprise role is a reading and never a verdict. Here are the signs in segment, role mix, pay and deal terms, the innocent explanation for each, and the test that tells the two apart.

11 min read

A company moving upmarket tends to show it in its sales job postings. The segment its roles name shifts, new roles appear around the account executive, and the pay, quota and deal size it advertises move. This guide shows how to read those signs of a turn to enterprise customers week by week, what else could explain each one, and the test that separates a shift from noise. It is written for an analyst following a company and for a competitor watching a rival.

What signs in sales job postings show a company moving upmarket to enterprise?

Six signs in a company's sales job postings point to a move upmarket: enterprise-segment roles appear and grow in number, sales engineers and sales leaders join the role mix, advertised on-target earnings rise for the same role, postings state larger deals and longer sales cycles, stated quotas grow, and the experience asked for rises. Each needs a test.

Three datasets of the hiring dataset carry them. Sales Team Metrics (company_sales_weekly) has one row per company and closed week: open sales postings by role and by segment, the median advertised base pay and on-target earnings by role, the count of postings that state a quota, and an event in the week of the company's first enterprise-segment sales posting. Job Postings (job_postings) holds each posting with its sales labels and its sales facts, which are what the employer states about pay, quota, deal size and sales cycle. Sales Pay Benchmarks (sales_pay_benchmarks) give the quartiles advertised across companies by role and country. The guide to tracking sales team build-out covers the size of the team. This one covers whom the team is built to sell to.

SignWhere it showsWhat else could explain itThe test
Enterprise-segment roles appear, then growupmarket, by_segmentOne exploratory hire; small-business roles closing while one enterprise role stays openThe enterprise count rises over several weeks, on more than one posting
Sales engineers and sales leaders join the mixby_roleA more technical product; a reorganisation; a role reopenedThe new postings carry the enterprise segment, and no product launch dates from the same weeks
Advertised on-target earnings rise for the same rolemedian_ote_usdA market-wide rise; a new country; an exchange rate; a pay range a law newly requiresThe benchmark for the same role and country over the same weeks, with the location held fixed
Larger deals and longer cycles are stateddeal_size_usd, sales_cycle_monthsA first posting to state either; a price riseThe count of postings behind each median
Stated quotas growquota_usd, with quota_stated for the postings behind itA first posting to state one; one posting with a large targetThe count of postings that state a quota, and each quota as written
More experience is asked forexperience_years_min, the seniority labelOne senior hireA median over several postings of one role

No row settles the matter alone. A sign that survives its test is a reason to look for the next one, and a move upmarket is a reading on which several signs agree.

How to tell from job descriptions that a company is shifting to enterprise sales

Compare the company with its own earlier weeks. Split its sales postings into an earlier and a later period, then compare the enterprise share of postings that name a segment, the mix of roles, and the pay, deal size and quota the job descriptions state. A shift to enterprise sales shows in several at once.

The query below reads Sales Team Metrics for one company between two weeks you choose and sets the market median for the role beside the company's own. The enterprise share is taken over postings whose segment is smb, mid_market or enterprise, so a posting labelled unspecified stays out of the denominator. Every date and the country are parameters, and ALL gives the benchmark for every country together. The queries on this page cast JSON cells with ::json and assume empty cells were loaded as null.

with w as (
  select
    week_start,
    open_sales,
    coalesce((by_segment::json ->> 'enterprise')::int, 0)     as enterprise,
    coalesce((by_segment::json ->> 'mid_market')::int, 0)     as mid_market,
    coalesce((by_segment::json ->> 'smb')::int, 0)            as smb,
    coalesce((by_role::json ->> 'account_executive')::int, 0) as account_executives,
    coalesce((by_role::json ->> 'sales_engineer')::int, 0)    as sales_engineers,
    coalesce((by_role::json ->> 'sales_leadership')::int, 0)  as sales_leaders,
    (median_ote_usd::json ->> 'account_executive')::numeric   as ae_median_ote_usd,
    quota_stated,
    upmarket
  from company_sales_weekly
  where company_id = :company_id
    and week_start between :first_week and :last_week
)
select
  w.*,
  round(100.0 * enterprise / nullif(enterprise + mid_market + smb, 0), 1) as enterprise_share_pct,
  b.ote_median_usd as market_ae_median_ote_usd
from w
left join sales_pay_benchmarks b
  on  b.week_start = w.week_start
  and b.role = 'account_executive'
  and b.country = :country
order by w.week_start;

Read the counts before the share. A share rises when small-business postings close as surely as when enterprise ones open, and only the second is the sign. The upmarket event is set once, in the week of the first enterprise-segment posting of a company that already had sales postings on record, so it dates the start of the reading. The weeks after it show whether the count holds and grows.

Enterprise account executive and strategic accounts job postings at a SaaS company

A posting titled enterprise account executive or strategic accounts shows that a SaaS company has opened a role under that name. A title is the employer's own wording, so whether the role sells to larger customers is a separate question. Read the title beside the segment label and the deal terms the posting states.

Job Postings keeps the title as published and, apart from it, the segment label on the posting. The query below sets one against the other for a company's account executive postings. The pattern is a parameter, so you choose the words to match.

select
  title ilike :title_pattern                                                 as title_matches,
  sales_labels::json ->> 'segment'                                           as segment,
  count(*)                                                                   as postings,
  count(*) filter (where sales_facts::json ->> 'deal_size_usd' is not null)  as state_deal_size
from job_postings
where company_id = :company_id
  and sales_labels::json ->> 'role' = 'account_executive'
group by 1, 2
order by 1, 2;

The reading is strongest where title and label agree and the posting states a deal size. Where a title matches and the segment is unspecified, open the posting at its url and read it.

In the wording of a sales job posting, the upmarket signals are a stated annual contract value (ACV) or deal size, a larger quota, a longer sales cycle, and duties that name the buyer's procurement, security and legal teams. The first three are figures you can compare across postings. The duties are text to read in the posting itself.

The sales facts of Job Postings hold the figures for every posting that states them: the average deal size as written and in US dollars, the quota with its amount, currency and period, the sales cycle in months, and the pay terms. Each is the employer's statement in the posting, a target or a typical deal. The query takes the account executive postings a company opened between two dates and gives, by period and segment, the medians and the number of postings that state a deal size or a quota.

select
  case when first_seen_at < :split_date then 'earlier' else 'later' end                              as period,
  sales_labels::json ->> 'segment'                                                                   as segment,
  count(*)                                                                                           as postings,
  count(*) filter (where sales_facts::json ->> 'deal_size_usd' is not null)                          as state_deal_size,
  percentile_cont(0.5) within group (order by (sales_facts::json ->> 'deal_size_usd')::numeric)      as deal_size_median_usd,
  percentile_cont(0.5) within group (order by (sales_facts::json ->> 'sales_cycle_months')::numeric) as cycle_months_median,
  count(*) filter (where sales_facts::json ->> 'quota_usd' is not null)                              as state_quota,
  percentile_cont(0.5) within group (order by (sales_facts::json ->> 'quota_usd')::numeric)          as quota_median_usd,
  percentile_cont(0.5) within group (order by experience_years_min)                                  as experience_years_median
from job_postings
where company_id = :company_id
  and sales_labels::json ->> 'role' = 'account_executive'
  and not found_on_first_read
  and first_seen_at >= :from_date
  and first_seen_at <  :to_date
group by 1, 2
order by 1, 2;

Postings already open when the company was first observed are left out, because their first-seen date is not their opening date. Keep one row for each posting_id if you have loaded more than one export. Beside each quota median, read quota as written, with its amount, currency and period, which is the employer's own statement. Quota divided by deal size gives the number of average deals the quota implies, which falls when deals grow faster than targets. For procurement, security and legal wording, each row carries the posting's public url, so the duties are read at the source.

Reading the pay a posting states

Advertised pay moves for reasons that have nothing to do with the customer, and the first is a pay transparency law that covers the role. The California Labor Commissioner's Office states that an employer with 15 or more employees must include the pay scale in any job posting, and reads this as covering a position that may ever be filled in California, in person or remotely. It defines the pay scale as a good-faith estimate of the salary or hourly wage range the employer reasonably expects to pay on hire, and says compensation on top of a salary or hourly wage need not be posted. Where the wage is based on commission, a good-faith estimate of the expected commission range must be included. New York State's Department of Labor says the state's businesses with four or more employees must list compensation ranges for designated job opportunities, promotions and transfers, that a range can be the minimum and maximum annual salary or hourly pay, and that employers must state clearly if a position is commission-based.

A range on a sales posting can therefore be the base alone, and pay can appear on a company's postings for the first time because it advertised a role in a place with such a rule. Sales Team Metrics counts a plain salary range with no on-target earnings stated as base, which keeps the two medians apart. Pay is held on one yearly US-dollar scale at a reference exchange rate, so a role advertised in another currency moves with that rate.

Three tests follow. Compare the median on-target earnings with the company's own earlier weeks for the same role. Compare its change with the change in Sales Pay Benchmarks for the same role and country, so that a market-wide move drops out. Hold the place fixed, using the country and the locations of each posting, before you read a rise as a change of plan. The guide to benchmarking sales compensation covers the benchmark itself.

Worked example: Acme Robotics across two periods

Acme Robotics is an invented company and the example is illustrative. Every figure is an assumption chosen to show the arithmetic.

Assumptions:

  • Two weeks of Sales Team Metrics are compared, an earlier and a later one, with the account executive postings Acme opened in the period before each.
  • All of Acme's account executive postings are in one country, and the benchmark is the row for that country.
  • Quotas are stated by year in both periods, and money is in US dollars.
MeasureEarlierLater
Open sales postings2424
Small-business, mid-market, enterprise9, 10, 16, 8, 6
Unspecified segment44
Account executive, sales engineer, sales leadership12, 1, 012, 4, 1
Other sales roles117
Median advertised on-target earnings, account executive150,000195,000
Benchmark median for the role and country140,000147,000
Account executive postings opened, and those stating a deal size10, 29, 6
Median stated deal size40,000150,000
Median stated quota800,0001,500,000
Median stated sales cycle, months26

The working:

  1. Segment. The enterprise share of postings that name a segment is 1 of 20, or 5.0%, then 6 of 20, or 30.0%. That is a rise of 25 points on a flat total of 24 open sales postings, and the enterprise count itself rises from 1 to 6.
  2. Roles. Sales engineer postings go from 1 for every 12 account executive postings to 4 for every 12, which is 1 for every 3, and a first sales leadership posting opens.
  3. Pay. Acme's median rises by 45,000, or 30.0%, while the benchmark rises by 7,000, or 5.0%. Acme moves from 7.1% above the market median (150,000 over 140,000) to 32.7% above it (195,000 over 147,000).
  4. Deal terms. The median deal size rises from 40,000 to 150,000 and the median quota from 800,000 to 1,500,000, so the quota implies 20 average deals a year in the earlier period and 10 in the later one.

Four readings agree, and two have met their tests: the share rose on a rising count, and the 30.0% pay rise is six times the market's 5.0% with the country fixed by assumption. The new roles came with the segment change, and the segment on those postings is the test still to run. The weakest is deal size, where the earlier median rests on 2 postings. The reading that fits is that Acme advertises roles aimed at larger customers than before. Whether it wins those customers is a question for its later disclosures.

The counter-case uses the same table. Had small-business postings fallen from 9 to none and mid-market postings from 10 to 9 while the one enterprise posting stayed open, the share would have doubled, from 5.0% to 10.0% (1 of 10), without one new enterprise posting.

Confirming the reading outside the postings

Postings say what a company advertises. Other records say whether the rest of the company moved with them.

  • The role mix. The US Bureau of Labor Statistics describes sales engineers as selling business products or services that require technical expertise, with software among its examples. More of those postings point to a more technical sale, which a larger customer or a more complex product would each explain, so read the segment on those postings.
  • The website. A contact-sales or demo page added to a site points to a change in how the company expects to be bought. The guide to detecting go-to-market changes reads those events.
  • Announcements. Company News dates a leadership change and gives the role concerned, such as the revenue, sales or commercial leader.

For most public companies in the United States, the annual report on Form 10-K is the company's own account. The Office of Investor Education and Advocacy of the Securities and Exchange Commission says Item 1 of Form 10-K has to describe the business, including its main products and services, its subsidiaries and the markets it operates in. The rule behind the item, Item 101(c)(1) of Regulation S-K, focuses the description on the dominant segment or on each reportable segment for which the financial statements give figures, requires only what is material to an understanding of the business as a whole, and names dependence on customers, governmental customers among them, as a matter the description may include. A reportable segment there is a part of the business, a different thing from the customer segment a sales posting names.

That paragraph, in the edition of 1 April 2025, mentions customers only as a dependence the description may cover, and a breakdown of customers by size is not among the matters it lists. A company that reports enterprise customers, or customers above a contract value, does so under its own definition. Read the definition, and check that it is the same from one year to the next before you set it beside the postings.

How to read these signs

  • A sign is a reading. It records what a company advertises, and the strategy is the company's to state. Treat each sign as a question to put to the next source.
  • A posting records an intention to hire. A role leaves the board filled or withdrawn, so read openings and closings over several weeks.
  • Role and segment are labels. A label means the same thing every week, and an empty value reads as not known. One label is evidence and a run of them is a pattern.
  • Sales facts are the employer's statement. A posting that states a figure has it and the rest carry none, so give the count of postings behind every median.
  • Each week is written once. Sales Team Metrics is written after the week closes and never revised, which makes a comparison with earlier weeks a point-in-time one. A company's first observation sets the baseline.
  • The subject is the company. Work at the level of the posting and the company: the role advertised, the terms stated, the week it opened. Collect nothing about any person a posting names.

Every field used here is defined in the data dictionary.

Frequently asked questions

What are the signs in job postings that a company is moving upmarket to enterprise sales?

Enterprise-segment sales roles appear and grow in number, sales engineers and sales leaders join the role mix, advertised on-target earnings rise for the same role faster than the market, and postings state larger deals, larger quotas and longer sales cycles. Each sign has an innocent explanation, so test it against the company's own earlier weeks and look for several that agree.

Does one enterprise account executive posting mean a company is moving upmarket?

One posting shows that a role under that name was opened. It dates the start of a reading and settles nothing alone: it may be a single exploratory hire. Watch whether the count of enterprise-segment postings grows over the following weeks, whether sales engineers and sales leaders follow, and whether the postings state larger deals than the company's earlier ones did.

What does a stated ACV or quota in a sales job posting tell you?

It tells you what the employer advertises about the deal: a typical contract value and the target a seller is given. Compared with the same company's earlier postings for the same role, a larger deal size with a longer sales cycle points to larger customers. Check the period of each quota first, because a quarterly and a yearly quota are different figures.

Why would a company's advertised sales pay rise without a move upmarket?

Advertised pay for a role can rise with the whole market, with a new country, with an exchange rate, or because a pay transparency rule that covers the role brings ranges onto postings that carried none. Compare the company's change with Sales Pay Benchmarks for the same role and country over the same weeks, and hold the location fixed.

How can a move upmarket be confirmed for a listed company?

Set the postings beside what the company itself reports. Its annual report describes the business and the markets it operates in, and a company that reports a count of larger customers does so under a definition it chooses. Read that definition, check that it has not changed between years, and compare its direction with the direction of the sales postings.

How many weeks should a change in sales postings last before you read it as a shift?

That is your own standard of evidence. A single week can turn on one posting, so compare two periods of several weeks each, read counts beside shares, and set a floor on the number of postings behind any median before you use it. A shift that holds across segment, role mix and deal terms over a full period carries more weight than a sharp move in one.

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.