Skip to content
    ↑↓ to choose · Enter to open

    · 14 min read

    get in IT Jobs Scraper: Up to 1,000 Free Results a Month (2026)

    By CrawlerBros Engineering Team

    Each job record carries 39 fields, including full job descriptions, itemized skills, and structured salary ranges when disclosed. Across 89 lifetime runs, this collector offers four modes to search job listings, fetch full posting details, browse employers, or retrieve detailed corporate profiles. Extracting 1,000 results costs $5.00 on Apify's free plan, which includes $5.00 of monthly usage without requiring a credit card. Built for recruitment analysts, job aggregators, and HR teams monitoring German IT hiring markets. Not for teams targeting non-tech positions outside Germany or those requiring candidate resume details, which are omitted.

    Try it before you read further. Apify's free plan includes $5.00 of usage every month with no credit card, enough for up to 1,000 results at $0.005 each before platform usage. Open get in IT Jobs Scraper on Apify and run the prefilled example.

    How reliable is get in IT Jobs Scraper in production?

    Across the last 30 days of public runs on the Apify platform, get in IT Jobs Scraper recorded 67 runs with the following outcomes.

    Outcome Runs Share
    Succeeded 67 100.0%
    Failed 0 0.0%
    Aborted by the user 0 0.0%
    Timed out 0 0.0%
    Total 67 100.0%

    No run failed or timed out in the last 30 days. Keep a retry and an alert on scheduled runs all the same: a clean month is a record, not a guarantee.

    What does it cost to run get in IT Jobs Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    Worked example: collecting 10,000 results costs $50.00 in result charges before run-start fees and platform usage. No run failed or timed out in the last 30 days, so the list price is a fair budget; keep a retry in place all the same.

    Your output dataset volume determines the result charges, making maxItems the input control with the largest effect on your bill. Filtering search runs with specific careerFields or states parameters limits results to relevant roles and prevents extra dataset writes. Run a test with maxItems set to 10 to inspect returned fields before running full extractions.

    How do you run get in IT Jobs Scraper from the API?

    The schema marks 1 of its 12 controls as required: mode. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for get in IT Jobs Scraper, so the request works once your token is in place.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~get-in-it-jobs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"search","careerFields":["anwendungsentwicklung"],"keyword":"Entwickler"}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "search",
      "careerFields": [
        "anwendungsentwicklung"
      ],
      "keyword": "Entwickler"
    }
    
    run = client.actor("crawlerbros~get-in-it-jobs-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "search",
      "careerFields": [
        "anwendungsentwicklung"
      ],
      "keyword": "Entwickler"
    }
    
    const run = await client.actor('crawlerbros~get-in-it-jobs-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.

    Which get in IT Jobs Scraper inputs matter, and which can you skip?

    The mode parameter is the single required control that specifies whether you browse search listings, fetch full job details, explore companies, or pull corporate profiles. When running job searches, careerFields and states define the pool by IT discipline and German region. Optional controls like studySubjects and degrees should be left empty on initial runs to keep results broad.

    • mode (string): What to fetch. Default: "search".
    • careerFields (array): Filter jobs by one or more IT career fields (mode=search). Leave empty for all career fields; select several to match ANY of them. Default: [].
    • studySubjects (array): Filter jobs by the study subject(s) they target (mode=search). Leave empty for all subjects; select several to match ANY of them. Default: [].
    • degrees (array): Filter jobs by required degree level(s) (mode=search). Leave empty for all levels; select several to match ANY of them. Default: [].
    • states (array): Filter jobs (mode=search) or companies (mode=companies) by one or more German federal states. Leave empty for all states; select several to match ANY of them. Default: [].
    • branches (array): Filter companies by one or more industries (mode=companies). Leave empty for all industries; select several to match ANY of them. Default: [].
    • companySizes (array): Filter companies by size category (mode=companies). Leave empty for all sizes; select several to match ANY of them. Default: [].
    • keyword (string): mode=search: only keep jobs matching every word of this text against title, company name, location, or career field (case-insensitive). mode=companies: only keep companies whose name contains this text.
    • homeOfficeOnly (boolean): Only keep jobs that offer home-office / remote work (mode=search). Default: false.
    • companyIds (array): mode=search: only keep jobs from these employers' numeric company IDs (matches ANY of the listed IDs). mode=companyDetails: which company profiles to fetch - accepts numeric company IDs, URL slugs (e.g. adesso-se), or full company URLs. Find a company's ID/slug in the companyId/companyUrl field of any job or company record. Default: [].
    • jobIds (array): Job IDs, p<id> slugs, or full job URLs (e.g. 310856, p310856, https://www.get-in-it.de/jobsuche/p310856). Default: [].
    • maxItems (integer): Hard cap on emitted records. Default: 50.

    Fixed-choice controls: mode accepts search (Browse / search jobs), jobDetails (Fetch full job details by ID), companies (Browse employer companies), companyDetails (Fetch full company profile by ID).

    What does get in IT Jobs Scraper return?

    Returned job records provide accurate data on German tech vacancies, including skills arrays, work arrangements, and application links. Employer profiles provide address information and business details when disclosed on get-in-it.de, omitting unlisted private details. This output fits recruiting dashboards, salary analyses, and technology market tracking.

    Output per job

    • jobId, title, jobUrl
    • companyId, companyName, companyUrl, companyLogoUrl, companyWebsite, companyIsTopCompany, companyTotalJobs
    • careerFields[] - IT specialization(s), e.g. Webentwicklung, IT-Security
    • locations[], primaryLocation, city, state, country
    • homeOffice - true if the role offers remote/hybrid work
    • isSponsoredListing - true if the listing is a paid/promoted placement
    • skills[] - technologies and skills mentioned in the posting
    • studySubjects[], degrees[], educationRequirements[]
    • employmentType, datePosted, applicationDeadline, jobImmediateStart, directApply
    • description - full plain-text job description (mode=jobDetails)
    • responsibilities[], requirements[], benefits[] - itemized bullet points parsed from the posting's tasks/requirements/benefits sections, when the employer structured them that way (mode=jobDetails)
    • salaryMin, salaryMax, salaryCurrency, salaryUnit - when the employer discloses a salary range
    • applyUrl, pdfUrl
    • recordType: "job", scrapedAt

    Output per company (mode=companies)

    • companyId, companyName, companyUrl
    • companyLogoUrl, companyBoxImageUrl, companyHeaderImageUrl
    • companyIsTopCompany - true if the employer is a featured/"Top" partner
    • companyTotalJobs - number of currently published job postings
    • branches[] - industry categories, e.g. IT Branche, Beratung/Consulting
    • locations[] - cities where the company has open positions
    • recordType: "company", scrapedAt

    Output per company profile (mode=companyDetails)

    • companyId, companyName, companyLegalName, companyUrl
    • companyLogoUrl, companyHeaderImageUrl, companyIsTopCompany
    • companyDescription - the employer's "About us" text from their get-in-it.de profile
    • companyAddress, companyPhone, companyEmail - when the employer's profile discloses them
    • companyWebsite, companyCareerPageUrl - the employer's own website and careers page (when linked from their profile)
    • companyFacebookUrl, companyTwitterUrl, companyInstagramUrl, companyYouTubeUrl - social media links (when linked)
    • companyFacts - free-text "quick facts" (employee count, founding year, locations, revenue, etc.), when the employer's profile includes them
    • companyAwards[] - employer awards/certifications shown on the profile (e.g. "Top Employer (2026)"), when present
    • companyEmployeeInsights[] - short employee testimonials from get-in-it.de's magazine (authorName, profession, quote, url, imageUrl), when the employer's profile features any
    • companyEvents[] - upcoming recruiting events/career fairs the employer has listed (title, date, location), plus companyEventsUrl linking to the employer's full events page, when present
    • branches[] - industry categories
    • companyBoxImageUrl, companyTotalJobs, locations[] - included when the company was also resolvable via the employer directory (i.e. when looked up by numeric ID)
    • recordType: "company", scrapedAt

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open get in IT Jobs Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Select mode search to find open listings, or choose companies to query the employer directory.
    2. Add target IT disciplines such as webentwicklung or it-security into the careerFields multi-select array.
    3. Filter locations by passing German Bundesländer tokens such as bayern or berlin into the states array.
    4. Toggle homeOfficeOnly to true if you want to isolate positions offering remote or hybrid work.
    5. Pass explicit numeric job IDs, p-slugs, or full job URLs into the jobIds array when setting mode to jobDetails.
    6. Cap the dataset size by setting maxItems to an integer between 1 and 1000.
    7. Run the Actor once with maxItems set to 10 and verify that returned records include non-null jobId and companyName values before scheduling larger runs.

    How do you apply it? Three worked playbooks

    These are get in IT Jobs Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Recruiting intelligence

    Outcome: Track new IT job postings across German employers

    Configure: Set mode to "search", populate states with ["bayern", "berlin"], set careerFields to ["anwendungsentwicklung", "it-security"], and set maxItems to 100.

    Working method: Execute a search across selected German states, inspect the dataset for new job postings, and map active employers using the companyId values.

    Deliverable: A dataset of job records containing jobId, companyName, datePosted, and location details.

    Stop condition: The search mode run returns zero items or emits duplicate jobId values identical to previous runs.

    Use case 2: Salary benchmarking

    Outcome: Collect salary ranges where disclosed, by career field

    Configure: Set mode to "search", populate careerFields with ["datenbankentwicklung-bi"], set maxItems to 200, and pass extracted job IDs to jobIds with mode set to "jobDetails".

    Working method: Gather job listings for a specific career field, extract the jobId strings, perform a second run in jobDetails mode, and filter for records where salaryMin is present.

    Deliverable: A dataset of detailed job records containing salaryMin, salaryMax, salaryCurrency, and associated career field tags.

    Stop condition: The number of records containing non-null salaryMin values falls below your required sample size.

    Use case 3: Skill demand analysis

    Outcome: Analyze which technologies appear most often in postings

    Configure: Set mode to "jobDetails", populate jobIds with targeted identifiers like ["310856", "p310598"], and set maxItems to 100.

    Working method: Fetch full job details for specified identifiers, extract the populated skills array from each record, and tally tech frequency across the dataset.

    Deliverable: A collection of job detail records with itemized skills arrays and explicit requirements lists.

    Stop condition: The returned skills field is empty or absent across consecutive job detail records.

    What breaks, and how do you design around it?

    • Over the last 30 days, 0.0% of public runs failed and 0.0% timed out. Build retries and alerting around those rates rather than assuming every run completes.

    When broad search queries return too many listings, set maxItems to enforce a lower hard cap on emitted records. If regional filtering yields broad results, provide specific German federal state keys in the states array. If structured fields like requirements are omitted by an employer, rely on the plain-text description field which contains the full posting text.

    When should you not use get in IT Jobs Scraper?

    Do not use this Actor if you are aggregating non-technical positions or scraping job listings outside Germany. To collect Middle Eastern job market data, choose GulfTalent Jobs Scraper. If you require Swiss job board data across broader employment sectors, use jobs.ch Scraper. For transparent remote IT listings centered on Central and Eastern Europe, select NoFluffJobs Remote Tech Jobs Scraper. Avoid this collector if your analysis depends on general international board coverage or non-tech career categories, as get-in-it.de focuses strictly on German tech roles.

    What should you check before trusting the output?

    • Verify that every record returned under mode search contains a non-null jobId and valid jobUrl.
    • Confirm that salaryMin and salaryMax are present and numeric whenever salaryCurrency is populated.
    • Check that items returned in mode jobDetails contain non-empty strings in the description field.
    • Ensure that companyDetails records contain companyLegalName or companyName alongside companyId.
    • Stop a scheduled execution if consecutive dataset items omit required identity keys like jobId.

    None of this proves a record is correct. It gives a scheduled get in IT Jobs Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    How much does it cost to scrape 1,000 job listings?

    Results cost $0.005 each, which is $5.00 per 1,000 results on the free plan. Apify's free plan includes $5.00 of monthly usage with no credit card required, covering up to 1,000 results.

    What operational modes are available in this Actor?

    The mode parameter supports search for browsing job listings, jobDetails for pulling complete job postings by ID, companies for exploring the employer directory, and companyDetails for fetching full employer profiles.

    Why are salary fields missing from some output records?

    German employers rarely publish compensation data publicly. The fields salaryMin, salaryMax, and salaryCurrency appear only when an employer explicitly includes structured salary information in their job posting.

    Can I filter job listings by specific German federal states?

    Yes, pass one or more state keys to the states input array, such as bayern, berlin, or hamburg. This limits returned jobs or company directory results to those specific Bundesländer.

    Has this Actor proven reliable in recent production runs?

    In the last 30 days: 67 runs, 67 succeeded (100.0%), 0 failed (0.0%), 0 aborted by users (0.0%), 0 timed out (0.0%). No run failed or timed out.

    Where to go next

    When you are ready to run it, open get in IT Jobs Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the get in IT Jobs Scraper Actor page for the current input schema, pricing tier, and run history.

    Other Actors we maintain for related data:

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-27.

    • Actor last updated by its maintainers on 2026-08-12.

    • Run outcome figures cover the 30 day public window ending 2026-09-27.

    • get in IT Jobs Scraper on Apify

    Featured actors

    get in IT Jobs Scraper

    Scrape IT & tech job listings and employer data from get-in-it.de, Germany's IT job board. Filter by career field, state, or keyword; fetch full job/company details by ID; browse employers by industry. No proxy or login required.

    Run on Apify ↗