Research dashboards
Pin research cards to a dashboard, share it by link, and pull any card into Airtable, Google Sheets, Make, n8n or Zapier as CSV or JSON.
A dashboard holds research cards: tables, rankings, trends and headline numbers that a research answer produced. Each card keeps its query and refreshes when the dashboard is opened, or one of its URLs below is fetched, and the values are older than six hours; or when someone presses Refresh (once every 15 minutes per dashboard). A fetch that finds stale values returns them and starts the refresh, so the next fetch is current. Dashboards live under Dashboards in the dashboard; a research agent's page shows its own.
Who can do what
- Members of a workspace see its dashboards and download any card as CSV.
- Owners and admins pin cards, arrange and resize them, refresh, and share.
- Sharing by link makes a read-only copy at
jobspipe.dev/d/<id>that anyone with the link can open. Stop sharing and the link dies.
Download a card
Every card has a download icon. Tables come out with the signal column first and one row per item; rankings, shares and trends come out as label and value columns. Cells that start with =, +, - or @ are prefixed with an apostrophe so a spreadsheet shows them as text instead of running them.
Pull a card by URL
Each card also has a URL that returns the same values, for sheets and automation tools that fetch on a schedule.
For a shared dashboard the URL needs no key. Take the share link https://jobspipe.dev/d/<shareId>; the dashboard's JSON at https://api.jobspipe.dev/v1/research/dashboards/shared/<shareId> lists every card with its placement_id. Then:
https://api.jobspipe.dev/v1/research/dashboards/shared/<shareId>/cards/<placementId>/export.csv
https://api.jobspipe.dev/v1/research/dashboards/shared/<shareId>/cards/<placementId>/export.jsonFor a dashboard that is not shared, use a workspace API key and the dashboard id:
curl -H "Authorization: Bearer $JOBSPIPE_API_KEY" \
"https://api.jobspipe.dev/api/research/dashboards/<dashboardId>/cards/<placementId>/export.csv"The JSON form is { "title", "kind", "refreshed_at", "columns": [...], "rows": [[...], ...] }. Both forms carry only the card's values, never its query. Pulling a URL costs no credits.
Google Sheets
In a cell: =IMPORTDATA("https://api.jobspipe.dev/v1/research/dashboards/shared/<shareId>/cards/<placementId>/export.csv"). Sheets refreshes it about once an hour.
Airtable
Airtable's CSV import is manual, so use an automation tool to upsert rows on a schedule:
- Make: HTTP module → Get a file on the CSV URL, Parse CSV, then Airtable Upsert a record matched on the
WebsiteorCompanycolumn. - n8n: HTTP Request → Extract from File (CSV) → Airtable node, operation Upsert, matching column
Website. Our n8n node covers the jobs API; this step only needs the HTTP node. - Zapier: Webhooks by Zapier GET on the JSON URL gives the whole table in one step; use a Code step to turn
rowsinto one item per row before the Airtable action, or prefer Make or n8n, which loop over rows natively.
A signals table carries a Week of column, so matching on Website (or Company) plus Week of stacks week over week, while matching on Website alone keeps one current row per firm.
Other tools
Anything that can fetch a URL on a schedule works the same way: Excel Get Data from Web, Retool, Power Automate, or a script. Prefer the shared-dashboard URL where a tool cannot send headers; keep the API-key form for tools that can.
Signals & Workflows
Save a search as a Signal and get new matching jobs or companies, or companies that start hiring for a technology, by email, Slack or webhook, or start from a Workflow template.
Slack
Search jobs and scan tech stacks from Slack with /jobspipe and @JobsPipe mentions, and send Signals to a Slack channel.