GitHub BR Tech Jobs Scraper
JOBSLEAD GENERATION
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.