Timesjobs Scraper πŸ’Ό avatar

Timesjobs Scraper πŸ’Ό

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Timesjobs Scraper πŸ’Ό

Timesjobs Scraper πŸ’Ό

Extract job listings efficiently from Timesjobs, a leading Indian career portal. This lightweight actor is designed for fast data collection. For optimal stability and to prevent blocking, the use of residential proxies is strongly recommended.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(2)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

1

Bookmarked

32

Total users

2

Monthly active users

14 days ago

Last modified

Share

What does TimesJobs Job Scraper do?

TimesJobs Job Scraper collects public job listings from TimesJobs.com and saves them as structured records in an Apify dataset. Enter a job keyword, location, or a TimesJobs search URL to gather roles for hiring research, job market analysis, recruitment lead generation, and career intelligence.

Each result can include the job title, hiring company, location, required skills, salary, employment type, posting date, descriptions, vacancy count, job identifier, and application URLs. Results are returned in JSON and can also be exported to CSV, Excel, XML, or other Apify-supported formats.

Why use TimesJobs Job Scraper?

  • Targeted job searches - Narrow results by role keyword and Indian city or region.
  • Detailed job records - Collect both summary information and available job description content for downstream review.
  • Predictable collection size - Set results_wanted to control how many listings the run should save.
  • Recruitment workflows - Build hiring research datasets, identify active employers, and compare demand for skills across locations.
  • Repeatable monitoring - Schedule recurring runs in Apify to watch job availability, salary information, and posting activity over time.
  • Automation-ready exports - Send the dataset to spreadsheets, webhooks, no-code tools, or your own application.

What data can you extract from TimesJobs?

The Actor returns one dataset item per collected job listing. Optional fields are omitted when TimesJobs does not publish the corresponding information.

FieldTypeDescription
titleStringJob title or role name.
companyStringHiring company name.
experienceStringRequired experience range, such as 2 - 5 Yrs.
locationStringJob location or locations.
skillsArraySkill keywords associated with the listing.
salaryStringSalary or compensation text when available.
job_typeStringEmployment or job type when available.
date_postedStringPosting date or relative posting text.
description_htmlStringJob description in HTML format when available.
description_textStringJob description converted to plain text.
urlStringTimesJobs detail page URL.
job_idStringTimesJobs job identifier.
company_descriptionStringCompany description when published.
addressStringAddress or additional location detail when available.
vacanciesNumberNumber of vacancies when published.
external_job_urlStringExternal application or employer URL when available.
sourceStringSource marker included with the record.

How to scrape TimesJobs data

  1. Open TimesJobs Job Scraper in Apify Console.
  2. Enter a keyword, location, or provide a public TimesJobs search URL.
  3. Set results_wanted to the number of listings you need.
  4. Run the Actor and review the dataset preview.
  5. Download the results or connect the dataset to your workflow.

The input form includes example values for a software developer search in Bengaluru. Replace them with your own search criteria before running the Actor.

Input Parameters

ParameterTypeRequiredDefault or prefillDescription
startUrlStringNoNoneA public TimesJobs search URL. Use this when you already have a prepared search page.
keywordStringNosoftware developerJob title, skill, or search phrase, such as python developer or data analyst.
locationStringNoBengaluruCity, region, or location filter, such as Mumbai, Delhi, or Pune.
results_wantedIntegerNo20Number of job listings to save. Larger values may take longer and depend on matching public listings.
proxyConfigurationObjectNo{"useApifyProxy": false}Optional Apify proxy settings for runs that need additional network reliability.

If a startUrl contains search parameters, the Actor can use those values as search context. Explicit keyword and location inputs remain useful when you want to control the search directly.

Input precedence is predictable: values supplied in the Actor input form take priority, then missing filters are read from a supplied TimesJobs search URL. You can run a keyword-only search, a keyword plus location search, or provide a URL with its saved filters.

Output Data

The dataset contains one structured JSON record per unique job. Optional fields are omitted when TimesJobs does not publish a value, so downstream workflows do not need to clean a collection of null properties. skills is always returned as an array and uses Not specified when no usable skills are published.

FieldTypeDescription
titleStringJob title.
companyStringCompany name.
experienceStringFormatted experience requirement.
experience_fromNumberMinimum experience in years when published.
experience_toNumberMaximum experience in years when published.
locationStringLocation text.
skillsArraySkills or technologies listed for the role.
salaryStringSalary range, salary value, or employer-provided compensation text.
job_typeStringJob or employment type.
employment_typeStringEmployment classification.
date_postedStringPosting date text.
posted_atStringPosting timestamp when published.
expires_atStringListing expiry date when published.
description_htmlStringOriginal formatted description when available.
description_textStringPlain-text version of the description.
urlStringTimesJobs detail URL.
job_idStringSource job identifier.
application_countNumberApplication count reported by the listing.
company_idString or NumberSource company identifier.
company_logoStringCompany logo URL.
company_descriptionStringCompany information from the listing detail.
addressStringAddress information when available.
show_addressBooleanWhether the source marks the address as visible.
contact_infoObject or StringContact information when published.
show_contactBooleanWhether the source marks contact information as visible.
vacanciesNumberVacancy count when available.
external_job_urlStringExternal application URL when available.
desired_candidateStringCandidate profile text.
genderStringGender preference code when published.
gender_formattedStringHuman-readable gender preference.
industry_idsStringIndustry identifiers.
industry_namesArrayIndustry names.
function_idsStringJob function identifiers.
function_namesArrayJob function names.
area_of_specialization_idsStringArea-of-specialization identifiers.
area_of_specialization_namesArrayAreas of specialization.
role_idsStringRole identifiers.
role_namesArrayRole names.
location_idsStringLocation identifiers.
location_namesArrayNormalized location names.
location_othersStringAdditional location information.
hiring_offStringHiring-office identifier when published.
hiring_off_namesArrayHiring-office names.
low_salaryNumberLower compensation value in the source currency.
high_salaryNumberUpper compensation value in the source currency.
currencyStringCurrency reported on the search listing.
ctc_currencyStringCurrency code reported on the detail listing.
ctc_flagNumberCompensation flag from the source listing.
hide_ctc_from_candidateBooleanWhether compensation is hidden by the employer.
best_in_industryBooleanWhether the listing is marked best in industry.
perksStringBenefits or perks text.
listing_sourceStringSource listing category.
graduation_course_namesArrayGraduation course requirements.
graduation_specializationsArrayGraduation specialization requirements.
any_graduateNumberWhether any graduate qualification is accepted.
postgraduation_course_namesArrayPostgraduate course requirements.
postgraduation_specializationsArrayPostgraduate specialization requirements.
any_postgraduateNumberWhether any postgraduate qualification is accepted.
sourceStringSource marker for the collected record.

Usage Examples

Collect the first matching jobs for a keyword without limiting the location.

{
"keyword": "Python developer",
"results_wanted": 20
}

Collect software developer jobs in Bengaluru.

{
"keyword": "software developer",
"location": "Bengaluru",
"results_wanted": 20
}

Search by Role and Location

Collect a larger set of data analyst listings in Mumbai for market research.

{
"keyword": "data analyst",
"location": "Mumbai",
"results_wanted": 100
}

Start from a TimesJobs Search URL

Use a prepared TimesJobs search page and limit the run to 50 records.

{
"startUrl": "https://www.timesjobs.com/candidate/job-search.html?searchType=personalizedSearch&from=submit&txtKeywords=python%20developer&txtLocation=Pune",
"results_wanted": 50
}

Sample Output

The following example shows one realistic dataset item. Optional fields are included only when information is available in the source listing.

{
"title": "Product Manager, Android GPU Quality",
"company": "Google",
"experience": "5 - 7 Yrs",
"experience_from": 5,
"experience_to": 7,
"location": "Bengaluru",
"skills": ["Product Management", "Technical Leadership", "Market Validation"],
"salary": "As per industry standard",
"job_type": "On-site",
"employment_type": "Full-time",
"date_posted": "01 Aug, 2026",
"posted_at": "2026-08-01T22:45:37",
"expires_at": "2026-09-29",
"description_html": "<strong>Product Manager, Android GPU Quality</strong><p>...</p>",
"description_text": "Product Manager, Android GPU Quality Location: Bengaluru, Karnataka, India...",
"url": "https://www.timesjobs.com/job-detail/product-manager-android-gpu-quality-google-bengaluru-5-7-years-jobid-example",
"job_id": "80678900",
"application_count": 0,
"company_logo": "https://timesjob.s3.ap-south-1.amazonaws.com/company-logos/002256.png",
"show_address": false,
"show_contact": false,
"vacancies": 0,
"external_job_url": "https://www.google.com/about/careers/applications/jobs/results/example",
"gender": "PreferNot",
"gender_formatted": "No Preference",
"function_ids": "35",
"function_names": ["IT Software : Software Products & Services"],
"area_of_specialization_ids": "20105",
"area_of_specialization_names": ["Recruitment"],
"location_ids": "198130",
"location_names": ["Bengaluru"],
"currency": "INR",
"ctc_currency": "r",
"ctc_flag": 1,
"hide_ctc_from_candidate": true,
"best_in_industry": false,
"listing_source": "srp",
"graduation_course_names": ["Any Postgraduate"],
"any_postgraduate": 1,
"source": "timesjobs"
}

Tips for Best Results

  • Use specific keywords such as React developer, Java backend engineer, or digital marketing manager to reduce irrelevant listings.
  • Combine keyword and location when you need a focused hiring dataset.
  • Start with 20 results to check relevance and field completeness before increasing the limit.
  • Use a direct TimesJobs search URL when the website search page already contains the filters you need.
  • Review salary and vacancy fields as source-provided values. Many listings do not publish compensation or headcount.
  • Use scheduled runs for recurring market monitoring, then compare datasets by posting date and job URL.

Integrations and Export Formats

  • Google Sheets - Review roles, companies, locations, and salary information in a shared spreadsheet.
  • Webhooks - Trigger notifications or downstream processing after a run completes.
  • Make and Zapier - Route new job records to CRM, email, Slack, or other business tools.
  • Apify API - Retrieve dataset items programmatically for dashboards, internal tools, or data pipelines.

Apify datasets can be exported as JSON, CSV, Excel, XML, and other supported formats. JSON is useful for applications and data pipelines, while CSV and Excel are convenient for manual analysis and reporting.

Frequently Asked Questions

How many TimesJobs listings can I collect in one run?

You can set results_wanted to the number of listings needed. Larger collections may take longer and depend on the number of matching public listings.

Can I start from a TimesJobs URL?

Yes. Provide a public search URL in startUrl. This is useful when you have already selected filters on TimesJobs.

Does the Actor collect full job descriptions?

Yes, when the listing provides description content. The dataset includes both description_html and a plain-text description_text field.

Why are some output fields empty?

Some employers do not publish salary, address, vacancy count, company information, or other optional details. Empty values reflect the source listing rather than a required field in every record.

Can I schedule recurring TimesJobs searches?

Yes. Create an Apify schedule to run the Actor hourly, daily, weekly, or at another interval supported by your workflow.

Can I export the results to CSV or Excel?

Yes. Apify dataset results can be downloaded in CSV, Excel, JSON, XML, and other supported formats.

Public data collection can be subject to applicable laws, privacy requirements, and TimesJobs.com terms. You are responsible for reviewing those requirements and using the collected job information responsibly.

Support

For issues, missing fields, or feature requests, use the Issues tab on the Actor page. Include the input used, the affected TimesJobs URL or search criteria, and a short description of the expected result.

This Actor is intended for legitimate collection of publicly available job information. Users are responsible for complying with TimesJobs.com terms, applicable laws, privacy requirements, and any restrictions related to storing, analyzing, or redistributing employment data.