GitHub BR Tech Jobs Scraper
Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.
GitHub BR Tech Jobs Scraper
Scrapes Brazilian developer job boards from GitHub Issues across multiple community-curated repos (frontendbr/vagas, backend-br/vagas, react-brasil/vagas, python-brasil/vagas, and others). Parses free-text issue bodies into structured job records with location, tech stack, seniority, and employment type.
What it collects
Each record contains:
| Field | Description |
|---|---|
issue_number |
GitHub issue number |
title |
Raw issue title |
state |
open or closed |
poster_login |
GitHub username of the poster |
poster_avatar_url |
Avatar URL |
body_markdown |
Full job post body (markdown) |
parsed_role_title |
Role title extracted from the title |
parsed_company |
Company name if detectable |
parsed_location |
Location string (e.g. remoto, sao-paulo) |
parsed_is_remote |
true if the role is remote |
parsed_employment_type |
clt, pj, freelance, or estagio |
parsed_seniority |
junior, pleno, senior, or especialista |
parsed_tech_stack |
Comma-separated tech keywords from title + body |
labels |
Comma-separated GitHub labels |
comment_count |
Number of comments |
reactions_total |
Total reactions |
created_at |
ISO 8601 creation timestamp |
updated_at |
ISO 8601 last update timestamp |
closed_at |
ISO 8601 close timestamp (if applicable) |
source_url |
GitHub issue URL |
source_repo |
Source repository (e.g. frontendbr/vagas) |
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
repos |
array | ["frontendbr/vagas","backend-br/vagas","react-brasil/vagas","python-brasil/vagas"] |
GitHub owner/repo repos to scrape |
state |
string | open |
Issue state: open, closed, or all |
githubToken |
string | — | Optional GitHub Personal Access Token for 5,000 req/hr rate (vs 60/hr unauthenticated) |
maxItems |
integer | — | Maximum total records across all repos (0 = unlimited) |
Getting a GitHub token
No special scopes are needed for public repos. Create a classic token at github.com/settings/tokens with no permissions selected.
Supported repos
Any public GitHub repo that uses GitHub Issues as a job board works. Community repos known to follow this pattern:
frontendbr/vagas— Brazilian front-end jobs (~8k open issues)backend-br/vagas— Brazilian back-end jobsreact-brasil/vagas— React/React Native jobspython-brasil/vagas— Python jobscybersecurity-br/vagas— Cybersecurity jobs
Rate limits
| Mode | Limit |
|---|---|
| Unauthenticated | 60 requests/hr per IP |
| Authenticated (GitHub PAT) | 5,000 requests/hr |
For a default run of a few hundred records, unauthenticated access is sufficient. For full historical scrapes across many repos, provide a GitHub PAT.
Notes
- Pull requests are automatically filtered out (they appear in the GitHub Issues API response).
- The body parser follows community title conventions:
[CLT][Remoto] Role na Company. - Tech stack keywords are matched against a curated list of ~60 common BR dev technologies.