RefolkCandidates
ReferenceApplying at volume

The Job-Opening Source Decoder, Type by Type

You will be able to pick the right source type for any role and know its freshness, duplication, recycle behavior, and ghost-job exposure before you spend time on it.

17 min readLast reviewed August 10, 2026Read as Markdown

You have limited hours to hunt, and most "best job sites" lists rank named brands without telling you how each behaves. This guide decodes the underlying source types instead: direct-hosting boards, indexing aggregators, employer ATS career pages, staffing portals, network feeds, association and niche boards, government portals, and the structured-data-fed search experience. Read it as a lookup document. Jump to the type you are about to open, learn what it actually lists, how fresh it is, whether it recycles or duplicates roles, and how it misleads, then get back to applying.

What are the source types, and what does each actually list?

There are eight source types, and each one either controls a listing or merely points at it. That single distinction predicts freshness, duplication, and ghost-job exposure better than any brand name.

A job board hosts listings employers post directly and owns the apply flow. An aggregator hosts nothing: it collects and indexes jobs from other sites and usually sends you to the source to apply. Everything downstream follows from that.

  • Direct-hosting board. Employers post listings on the board itself. The board owns the apply flow and the expiry clock. Listings typically expire after 30 days.
  • Indexing aggregator. Collects and indexes jobs from other sites, redirects you to apply. Introduces latency and duplication.
  • Employer ATS / career page. The employer's own system, the origin of most listings. Goes live immediately.
  • Staffing portal. An agency's board of roles it is placing for clients. Heavy repost and duplication load.
  • Network feed. A social platform (LinkedIn is the type) that crawls career pages and boards. Lags the source.
  • Association / niche board. A professional body or mission-driven site listing field-specific roles. Often members-only.
  • Government portal. Public-sector openings. Highest ghost-job rate of any type.
  • Structured-data-fed search. The jobs experience Google builds from JobPosting schema on employer pages. Only as fresh, and as expired, as the underlying markup.

Latency: how fast does a role reach each source type?

Career-page systems go live immediately, and every other type lags behind them. The lag ranges from minutes, when an aggregator receives a direct feed, to one to three days when it crawls a career page.

The mechanism matters more than the average. When a job is pushed via an ATS feed or posted directly on an aggregator, it can appear within minutes to a few hours. When that same aggregator discovers a job by crawling the employer's public careers page, indexing usually takes one to three days. One ATS vendor documents that Indeed imports offers four times a day, and it can take up to six hours after a career-site post before it appears. For a network feed, it can take up to 24 hours after a role goes live on a company's career page, and often longer for crawled listings.

Source typeTime from role live to visible
Employer ATS / career pageImmediate
Aggregator via direct feed / ATS pushMinutes to hours
Aggregator via crawl of career page1 to 3 days
LinkedIn (crawled)Up to 24h, often longer

This latency is not a curiosity. Application volume front-loads hard: Ashby's talent data shows the first week of a posting generates two to two and a half times the application volume of any later week. If you rely on a crawled aggregator that trails the source by one to three days, you enter the queue after the pile has already formed.

2 to 2.5x
Application volume in a posting's first week versus any later week
A crawled aggregator that lags 1 to 3 days puts you into the queue after the front-loaded surge.

For competitive roles, this is why freshness-first beats reach-first. Aggregators win on breadth, but breadth is worthless if you arrive late. Check the origin - the career page - and only fall back to aggregators for discovery of employers you did not already know about.

How a role travels from origin to your screen

  1. Career page / ATS
    Role goes live immediately, before any external system knows
  2. Direct feed push
    Aggregator receives it within minutes to hours
  3. Crawl discovery
    Aggregator or Google finds it 1 to 3 days later
  4. Network feed
    LinkedIn shows it up to 24h later, often longer
  5. Your search
    You see whichever copy your source last refreshed
A role is fresh at the career page and progressively staler at each downstream layer.

Deduplication: why one role shows up three to five times

Aggregators merge listings with deduplication algorithms that compare job titles, company names, locations, and descriptions. They do this imperfectly, so the same opening routinely appears three to five times with different titles and salary claims, and your job is to collapse them yourself.

Different platforms use different keys. Indeed identifies duplicates using the location and the job title, and for similar titles across multiple locations it picks one job to show and hides the rest. Stronger systems normalize more fields: Lightcast documents a two-step method using normalized job title, company, and location checked across 60 days of data, which deduplicates up to 80% of all jobs it collects.

The reason naive matching fails is worth internalizing. Textkernel research found true duplicate job ads can have as low as 37% text similarity. So a system that matches on title plus company alone either hides genuinely distinct roles or leaves phantom duplicates. Robust systems use URL normalization, employer-name matching, and semantic similarity, or a composite of normalized company identity, embedding similarity, location proximity, and posting date.

Match on company, location, and description, not title, because true duplicates can share as little as 37 percent of their text.

This is why the same role reads differently per site. When you triangulate salary or requirements across listings, you may be reading two rewrites of one opening, not two data points. Collapse first, then compare. A candidate matching manually on description plus company plus location outperforms weak platform deduplication, and it takes about three minutes per suspected cluster.

Staffing portals make this worse. In Refolk's index, US staffing-side recruiters vastly outnumber in-house talent teams, so a large share of listings originate from agencies that rewrite and repost the same client role repeatedly. Title-plus-company matching misses staffing-agency reposts by design, because the agency name is not the employer name.

SegmentCountDerived ratio
US staffing-side recruiters94,2602.9x UK staffing
UK staffing-side recruiters32,367-
US in-house Talent Acquisition2,612~9.3x UK TA
UK in-house Talent Acquisition280-

US staffing recruiters outnumber US in-house talent acquisition roughly 36 to 1 (94,260 versus 2,612; indicative, since title sets differ). Read that as a warning about who is behind most listings: intermediaries, whose incentive is volume, not your pipeline hygiene.

Ghost and stale roles: how exposed is each source type?

Ghost jobs - postings with no current intent to hire - run somewhere between roughly one in five and one in three overall, and the exact figure depends entirely on the measurement method. Do not treat any single headline number as the truth; treat it as one lens.

Four methods give four numbers, and they measure different things. ATS platform data sets a floor. A 30-day heuristic on network-feed listings runs higher. Employer-admission surveys run higher still. The outcome-gap method, comparing openings to hires, lands in between and stays there.

MethodFigureNamed study
ATS platform data18 to 22%Greenhouse
LinkedIn 30-day heuristic27.4% (US)ResumeUp.AI
Employer-admission survey~1 in 3 employersClarify Capital (n=1,000)
JOLTS outcome-gap28 to 32% ongoing; 2.2M gap June 2025BLS via Forbes

Read the table this way. Greenhouse, an ATS, reported 18% to 22% of jobs on its site were ghost jobs - that is the platform floor. ResumeUp.AI analyzed network-feed listings and found 27.4% of US listings are likely ghosts, treating anything posted more than 30 days ago as likely ghost. LiveCareer surveyed 918 HR professionals in March 2025: 45% said their employer posts ghost jobs "regularly" and 48% "occasionally." Clarify Capital's survey of 1,000 employers found nearly 1 in 3 admit posting jobs with no current intent to hire. And the outcome gap is concrete: in June 2025, employers reported 7.4 million openings but made only 5.2 million hires, a gap of more than 2.2 million.

Sector changes the odds sharply. Government roles carry the highest ghost-job rate at about 60%. In marketing and advertising, 87.5% of professionals report encountering phantom listings, the highest across surveyed industries. So the same "apply" button carries very different expected value depending on the portal and the field behind it.

Recycling and auto-renew: reading the date stamp correctly

The posting date is the single most misleading field on any listing, because it resets every time a role is reposted. On most job boards, listings expire automatically after 30 days, and many boards and ATS tools recycle listings every 30 to 60 days unless manually closed.

That recycling creates the appearance of a "new" posting when the role has been open continuously. The "posted 3 days ago" stamp resets with every repost, so the tell is the date the job first appeared, not the current stamp. Craigslist reposts, for example, run 30 days as a copy with a new post ID, and Indeed free posts stay active up to 30 days or until a performance threshold.

The repost count is your hiring-intent gauge. Use this reading:

  • Zero to one cycle. Normal. A single refresh around the 30-day mark is routine housekeeping.
  • Two cycles. A struggling search. The role is real but the employer is not converting applicants.
  • Four or five cycles, unchanged. Behaving like a ghost job. The listing exists to collect resumes, not to fill a seat.

One type breaks the pattern: LinkedIn does not automatically repost. When a post's duration ends, typically after 30 days, it becomes inactive and requires manual reposting. So on a network feed, a fresh stamp is more trustworthy than on a board that auto-renews - but crawled listings there still carry the source's own reset date.

The structured-data layer: why Google-for-Jobs shows zombies

The structured-data-fed search experience is only as fresh, and as expired, as the JobPosting markup on the employer's page. It surfaces roles that are already filled when that markup is wrong, so treat it as a discovery layer that always needs verification at the source.

Google's documentation lists the required properties: title, description, datePosted, validThrough, jobLocation with an address, and hiringOrganization with a name and logo. A single missing required field can prevent the posting from displaying at all. The failure that matters to you is the opposite one: a job can still appear in the jobs experience after it expires, usually because the validThrough property is missing or is not set to a past date, or because the page is still live.

Backdating is prohibited but not always caught. Repeatedly resetting datePosted to appear "fresh" violates Google's guidelines, which is the same auto-refresh dishonesty you see on boards, expressed in schema. When a structured-data result looks current, open the employer's career page and confirm the role is still listed there. If the career page does not show it, you are looking at a zombie.

The freshness stack, most trustworthy on top

  1. Employer ATS / career page
    The origin; immediate, controls its own expiry
  2. Direct-feed aggregator
    Near-source; minutes to hours behind
  3. Crawled aggregator / structured-data search
    1 to 3 days behind; inherits stale markup
  4. Network feed
    Up to 24h behind, often longer; manual repost only
Trust decreases as you move down from the origin to the copies that inherit its errors.

The procedure: routing one role to the right source

Work from freshest to broadest, reading the real age at each stop. This is the routine to run for each company or role you care about; the first six steps take under fifteen minutes per company, and the last is a one-time setup.

Decode and route a role in under 15 minutes

  1. Classify the source before you spend time
    Decide whether the site hosts listings directly, collects and redirects, is an employer ATS page, a staffing portal, a network feed, an association or niche board, or a government portal. Done when you know whether the site controls the listing or merely points to it.
  2. Go to the freshest layer first
    Because company career systems go live before LinkedIn knows a job exists, check the employer ATS or career page ahead of aggregators. Done when you are seeing the source, not a lagged copy.
  3. Read the real age, not the stamp
    Find the first-appearance date rather than the reset "posted X days ago" stamp. Done when you can tell a genuinely new role from a recycled one.
  4. Check the repost count
    One repost near 30 days is a refresh; twice suggests a struggling search; four or five unchanged cycles behaves like a ghost job. Done when you have a read on hiring intent.
  5. Deduplicate across sources yourself
    The same role appears three to five times with different titles and salary claims, so match on company plus location plus description, not title. Done when your pipeline reflects unique openings.
  6. Sector- and source-risk adjust
    Down-weight government portals and marketing roles for ghost exposure, and treat aggregator freshness as 1 to 3 days behind the source. Done when your confidence per listing reflects its source type.
  7. Add niche and association boards for your field
    Run the field-plus-"professional association" search and build a monitored list of field-specific sources. Done when you have niche boards most seekers never check.

Sources disagree on whether to lead with aggregators for reach or career pages for freshness. Freshness-first is correct for competitive roles, given the 24-to-72-hour aggregator lag and the front-loaded application curve. When you use Refolk to tailor each application, the bottleneck moves from writing to sourcing, which makes this routing routine the highest-leverage part of your day.

Failure modes: how each read goes wrong

Every signal in this guide has a false positive, and the failures cluster around the date stamp and duplicate inflation. Here is each one with the check that clears it.

  • Repost read as rejection. You see your role re-listed after an interview and assume you lost. Many boards and ATS tools recycle every 30 to 60 days, so a repost can be routine. Check the first-appearance date and what text actually changed before you conclude anything.
  • Fresh stamp hides an old search. A "3-day-old" listing looks current. The posted date resets with every repost, so find when it first appeared, not when it was last refreshed.
  • Duplicate inflation. You count the same role three to five times and overstate your pipeline. Match on company plus location plus description, not title, since duplicates can share as little as 37% text similarity.
  • Aggregator freshness illusion. You trust an aggregator as current. It may be one to three days behind the source when discovered by crawl. Verify on the career page.
  • Schema-driven zombie listings. A structured-data result points to a filled role. A missing or non-past validThrough, or a still-live page, keeps it in the jobs experience. Confirm on the employer's own page.
  • Sector blindness. You treat all portals equally. Government sits near a 60% ghost rate against lower private-sector norms; weight your effort accordingly.
  • Members-only association gaps. You assume your field has no niche board because you cannot see one. Association job sections often require membership for access, so the board may exist behind a login.

Building your niche and association layer

Most seekers never check field-specific boards, which is exactly why they surface roles the aggregators bury under duplicates. The discovery procedure is repeatable and takes about thirty minutes once.

Search the name of your field plus "professional association," then search your field plus "jobs" while skipping the two largest general boards to see what else appears. Professional associations often run excellent niche boards, and mission-driven organizations run their own. Then combine at least one association-specific board, one mission-driven niche board, and one broader source for reach, so you cover both precision and breadth.

Niche-board discovery searches
"<your field> professional association"
"<your field> jobs" -indeed -monster
American (journalism OR reporting) association
("human resources" OR "talent management") association hospital Boston
<your field> (society OR institute OR guild) careers

Replace the field terms with your own; keep the OR groups so variants surface.

Once you have candidate boards, apply the same decoder: are they hosting or pointing, how fresh, how often do they recycle. Association boards tend to recycle less aggressively than general boards because they serve members rather than ad revenue, but confirm rather than assume. The one gap to expect is access: the jobs section may sit behind membership.

If your field is served heavily by intermediaries, the recruiter side is worth searching directly rather than waiting for their reposts. Refolk lets you find the specific people who post the roles you want.

Keep this current, and verify before you apply

The mechanisms in this guide are stable, but the specific latency windows and ghost rates drift, so re-check them against live behavior rather than memorizing figures. Run this verification before you commit an hour to any source.

Verify before you call a source worth your time

  • I confirmed whether this site hosts the listing or only points to it
  • I checked the employer's career page before trusting any aggregator copy
  • I found the first-appearance date, not the reset "posted X days ago" stamp
  • I counted reposts and read one as normal, two as struggling, four-plus as ghost-like
  • I collapsed duplicates on company plus location plus description, not title
  • I adjusted my confidence down for government portals and marketing roles
  • I added at least one association or niche board for my field

To keep the guide alive, spot-check one claim per week against what you actually see. Time a role from career-page go-live to its appearance on your favorite aggregator; if it beats one to three days, that source is running a direct feed and deserves more of your trust. Watch one recycled listing across two cycles and confirm the description did not change. And when a ghost-rate headline crosses your feed, ask which of the four methods produced it before you let it change your behavior. The decoder holds; the numbers are yours to re-measure.

Questions job seekers ask

Where can I find job openings not on LinkedIn?

Start with employer ATS and career pages, which go live immediately and often before LinkedIn crawls them. Then add association and niche boards for your field by searching your field plus 'professional association.' Aggregators that index career pages directly, and government portals, surface roles LinkedIn may not carry. LinkedIn is a network feed that crawls elsewhere, so it is rarely the freshest layer for a competitive role.

What is the difference between a job board and an aggregator?

A job board hosts listings employers post directly and owns the apply flow. An aggregator does not host anything; it collects and indexes jobs from other sites and usually sends you to the source to apply. The practical consequence is latency and duplication: an aggregator that crawls career pages can lag one to three days behind the source and shows the same role multiple times, while the board or career page it copied is already current.

How fresh are aggregator job listings really?

It depends on how the aggregator got the job. Via a direct feed or ATS push, a posting can appear within minutes to a few hours. Via crawling an employer's public careers page, it usually takes one to three days to become visible. One ATS vendor notes Indeed imports four times a day, up to six hours from a career-site post. Always verify freshness on the career page itself.

How do I spot a recycled or duplicate job posting?

For recycling, ignore the current 'posted X days ago' stamp because it resets on every repost, and find when the role first appeared; four or five unchanged cycles behaves like a ghost job. For duplicates, match on company plus location plus description rather than title, since true duplicates can share as little as 37% text similarity and appear three to five times across sources with different titles and salary claims.

Is a reposted job a sign I was rejected after my interview?

Not necessarily. Many job boards and ATS tools recycle listings every 30 to 60 days automatically, so a repost can be routine housekeeping rather than a signal about you. Compare the first-appearance date and check what text actually changed. If the description and requirements are identical and only the date reset, it is most likely an auto-refresh, not a fresh search opened because you were passed over.

Why does the same role look different on each site?

Because deduplication is hard and platforms use different keys. Indeed identifies duplicates using location and job title, while stronger systems normalize company, location, and description across a 60-day window. Since true duplicates can share as little as 37% text, weak title-based matching either hides real roles or leaves phantoms. Staffing agencies rewrite the same role repeatedly, which multiplies variants, so you often see one opening as several listings.

Put this to work

Reading about the job search is not the job search.

Paste your career in once. I write the resume, then every week I rank the live openings against your history, tailor a resume and a cover letter to the best of them, fill in the forms if you ask me to, and keep going until you land. Your part is deciding what goes out.

  • 140+ curated roles a week, found, written, and scored for you.
  • Every bullet stays inside what your history actually supports.
  • Queued, submitted, interviewing, offer, all in one place instead of a spreadsheet.

500 free credits on sign-up. No card.

Read next