
What the differences tell you
A listing is one published job advertisement. A vacancy is the employer opening behind an advertisement. Several agency listings can look alike without giving enough evidence to confirm one vacancy.
The reader problem is specific. A public question published on December 7, 2023 describes agency posts with different pay, “contract vs w2” wording and durations of “4 months+” and “12months+.” That question shows one reported concern. It does not verify the employer, explain the differences or measure how often this happens.
The listings alone may not explain why their terms differ. Your first task is to record those differences clearly. Keep the recruiting agency separate from the stated end employer. The end employer means the client organization where the advertised work would take place.
Treat each listing as a separate advertised set of terms to clarify. Do not treat it as a confirmed personal offer. A higher stated rate does not, by itself, establish the better choice.
Build one table for the agency terms
Use a spreadsheet or a simple document. Keep one row per agency listing. Save the original wording before you shorten it for comparison.
A term ledger is a table that keeps the advertised conditions and your questions together. The ledger below is your working record. These are manual comparison fields, not a list of fields that the collection tool supplies automatically.
| Saved field | What to record |
|---|---|
| Agency | The recruiting firm named in the listing |
| Source URL | The address of that specific listing |
| Source job ID | The listing identifier, when available; keep it as text |
| Save time | When you saved or read the evidence |
| Role title | The title as shown |
| Stated end employer | The named client, or “not named” |
| Requisition clue | Any stated job request code, with its exact wording |
| Worksite | The stated place and work arrangement |
| Duties passage | The words that describe the main work |
| Pay wording | The full advertised pay phrase |
| Currency and pay unit | For example, USD per hour; keep unknown parts unknown |
| Duration wording | The exact length, including “+,” “initial” or other limits |
| Engagement wording | The words used for the work arrangement |
| Conflict or gap | What differs or remains unknown |
| Recruiter question | The specific point that needs an answer |
| Later clarification | The answer, its date and who supplied it |
| Decision status | Ready to assess, needs clarification or unresolved |
A requisition is an employer job request, often shown with a reference code. A matching title is not a requisition code. If no code appears, write “not stated.”
Engagement wording means the advertised words for the proposed work arrangement. Copy labels such as “contract,” “employee” or “W2” exactly when they appear. Ask the recruiter what the label means for that specific route. Do not turn the label into a legal conclusion.
Missing values need clear labels. “Pay not stated” does not mean pay is zero. “Duration not stated” does not mean there is no end date. “Client not named” does not mean there is no client.
Follow these eight steps
- Save each listing on its own.
Keep its URL, agency name and source job ID where available. Save the relevant public text and the time you read it. Do not replace Agency A’s row with Agency B’s row because the second rate looks more attractive. You need both rows to understand the question.
- Copy the exact terms before you align them.
Put pay, duration and engagement wording in separate columns. Keep currency and pay period with every rate. Keep qualifiers too. “Four months” and “four months+” are different statements. The plus sign leaves part of the duration unclear; it does not state a definite extension.
If the title, summary and body disagree within one listing, save both passages. Record an internal conflict rather than choosing the passage you prefer.
- Separate the agency from the client.
Record who advertised the role and who is named as the end employer. If the client is not named, keep that gap visible. A company name shown in a listing is not enough, on its own, to establish the whole relationship.
Ask the recruiter which organization would employ or engage you and which client would receive the work. Keep each answer beside that agency’s row.
- Check the clues before you call the jobs the same.
Read any requisition reference, worksite and main duties. These clues help you form a useful question. They do not automatically prove one vacancy.
If you need to resolve whether records describe the same opening, use the duplicate and repost guide. This comparison can proceed while identity remains unresolved. Keep the agency rows separate and state that you are comparing apparent matches.
- Compare each term across the rows.
Compare duration with duration, pay unit with pay unit, and engagement wording with engagement wording. Mark differences as conflicts to clarify. Do not average contract lengths. Do not combine one agency’s rate with another agency’s duration to create an offer that neither advertised.
Keep unlike pay units separate. An hourly figure and an annual figure do not become equivalent without further information and assumptions. For a wider pay study, use the salary comparison guide. This task concerns the terms of individual agency routes, not a market pay summary.
- Write neutral questions tied to the evidence.
Ask what applies through that agency. Refer to its own listing words first. You can say that another apparent match shows different terms, while making clear that you have not confirmed a shared vacancy.
Ask about the client, requisition, duration, pay unit, engagement wording and submission route. A submission route is the process through which the agency would put you forward for the role.
- Get clarification before choosing a route.
Compare the answers with your needs. Check whether the stated rate, expected duration and work arrangement are clear enough for your decision. If an important answer remains unknown, keep the decision open.
You do not need to force a ranking from incomplete evidence. “Needs clarification” is a useful result when a missing term could change your choice.
- Keep the original wording and the later answer.
Add the clarification beside the original statement. Record the date and source of the answer. Do not overwrite the advertisement or apply one recruiter’s answer to another agency.
A recruiter’s answer is separate evidence. It does not prove that the public advertisement changed. If you need to compare saved versions of one listing over time, use the public-term change guide.
Work through one fictional comparison
Original fiction for teaching. This example is not an Actor run, a customer result or an observed company finding. An Actor is a hosted data collection program.
You find two agency listings for fictional role R. Their work appears similar, but neither names the client or confirms a requisition.
| Comparison item | Agency A | Agency B |
|---|---|---|
| Apparent role | Fictional role R | Same apparent fictional role R |
| Stated duration | Four months | Twelve months |
| Stated pay | USD 45 per hour | USD 50 per hour |
| Engagement wording supplied in this example | Contract wording | Employee wording |
| Client | Not named | Not named |
| Requisition | Not confirmed | Not confirmed |
| Identity decision | Unresolved | Unresolved |
| Next action | Ask its recruiter to confirm the terms | Ask its recruiter to confirm the terms |
The example supplies descriptions of the engagement wording. It does not supply a full employment document. Do not expand “contract wording” or “employee wording” into assumed tax, benefit or legal terms.
The displayed rate difference is:
USD 50 per hour − USD 45 per hour = USD 5 per hour.
That arithmetic describes only the difference between the stated hourly rates. It does not calculate take-home pay, total earnings or the value of either route. It also does not prove that the two rates concern one vacancy.
The stated duration difference is:
12 months − 4 months = 8 months.
Eight months is the gap between the stated durations. It is not the contract length you should enter for either agency. The two statements do not create an eight-month average contract or a sixteen-month combined contract.
Keep Agency A at four months and USD 45 per hour. Keep Agency B at twelve months and USD 50 per hour. Preserve their engagement wording separately.
The ledger contains two agency listing rows. That is not proof of two vacancies, two hires or any number of applicants. The vacancy relationship remains unresolved.
A useful comparison note is: “The listings appear similar. Agency A states four months and USD 45 per hour. Agency B states twelve months and USD 50 per hour. Client and requisition are not confirmed. Ask each recruiter which terms apply through its agency.”
That note identifies the decision problem without claiming to know why the terms differ.
Prepare a focused recruiter question list
Use the same main questions for each agency. Add a short reference to the exact wording in its listing.
- Which client and requisition does this listing concern?
- Which organization would employ or engage me through your agency?
- What duration should I use when assessing this role? Is the stated period the initial expected term?
- What currency, rate and pay unit apply through your agency?
- What does the listed engagement wording mean for this specific arrangement?
- Which worksite and work arrangement apply?
- What submission route would you use, and what should I confirm before you put me forward?
- Can you confirm the terms in writing so I can compare them accurately?
For the fictional Agency A, a proposed message could read:
This is an original fictional draft. It is not a sent message, a recruiter reply or evidence of a confirmed vacancy.
If a recruiter cannot name the client, record that answer. Ask which other details they can confirm. Do not fill the client field from a guess. If two answers still conflict, keep both answers and the remaining question.
Use collection tools only when they help save the evidence
For a few known listings, manual review answers the question most directly. Open each public listing, save its terms and prepare the questions. You do not need a collection run to start.
For broader discovery, the Indeed Jobs Scraper has a documented fit for collecting public listing records. The frozen check dated October 25, 2026, found the input fields below in public default build 1.2.14. A static schema check passed. A schema defines accepted fields and value types. This check tested the input structure; it did not execute the Actor or verify returned data. See the checked public build.
Use this proposed small input:
{
"country": "us",
"maxItems": 3,
"maxPagesPerSearch": 1,
"saveOnlyUniqueItems": true,
"searchTerm": "data analyst"
}Replace `searchTerm` with your intended role. Replace `country` with a supported code for your intended market. Keep the small limits for an initial check. These settings request up to three items and one page per search. They do not promise three results or complete coverage. Do not treat `saveOnlyUniqueItems` as proof that similar agency posts represent one vacancy.
The Indeed Contract and Part-Time Jobs Dataset Task is another starting point. A Task is a saved Actor configuration. Its public page was checked on October 25, 2026, with Task ID `JdxeGs1gBd2j3R0Dr`. Its current saved input and runtime behavior remain unverified. The JSON above is a proposed replacement input, not a copy of that Task’s saved settings.
The checked build declares these output fields for the evidence used here:
| Actor field | Use in your record |
|---|---|
| `jobId` | Keep the source listing ID as text |
| `jobUrl` | Keep the source address |
| `title` | Preserve the advertised title |
| `companyName` | Preserve the supplied company name; check its role manually |
| `locationRaw` | Preserve the listing location text |
| `salaryRaw` | Preserve the original pay wording when available |
| `employmentType` | Retain the supplied work arrangement label |
| `descriptionText` | Read the available listing text for terms |
| `descriptionStatus` | Retain the description availability information |
| `scrapedAt` | Keep the collection time |
Fields can be missing where the source or schema permits. Check the actual records before using them. The schema does not prove that a particular listing supplies a client, requisition or duration. Add your comparison notes and recruiter answers manually.
Public listing evidence is separate from records held by you, a recruiter or an employer. A public row is not proof of a private application status, agreed pay or a signed contract. This guide does not access those records. No collection run occurred for this brief.
Check the record before making a choice
Read across each row once more. Confirm that every pay figure keeps its currency and unit. Confirm that every duration keeps its qualifiers. Check that each clarification belongs to the correct agency.
Use these failure states when the evidence is incomplete:
| Problem | Record and next step |
|---|---|
| Client or requisition unknown | Leave identity unresolved; ask for confirmation |
| Currency or pay unit missing | Keep the rate incomplete; do not calculate equivalence |
| Duration unclear | Preserve the exact phrase; ask what period to assess |
| Engagement label unexplained | Ask what it means for that agency route |
| Listing text unavailable | Record missing evidence; check the public page manually |
| Source URL fails | Record the failed check; do not infer that the job is filled |
| Recruiter answer conflicts with the listing | Keep both statements; ask which terms apply |
| Two agencies give different answers | Keep separate rows and questions |
If you later run the Actor and receive no usable rows, that result does not prove that no relevant jobs exist. Keep the collection limit separate from the employment decision.
Sources & further reading
- Public applicant question — published December 7, 2023; retrieved October 25, 2026; reported wording only, not verified employer facts or demand evidence
- Indeed Jobs Scraper public default build 1.2.14 — checked October 25, 2026; declared fields and static input validation only, with no live run or coverage proof
- Indeed Contract and Part-Time Jobs Dataset Task — page checked October 25, 2026; exact Task ID present, with saved settings and runtime behavior unverified
By Chronometrica · Updated
Back to top ↑

