Trudvsem Russia Jobs Scraper | Работа России Вакансии
Pricing
from $2.57 / 1,000 vacancies
Trudvsem Russia Jobs Scraper | Работа России Вакансии
Collect Russian Trudvsem vacancies from the official open-data API. Get normalized records with employer, salary, location, requirements, contacts and apply links. Run with keywords, region, date and result limit; no API key or login. Pricing: $0.00265 per vacancy on Free.
Pricing
from $2.57 / 1,000 vacancies
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
3
Monthly active users
6 days ago
Last modified
Features
Share
Trudvsem Russia Job Vacancies Scraper
Collect Russian job vacancies from the official Trudvsem / Работа России open-data API (trudvsem.ru), with normalized rows for employer, salary, region, requirements, contacts and apply links. No source API key, login or proxy setup is needed; the Russian residential proxy is preconfigured, and Free-plan runs return up to 25 results.
- Get one normalized row per vacancy, with Russian text as published.
- Analyze salary, experience and education by region and profession.
- Add official Russian vacancies to a job board, aggregator or alert service.
- Schedule incremental feeds using vacancy creation or modification dates.
- No API key, login or proxy setup is needed: the Russian residential proxy is preconfigured and every input is optional.
What you get
A scalar field is null when the source does not provide it; list fields use the empty-list rules below.
| Field group | Fields | Type | Notes |
|---|---|---|---|
| Identity | vacancy_id, job_title, job_url, source | string | null if blank or absent |
| Employer | company_name, company_code, company_inn, company_kpp, company_ogrn, company_email, company_url | string | null if blank or absent |
| Employer | is_hr_agency | boolean | null if absent |
| Location | region, region_code | string | null if blank or absent |
| Location | address | string | null if blank or absent; first address |
| Location | latitude, longitude | number | null without coordinates; first address |
| Location | addresses | array of objects {location, latitude, longitude} | Empty list; all addresses |
| Compensation | salary_text, currency | string | null if blank or absent |
| Compensation | salary_min, salary_max | integer | null if absent or not numeric |
| Terms | employment_type, schedule, term, conditions, typical_position | string | null if blank or absent |
| Terms | shift, skills | array of strings | Empty list |
| Terms | work_places, training_days | integer | null if absent or not numeric |
| Terms | work_place_type | object of flags | null if not an object |
| Role detail | specialisation, profession_code, qualification, education, requirements, duties, social_protected | string | null if blank or absent |
| Role detail | experience_years | integer | null if absent or not numeric |
| Contact | contact_person | string | null if blank or absent |
| Contact | contacts | array of objects {type, value} | Empty list; blank values dropped |
| Dates | created_date, modified_at | string | null if blank or absent; source format retained |
| Run information | query | string | null without a keyword |
| Run information | scraped_at | ISO 8601 UTC string | Never null |
| Run information | parse_confidence | number 0 to 1 | Never null |
| Run information | warnings | array of strings | Empty list |
Sample output
Shortened sample: addresses, duties and some other fields are left out. The person's name, phone and email are hidden because they belong to a private person.
{"vacancy_id": "c51b7099-be35-11f1-aa68-7523fb122f6d","job_title": "Водитель автомобиля","job_url": "https://trudvsem.ru/vacancy/card/1136453005677/c51b7099-be35-11f1-aa68-7523fb122f6d","source": "Вакансия работодателя","company_name": "ООО \"ТК ВОЛГА\"", "company_code": "1136453005677","region": "Саратовская область", "salary_text": "от 180000", "salary_min": 180000, "salary_max": 240000, "currency": "«руб.»","employment_type": "Полная занятость", "schedule": "Вахтовый метод", "education": "Tребования не предъявляются", "experience_years": 1,"contact_person": "<hidden for privacy>","contacts": [{"type": "Телефон", "value": "<hidden for privacy>"}, {"type": "Эл. почта", "value": "<hidden for privacy>"}],"modified_at": "2026-10-02T12:27:29+0300", "query": "водитель", "scraped_at": "2026-10-29T03:54:19Z","parse_confidence": 1, "warnings": []}
Pricing
The Actor uses pay-per-event billing. It charges the following events:
Actor Start: $0.00005 per event on the Free plan; one event per GB of run memory, with a minimum of one event.Vacancy: $0.00265 per event on the Free plan; one returned vacancy with all fields.
You pay only for the events listed below. This Actor does not use the Pay per event + usage option, so the platform usage of your runs (compute, proxy traffic and storage) is not billed to you separately.
| Plan | Actor Start | Vacancy |
|---|---|---|
| Free plan | $0.00005 per event | $0.00265 per event |
Free-plan runs are capped at 25 results.
Calculation table — Free plan rates
| Results | Vacancy events | Actor Start | Total |
|---|---|---|---|
| 25 | 25 × $0.00265 (Free plan) = $0.06625 | 1 × $0.00005 | $0.0663 |
| 100 | 100 × $0.00265 (Free plan) = $0.265 | 1 × $0.00005 | $0.26505 |
| 1,000 | 1,000 × $0.00265 (Free plan) = $2.65 | 1 × $0.00005 | $2.65005 |
| 10,000 | 10,000 × $0.00265 (Free plan) = $26.50 | 1 × $0.00005 | $26.50005 |
These examples assume one Actor Start event per run, meaning a run using 1 GB or less.
Apify Free plan includes $5 of monthly platform usage credit; that credit covers 75 full runs (1,875 results at the 25-result cap), or 1,886 Vacancy events when allocated as one Actor Start event plus result events.
How to use
- Enter keywords in
searchTerms, or leave the list empty to browse the latest nationwide vacancies. Terms are searched separately and merged. - Set
regionCodefor the per-region endpoint (7700000000000= Moscow;7800000000000= Saint Petersburg). - Set
modifiedFromto an ISO 8601 UTC date-time for vacancies created or updated from that time. - Set
maxItemsto the requested number; use0for no input cap. Free runs still apply the 25-result cap. - Start the Actor and inspect the
Vacancies overviewtable. - Repeat the run through Apify Schedules; daily is a starting point for incremental feeds.
{"searchTerms": ["Python"],"maxItems": 100,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "RU"}}
Export the dataset as JSON or CSV after the run.
Input parameters
| Parameter | What it does | Default |
|---|---|---|
searchTerms | Keywords matched against job title, employer or duties; each term is searched separately and results are merged. Empty browses nationwide. | Prefilled as ["Python"] |
regionCode | Trudvsem region code; uses the per-region endpoint. 7700000000000 = Moscow; 7800000000000 = Saint Petersburg. | Empty |
modifiedFrom | Returns vacancies created or updated on or after the supplied UTC ISO 8601 date-time. | Empty |
maxItems | Maximum returned; 0 requests no input cap. Free runs still apply the 25-result cap. | 100 |
proxyConfiguration | Proxy used to reach the Trudvsem open-data API. | Apify Residential, country RU |
disableUsageStats | Set to true to turn off the run summary described in Usage statistics. | false |
Limits and edge cases
| Condition | What you see | What to do |
|---|---|---|
| Free Apify plan | Up to 25 results; each returned result is a Vacancy event. | Use a paid Apify plan for full results. |
maxItems is reached | The run stops after the requested number is returned. | Increase maxItems or use 0. |
| One query reaches the API page limit | At most 100 pages of up to 100 vacancies, or 10,000 records per query. | Split with regionCode, modifiedFrom or more specific keywords. |
Multiple searchTerms | Terms are queried separately, merged, and deduplicated by vacancy ID. | Use separate terms for multiple searches. |
| No vacancies are returned | The run ends as Succeeded with an empty dataset and explains the reason in its status message. No Vacancy events are charged; the Actor Start event is still charged. | Broaden or use Russian keywords, remove regionCode, or move modifiedFrom earlier; retry failed or rate-limited queries later. |
| A later page fails after earlier pages return data | The run ends as Succeeded with a short dataset. Earlier fetched rows remain available and are charged. The failure appears in failedDetails and failedCount of the OUTPUT record in the run's default key-value store and usually in the run status. | Re-run the failed query. |
| An abort or timeout occurs while a query is being fetched | No rows from that query reach the dataset; earlier-query rows and already-pushed batches remain. | Re-run the search. |
parse_confidence is used | Starts at 1 and is reduced for missing vacancy ID (0.4), title (0.3), or both address and region (0.1). warnings lists id_missing, job_title_missing or location_missing; the score is rounded to 3 decimals. Records missing both ID and title are skipped. | Inspect warnings, parse_confidence, and fields directly. Missing salary, requirements or contacts do not reduce the score. |
Each run stores an OUTPUT record in the run's default key-value store with totalVacancies, queriesRun, failedCount, the first 20 failedDetails, the first 20 queryStats and scrapedAt. The outcome is also in the run status message.
FAQ
How much does it cost to scrape Russian job vacancies?
On the Free plan, each Vacancy costs $0.00265 per event and Actor Start costs $0.00005 per event. For example, 25 results = $0.0663 on the Free plan. See Pricing for the Free plan rate.
What happens when no vacancies match?
The run succeeds with an empty dataset and explains the outcome in its status. No Vacancy events are charged; the Actor Start event is still charged.
Why did the Actor return fewer vacancies than requested?
The source may have fewer matches, a query may have failed or been rate-limited, the Free-plan cap may apply, or the API page limit may have been reached. Check the status and split large searches by region, date or keyword.
Do I need an API key, login, or my own proxy?
No source API key or login is required. A Russian residential proxy configuration is built in by default, so no key or login is required.
Is using this public vacancy data legal or allowed?
The Actor retrieves public vacancy data from the official Trudvsem / Работа России open-data API. Whether a particular use is legal or allowed depends on the source terms and applicable law for your use case; review them before use.
Related actors
- Eleman jobs — related jobs data for Turkey.
- FreeJobAlert jobs — related India government-jobs data.
- GovernmentJobs scraper — related public-sector jobs data.
Usage statistics
This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.
A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.
To opt out, set disableUsageStats to true in the input. Nothing is sent then.