Highland TSI Vacancies Scraper β Charity & Third Sector Jobs
Pricing
from $1.99 / 1,000 results
Highland TSI Vacancies Scraper β Charity & Third Sector Jobs
Scrape every Third Sector vacancy from highlandtsi.org.uk in a single run. Get job title, charity, location, salary, hours, contract type, deadline, contact email, external apply URL and full description as clean JSON. Pure HTTP β no browser or proxy needed, optional recency filter.
Pricing
from $1.99 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Share
Highland Third Sector (TSI) Vacancies Scraper
Scrape the highlandtsi.org.uk/vacancies board β Highland Third Sector Interface's charity-jobs aggregator. One HTTP request returns the complete Wix CMS vacancy collection inline: title, organisation, location, salary (parsed), hours, working pattern, deadline (text + sortable ISO), external apply URL, contact email, attachment URL, and full description HTML. Optional last-N-hours recency filter for daily monitoring. JSON or CSV out, no compute charge per run, just per result.
How it works
π How Highland Third Sector Vacancies Scraper works
β¨ Why use this scraper?
Highland TSI re-lists vacancies from charities across the Highlands β Carr Gomm, CHSS, FΓ¨is Rois, Befrienders Highland, Citizens Advice, community trusts. Tracking the Highland third-sector job market? Running a daily "what's new" digest? Building a regional charity-jobs feed?
- π― One fetch, every field. The /vacancies page is a Wix site that embeds its entire
VacancySubmissionCMS collection in the page's warmup data. We parse that JSON directly β no per-card HTML scraping, no pagination. - π·οΈ Rich structured data per vacancy. Title, organisation, location, salary (parsed to
{currency, min, max}), hours, working pattern, role length, deadline (both the original text and a sortable ISO date), full description HTML. - π Aggregator-aware. Each vacancy is posted by an external Highland charity β we capture the org's own
externalApplyUrl(their application page), the contact email, the contact name, and any free-text apply instructions. - π 24-hour recency filter.
postedWithinHoursfilters to only vacancies published in the last N hours β ideal for a daily run that should only surface fresh postings. - ποΈ Highland-wide charity sector. Inverness, Skye, Dingwall, Golspie, Grampian β community trusts, care providers, counselling services, arts orgs.
- π€ Clean exports. One row per vacancy. JSON + CSV exported automatically.
π― Use cases
| Team | What they build |
|---|---|
| Highland charity recruiters | Daily new-vacancy digests across the region's third sector |
| TSI / CVS networks | Cross-region voluntary-sector hiring intelligence |
| Job aggregators | Real external apply URLs (each org's own page) for redirect-and-track |
| Researchers | Highland charity labour-market datasets with salary + deadline |
| Workforce strategy | Pay benchmarks across small Highland charities |
π₯ Supported inputs
| URL pattern | Behaviour |
|---|---|
https://www.highlandtsi.org.uk/vacancies | Full vacancy board (default) |
https://www.highlandtsi.org.uk/board-opportunities | Board / trustee opportunities (same Wix collection shape) |
https://www.highlandtsi.org.uk/volunteering-opportunities | Volunteering opportunities (same shape) |
Leave startUrls empty for the default /vacancies board.
Not supported: per-vacancy detail pages (HTSI has none β each vacancy's detail lives on the posting org's own site, captured as externalApplyUrl); hosts outside highlandtsi.org.uk.
π How it works
- Fetch
/vacanciesβ the Wix-rendered page (~1.4 MB). - Extract the warmup-data JSON β
appsWarmupData.dataBinding.dataStore.recordsByCollectionId.VacancySubmission. - For each record, normalise into our standard row:
- Parse
salarystring β{currency, min, max, raw} - Resolve the apply target β prefer a clean
websiteLink/howToApplyURL; fall back to theyourEmailcontact; preserve free-text instructions inapplyInstructions - Convert Wix media URIs (
wix:image://,wix:document://) β https URLs forlogoUrl/attachmentUrl - Map
_publishDateβpostedDate,deadlineSortβclosingDate(ISO), keep the originaldeadlineToApplytext inclosingDateText
- Parse
- Apply the recency filter (if
postedWithinHoursset) on_publishDate. - Push one row per vacancy, sorted newest-first.
βοΈ Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | array | ["https://www.highlandtsi.org.uk/vacancies"] | Any HTSI URL β all resolve to the /vacancies collection. |
postedWithinHours | integer | (none) | Only return vacancies published in the last N hours. 24 = last day, 72 = last 3 days. Empty/0 = all. |
maxItems | integer | 1000 | Hard cap on rows pushed (~13 live vacancies). |
maxConcurrency | integer | 1 | Reserved β single-page design. |
maxRequestRetries | integer | 5 | Retries before the fetch is given up. |
proxy | object | No proxy | Wix CDN does not anti-bot β proxy optional. |
π Output overview
Each scraped vacancy is one single dataset row of type: "job". The aggregator: true flag marks that HTSI re-lists these from external orgs; externalApplyUrl points at the posting charity's own application page.
π¦ Output sample
{"type":"job","source":"highlandtsi.org.uk","sourceProvider":"wix-cms","aggregator":true,"jobId":"98d3d6e8-be0a-4ff9-ab22-2119c5c5a1cb","slug":"98d3d6e8-be0a-4ff9-ab22-2119c5c5a1cb","jobUrl":"https://www.highlandtsi.org.uk/vacancies","title":"Executive Director","description":"<h2><span style=\"font-weight:bold\">Befrienders Highland is recruitingβ¦</span></h2>","descriptionText":"Befrienders Highland is recruiting an Executive Director\n21 hours a week (1 year)β¦","companyName":"Befrienders Highland","companyWebsite":"https://www.befriendershighland.org.uk/","companyDomain":"befriendershighland.org.uk","contactName":"Lindsey Standring","logoUrl":"https://static.wixstatic.com/media/349cf4_8d9837888af14ea8adc92892438a967d~mv2.png","attachmentUrl":"https://static.wixstatic.com/media/349cf4_42fad55f65504afbadfeb7050f1b5f88.pdf","location":"Inverness / Hybrid working","remote":true,"salary":{"currency":"GBP","min":44970,"max":44970,"raw":"Β£44,970 pro rata"},"salaryRaw":"Β£44,970 pro rata","hours":"21","workingPattern":"Part time","contractType":"1 year contract with option for renewal","employmentTypes":["Part time","1 year contract with option for renewal"],"status":"publish","postedDate":"2026-06-05T07:39:08.794Z","closingDate":"2026-06-21T23:00:00.000Z","closingDateText":"5pm on Monday 22nd June","modifiedDate":"2026-06-05T07:39:16.875Z","applyType":"external","applyUrl":"https://www.befriendershighland.org.uk/","applyEmail":"admin@befriendershighland.org.uk","externalApplyUrl":"https://www.befriendershighland.org.uk/","applyInstructions":null,"scrapedAt":"2026-06-05T08:20:12.991Z"}
π Key output fields
| Group | Fields |
|---|---|
| Identifiers | type, source, sourceProvider (wix-cms), aggregator (true), jobId (Wix _id), slug, jobUrl, scrapedAt |
| Content | title, description (HTML), descriptionText (plain) |
| Dates | postedDate (ISO from _publishDate), closingDate (ISO from deadlineSort), closingDateText (original wording), modifiedDate (ISO) |
| Organisation | companyName, companyWebsite, companyDomain, contactName, logoUrl, attachmentUrl (job-spec PDF when attached) |
| Location | location, remote (true when location mentions home/hybrid/remote) |
| Compensation | salary.{currency, min, max, raw}, salaryRaw, hours |
| Work pattern | workingPattern (Full/Part time), contractType (roleLength), employmentTypes[] |
| Apply flow | applyType, applyUrl, externalApplyUrl (posting org's own page), applyEmail, applyInstructions (free-text when no clean URL) |
β FAQ
Why is jobUrl always /vacancies?
Highland TSI doesn't host per-vacancy detail pages β it's an aggregator. The real "detail page" is the posting charity's own application page, which we capture in externalApplyUrl.
Why does closingDate differ from closingDateText?
closingDate is the machine-sortable ISO date from Wix's deadlineSort field. closingDateText is exactly how the charity wrote it (e.g. "5pm on Monday 22nd June") β useful for display, since some say "Ongoing" or include a time.
How fresh is the data?
The vacancy collection is embedded in the page's first paint, so it's as fresh as the live site. Combine with postedWithinHours: 24 for a daily run that only surfaces new postings.
Can I scrape board/trustee or volunteering opportunities too?
Yes β point startUrls at /board-opportunities or /volunteering-opportunities. They use the same Wix collection shape.
Can I scrape private pages or applicant data? No. Only the public /vacancies board that any visitor's browser renders.
π¬ Support
- For issues or feature requests, please use the Issues tab on the actor's Apify Console page.
- Author's website: https://muhamed-didovic.github.io/
- Email: muhamed.didovic@gmail.com
π Additional services
- Custom output shape, additional fields, or one-off datasets: muhamed.didovic@gmail.com
- Similar scrapers for other Scottish job boards (highlandjobs.scot, s1jobs, Goodmoves, ASVA): drop an email.
- For API access (no Apify fee, just usage): muhamed.didovic@gmail.com
π Explore more scrapers
See other scrapers at memo23's Apify profile β covering job boards, real estate, social media, and more.
β οΈ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Highland Third Sector Interface (HTSI), highlandtsi.org.uk, Wix.com, or any of their subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.
The scraper accesses only the publicly available /vacancies board on highlandtsi.org.uk β no authenticated endpoints, recruiter-only features, or content behind a login. Users are responsible for ensuring their use complies with highlandtsi.org.uk's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organisation.
SEO Keywords
highland tsi scraper, scrape highlandtsi.org.uk, highland third sector vacancies api, highland charity jobs scraper, scottish highlands charity jobs api, inverness charity jobs scraper, highland voluntary sector jobs, Apify highland tsi, wix cms scraper, wix collection scraper, highland third sector interface jobs, skye charity jobs scraper, dingwall charity jobs api, scottish charity recruitment data, highlandjobs alternative scraper, goodmoves alternative scraper, s1jobs alternative scraper, scottish third sector hiring data, highland community jobs scraper, charity vacancies aggregator scraper
