To scrape tech jobs in San Francisco, open Datablist's Job Postings Search, choose the roles and job location you need, and import a small sample. You get a structured list of vacancies to review, filter and export without collecting postings one by one.
I would start with the role and work location. Those choices determine whether the list answers your recruiting or prospecting brief. A matching employer name alone does not establish that a vacancy belongs in your list.
If your brief specifies LinkedIn rather than an aggregated source, follow the LinkedIn job scraping workflow and compare keyword/location searches before enriching employers.
📌 Summary For Those In a Rush
Build a San Francisco tech job list you can use for recruiting or company research. Datablist brings matching postings into one collection so you can review the roles and move on to the next step.
- Input: the job titles, location and posting period you want.
- Output: a reviewed vacancy list with employer details, posting IDs and source links.
What This Guide Covers
- Why source coverage needs a review
- Configure and run the search
- Budget for postings and follow-up research
- Export the reviewed list
Check What the Job Search Covers
Datablist searches an aggregated job dataset rather than promising a fresh scrape of every board for every request. Multiple sources broaden discovery, but the result is still limited by indexed postings, your filters and source availability.
Companies Can Advertise in Several Places
An employer may publish a role on its own careers site and on one or more job boards. Preserve the posting identifier and source URL so you can check whether similar-looking records describe the same vacancy.
Coverage Extends Beyond a Single Board
The underlying provider describes its job sources and coverage limitations. Indexed public hiring is not a census of every open position. Do not use the returned row count as the total size of the local job market.
Search Multiple Job Sources with Datablist
The Job Postings Search source turns your filters into rows containing job and employer fields. Keep one vacancy per row during the first review; build an employer list separately if that is your final goal.
How to Scrape Tech Jobs in San Francisco: Step by Step
Step 1: Create a Collection
Open Datablist and create a New Collection for this search. Name it with the role family, location and search period so you can distinguish it from later imports.
Step 2: Open Job Postings Search
Choose Job Postings Search from the source selection. The screenshots below illustrate the interface with an earlier New York search. Enter the San Francisco settings described here; do not copy the city or titles from the screenshot.
Step 3: Configure Your Filters
Use this starting configuration, then narrow it after reviewing a sample:
- Job Title Keywords:
software engineer, data engineer, product designer. - Job Locations:
San Francisco. - Countries:
United States. - Company Type: Direct Employer when you want to exclude recruiting agencies.
- Max Age: Last 15 days for a recent-postings list.
- Limit:
25as a small review sample, not a guaranteed result count.
Title phrases are separated by commas. A title can match any phrase, and all words in a phrase must occur, regardless of their order. Use actual role names rather than a vague sector word.
Job Locations filters where the job is located. Company HQ Locations filters the employer's headquarters. Keep them separate unless both are part of your brief. Workplace Types lets you distinguish on-site, hybrid and remote work; read eligibility restrictions in the posting before accepting a remote role.
For a fixed reporting period, use Posted On or After and Posted On or Before. An exact date range overrides Max Age. The Job Status filter defaults to open jobs; still check the original listing before acting on it.
Search by the role you need
Start with software engineer, data engineer, product designer for a mixed technical and product-design list, or run one family at a time when you need cleaner comparisons. A broad keyword such as tech can miss vacancies whose titles name the function without using that word.
For accounting or financial-analysis roles, the San Francisco finance-job guide uses a different title set; keep that list separate from technical vacancies.
Use description keywords for skills such as Python or Kubernetes when those skills are required. The default description search matches whole words; keep regex disabled for simple terms. Check the first results before combining several criteria, because an overly narrow search can hide relevant roles.
Separate city, Bay Area and remote jobs
A San Francisco employer can advertise a position in Oakland, San Jose or another state. Filter the job location for a city-specific list; use Company HQ Locations only when headquarters is part of your brief.
Keep nearby cities as separate segments, and review remote jobs separately for country, state and time-zone eligibility. A Remote label alone does not prove an applicant in San Francisco can take the position.
For a hiring-signal list, retain the role and employer together. Three technical vacancies at one company can be useful evidence of different hiring needs. Deduplicating on company domain alone would discard that distinction.
Step 4: Keep the Outputs Needed for Review
Map the fields you need to collection properties. Optional company, salary and hiring-manager fields can be empty; do not treat a missing value as proof that the company has no relevant contact or that the role is unpaid.
| Purpose | Fields to keep |
|---|---|
| Identify the vacancy | Job Posting Id, Job Title, Job Posting URL, Job Posting Source URL |
| Check fit | Job Description, Job Location, Job Country, Workplace Type, Job Seniority |
| Review freshness and pay | Date Posted, Closed At, Salary Range, Job Type |
| Identify the employer | Company Name, Company Website, Company LinkedIn URL |
| Optional contact research | Hiring Manager Name, Hiring Manager Job Title, Hiring Manager LinkedIn |
Step 5: Run the Sample Search
Review the settings and mapped outputs, then choose Run Import Now. Completion time depends on the search and provider response. Wait for the task result and inspect errors before expanding the search.
Step 6: Accept the Vacancies That Fit
Open a few source URLs and compare the title, location, posting date and availability with your brief. Add your own review decision to keep accepted, excluded and uncertain rows separate.
The following examples are illustrative decisions, not measured scraper results:
| Example title | Example location | Review decision |
|---|---|---|
| Software Engineer | San Francisco; Hybrid | Keep after checking office attendance |
| Data Engineer | United States; Remote | Review location restrictions in the remote segment |
| Product Designer | Oakland; On-site | Keep only in a separate wider-Bay-Area segment |
Keep different job IDs for different vacancies at the same company. Do not merge rows just because the employer domain repeats. Before reimporting an overlapping period, check the uniqueness or merge settings for Job Posting Id. Scheduled imports can otherwise add the same posting again.
If you already have a company list, use the source's company-list filter and map the appropriate company property. The general job-board workflow explains that alternative.
Budget for Postings and Follow-up Research
The current source cost is 10 credits per imported job posting. As budget arithmetic, 25 imported postings use 250 credits and 100 use 1,000 credits. Filters, available matches, your balance and run limits affect how many rows you receive; a credit budget does not guarantee the same number of suitable vacancies.
Cost Breakdown by Use Case
Job Postings Only
Check the available credits and the run estimate before expanding the sample. The current plan and credit options show subscription access and top-up choices. Keep the search cost separate from any later enrichment.
Job Postings and Contact Research
A job posting can identify a hiring employer without identifying the right person to contact. Review the company first, then research the relevant role. An AI lookup has variable usage; do not budget a fixed amount per CEO or assume every lookup returns a verified contact.
Use the Results for Your Next Task
Export vacancies for recruiting, or create a reviewed employer list for research. If you need outreach details, find the appropriate contacts after establishing the employer and purpose. Preserve the source evidence alongside the result.
For repeat searches, record the posting window and keep stable IDs. Scheduling access is described in the plan comparison, and repeat imports need their own duplicate handling.
Export a Reviewed Job List
Export accepted rows with the role, location segment, posting date, job ID and source link. Keep uncertain remote eligibility, missing fields and unavailable postings out of the accepted export until they have been checked.
Frequently Asked Questions
Will the search find every local vacancy?
No. It searches indexed postings from multiple sources. Coverage can vary by role, location and source; a result limit is not a complete-market count.
Does the job search include emails and phone numbers?
Hiring-manager fields can be available, but verified email addresses and phone numbers are not guaranteed job-search outputs. Research the correct contact and use a separate enrichment when needed.
Can I refresh the list each week?
Yes, with the appropriate scheduling access and settings. Use a new posting period and review repeated job IDs. A scheduled import does not automatically establish that every returned vacancy is new or still open.
Can I filter jobs from specific companies?
Use Filter Job Postings for a specific list of Companies and map company websites, names or LinkedIn company URLs from a collection. Other filters can narrow the list further; an empty result is not proof that a company is not hiring.
What should I check before reusing the data?
Check the source terms and the rules applying to your use. Publicly visible postings do not establish unrestricted reuse. For personal data covered by the GDPR, the CNIL guidance on reusing online data explains the obligations.












