How to use an existing agent
Claude sends the task, the agent completes it
When a question in Claude needs web research, Claude hands it to a Nimble Web Search Agent through the Nimble connector. The agent completes the task, not just the search: it browses, reads, decides what counts and comes back with the finished result. Use agents for research, enrichment and dataset building: a cited report, records you already want enriched with new fields, or a dataset built from scratch in the schema you need.
Ask Claude in plain words
Name the agent and the subject: a brand and a retailer, a role and a company, a product and a date window. Claude starts the run.
Nimble runs the agent
The agent reads the sites its instructions allow and works until the task is done. Claude polls until it finishes.
The result comes back in Claude
A cited report or structured data in the requested schema, with evidence and confidence attached.
Why Nimble agents
Built for repeatable research, not one-off searches
The task gets completed
The agent browses, reads, decides what counts and returns the finished result: a cited report, a dataset or enriched records. No links to follow up.
Agents learn and improve over time
Each agent keeps its instructions, sources and schema. When a run shows a gap, the instructions are tuned and every later run benefits; the four agents here were refined this way on real runs.
Costs fixed per request type
A run is priced by its effort level, not by tokens or pages read. The cost of a task is known before it starts, however many sites the agent visits.
Evidence on every result
Every value carries a source URL and every run a confidence grade, so findings can be audited claim by claim.
Same columns every run
An agent's output schema is fixed, so results from different companies, products or months line up without rework.
Runs in parallel, from Claude
Twenty companies or forty product-quarters are started together from one conversation; nothing to host or schedule.
Documentation
Read more
Example use cases
Four tasks the Consumer team asked for
Pick a use case. Each shows what the user says in Claude, what the agent returns, the result files and a sample of the rows.
Medik8 on lookfantastic.com
Price / SKU tracking
Every product on a retailer brand listing, one row per product page: price, promotion, stock, size, rating, reviews.
The user asks in Claude
Claude starts the agent
Claude passes the listing to the agent through the Nimble connector and polls until the run finishes.
Task the agent receives
Retailer: lookfantastic.com (UK site). Listing: https://www.lookfantastic.com/c/brands/medik8/view-all-medik8/ . Read every page of the listing, then return PDP data for every Medik8 product listed, one row per listing tile.
The agent completes the task
The agent reads every page of the Medik8 listing, notes the product count the listing reports, then opens each product page and reads price, struck-through price, promotion text, stock, size, rating and review count from the page itself. Before finishing it checks that it has one row for every listing position.
The result comes back
One row per listing tile, in the schema below.
Given a retailer and a category or brand listing (URL or name), enumerates every product listed and returns one row of product detail page (PDP) data per product: identity, price, promotion, stock, size, rating, reviews and category path, each taken from the retailer's own PDP.
Result files
| File | What it holds | Confidence |
|---|---|---|
| medik8_lookfantastic_pdp_2026-10-14.csv | Snapshot, one row per SKU | high |
| price_history.csv | Long-form monthly price database (first month) | high |
| schema.csv | Field, type, required and description for every column | |
| retail-pdp-from-category.json | The agent definition: instructions, output schema and sources |
Confidence is the agent's own grade of how consistently the returned values are backed by their citations (high, medium or low), given per run. Where a file merges several runs, the share of rows from each grade is shown.
Sample: first 10 rows of medik8_lookfantastic_pdp_2026-10-14.csv
| listing_position | product_name | price | was_price | promotion_text | in_stock | size | rating | review_count |
|---|---|---|---|---|---|---|---|---|
| 1 | The LOOKFANTASTIC Beauty Advent Calendar (Worth Over £665) | 120.00 | As a Beauty Plus+ member, enjoy Double +Points when you purchase selected our Beauty Adve… | True | 4.96 | 24 | ||
| 2 | Medik8 Crystal Retinal 6 | 55.20 | 69.00 | Save 20% | Save £13.80 ( 20% Off ) | True | 4.72 | 4157 | |
| 3 | Medik8 Liquid Peptides Advanced MP 30ml | 65.60 | 82.00 | Save 20% | Save £16.40 ( 20% Off ) | True | 30ml | 4.7 | 2377 |
| 4 | Medik8 Total Moisture Daily Cleansing Gel 145ml | 29.00 | True | 145ml | 4.77 | 918 | ||
| 5 | Medik8 Exosome-PDRN Prismatic+ Serum 30ml | 63.20 | 79.00 | Save 20% | (20% Off) | True | 30ml | 4.79 | 1228 |
| 6 | Medik8 Retinal Recharge (Worth £92) | 64.00 | True | |||||
| 7 | Medik8 Nighttime Nourish (Worth £70) | 49.00 | True | |||||
| 8 | Medik8 Moisture Minis (Worth £40) | 28.00 | True | |||||
| 9 | Medik8 Age Defying Essential (Worth £151) | 113.00 | True | 5.0 | 2 | |||
| 10 | Medik8 Rejuvenation Routine (Worth £112) | 85.00 | True |
Repeating the task
Run the same request on the first of each month and append the rows to price_history.csv: a forward-looking price and promotion series per SKU, starting from the first month run.
Schema (21 fields)
| field | type | required | description |
|---|---|---|---|
| size | string|null | False | |
| brand | string | True | Brand shown on the PDP. On a brand listing, retailer gift sets, advent calendars or other cross-brand tiles keep their true brand here so they can be filtered … |
| price | string | True | Current PDP price, number only |
| rating | string|null | False | |
| currency | string | True | |
| in_stock | boolean | True | |
| retailer | string | True | Retailer domain, e.g. lookfantastic.com |
| image_url | string|null | False | |
| was_price | string|null | False | Struck-through or RRP price shown on PDP |
| listing_url | string | False | Category or brand listing URL the product was found on |
| observed_at | string | True | |
| product_url | string | True | Canonical PDP URL without tracking parameters |
| product_name | string | True | |
| review_count | string|null | False | |
| category_path | string|null | False | |
| variant_count | string|null | False | |
| promotion_text | string|null | False | |
| is_listing_brand | boolean|null | False | True if the product's brand matches the brand of the listing (for brand listings); null for category listings |
| listing_position | string|null | False | 1-based position on the listing in default sort |
| retailer_product_id | string|null | False | |
| listing_total_reported | string|null | False | Product count the listing page itself reports |
Forward Deployed Engineers, 20 companies
Talent mapping
How many people hold a given role at each company, from public LinkedIn data, with the company’s own alias title counted separately.
The user asks in Claude
Claude starts the agent
Claude passes the company name and website to the agent, one company per run, and starts the runs in parallel.
Task the agent receives
Role: Forward Deployed Engineer. Apply the fixed title definition, find each company's own alias title for the role, partition capped searches, and report search_complete for each company.
The agent completes the task
The agent finds the company's LinkedIn page, runs the fixed title searches (Forward Deployed Engineer and its variants) with the current-company filter, partitions a search by region and seniority when it hits LinkedIn's page cap, checks the company's own title for the role on its careers site and counts it separately, then de-duplicates profiles and records whether every search ran to its last page.
The result comes back
One row per company: headcount, managers, the alias title and its count, sample profiles and the search_complete flag.
Enrichment: for each company row and a target role (e.g. Forward Deployed Engineer), counts people currently holding that role per public LinkedIn data using one fixed title definition, plus managers within it, the company's own alias title for the role and its headcount (reported separately), search completeness, total LinkedIn employees and sample profiles. Run in batches of at most 5 companies so every title search completes.
Result files
| File | What it holds | Confidence |
|---|---|---|
| fde_headcount_by_company_2026-10-15.csv | One row per company | medium 75% · low 15% · high 10% |
| schema.csv | Field, type, required and description for every column | |
| linkedin-role-headcount.json | The agent definition: instructions, output schema and sources |
Confidence is the agent's own grade of how consistently the returned values are backed by their citations (high, medium or low), given per run. Where a file merges several runs, the share of rows from each grade is shown.
Sample: first 10 rows of fde_headcount_by_company_2026-10-15.csv
| company_name | role_headcount | role_headcount_floor | managers_count | company_role_name | alias_headcount | search_complete | company_total_employees_linkedin |
|---|---|---|---|---|---|---|---|
| OpenAI | 66 | 66 | 8 | False | 11490 | ||
| Databricks | 250 | 250 | 12 | False | 14167 | ||
| ElevenLabs | 64 | 64 | 3 | Deployment Strategist | 19 | False | 1515 |
| Scale AI | 36 | 36 | 4 | Frontier Agents Engineer | 2 | False | 7485 |
| Rippling | 25 | 25 | 1 | True | 7889 | ||
| Cohere | 8 | 15 | 0 | True | 1271 | ||
| Anthropic | 10 | 10 | 5 | True | 6244 | ||
| Ramp | 9 | 9 | 0 | True | 2900 | ||
| Cognition | 15 | 15 | 0 | Deployed Engineer | 24 | False | 642 |
| Glean | 4 | 4 | 0 | True | 1760 |
Repeating the task
Add companies by sending more names; re-run a company to refresh its count. The same agent answers for any role, not only Forward Deployed Engineer.
Schema (15 fields)
| field | type | required | description |
|---|---|---|---|
| role | string | True | |
| notes | string|null | False | |
| company_name | string | True | |
| count_method | string | True | How the count was obtained, e.g. 'LinkedIn people search result count, current company + title' or 'profiles enumerated' |
| managers_count | integer|null | False | How many of role_headcount hold a manager/lead/head title |
| role_headcount | integer|null | True | People currently in the role at this company per public LinkedIn data; null if not determinable |
| alias_headcount | integer|null | False | People currently holding company_role_name at the company (counted separately, NOT included in role_headcount) |
| search_complete | boolean | False | true only if every title variant search was run to its last page and no search hit a page cap |
| company_role_name | string|null | False | The company's own title for the same customer-embedded engineering role if it differs (e.g. 'Agent Deployment Engineer'), else null |
| sample_profile_urls | string|null | False | Up to 3 LinkedIn profile URLs of people counted, '; ' separated |
| company_linkedin_url | string|null | False | |
| title_variants_counted | string | True | Exact title strings included in the count, '; ' separated |
| company_role_name_source | string|null | False | URL showing the company uses that title (careers page, job posting or company blog) |
| company_total_employees_linkedin | integer|null | False | Employee count shown on the company's LinkedIn page |
| role_headcount_floor | integer | False | Highest distinct-profile count seen for the company across the single-company, batch and single-thread runs; the best lower bound |
Medik8 C-suite and N-1
Leadership backgrounds
Current C-suite executives and their N-1 reports, one row per person, each with a dated, cited career history.
The user asks in Claude
Claude starts the agent
Claude passes the company (name, website, registry number where known) to the agent and polls until the run finishes.
Task the agent receives
Companies: Medik8 (UK skincare brand, medik8.com; legal entity Medik8 Limited, Companies House 03783618; majority-owned by L'Oreal since 2025). Return the current C-suite executives AND their N-1 reports (Managing Directors, VPs, Directors and Heads of function), each with level, reports_to where stated, and their previous roles.
The agent completes the task
The agent resolves the legal entity, reads the company's leadership and careers pages, the Companies House officer list, appointment press releases and LinkedIn profiles, confirms each current title with a dated public source, assigns a level (C-suite or N-1), and lists each person's previous roles with employer, title, years and a citation.
The result comes back
One row per leader with level and current title, and one row per previous role.
For each company named in the input, identifies the current C-suite executives and their N-1 reports (Managing Directors, VPs, Directors and Heads of function) and returns one row per person with level, current title and a dated, cited list of previous roles (employer, title, start and end year).
Result files
| File | What it holds | Confidence |
|---|---|---|
| medik8_leadership_2026-10-15.csv | One row per leader with level | high |
| medik8_leadership_career_history_2026-10-15.csv | One row per previous role | high |
| schema.csv | Field, type, required and description for every column | |
| csuite-career-history.json | The agent definition: instructions, output schema and sources |
Confidence is the agent's own grade of how consistently the returned values are backed by their citations (high, medium or low), given per run. Where a file merges several runs, the share of rows from each grade is shown.
Sample: first 10 rows of medik8_leadership_2026-10-15.csv
| level | executive_name | current_title | start_year_current_role | n_previous_roles | current_title_source_url |
|---|---|---|---|---|---|
| C-suite | Simon Coble | Chief Executive Officer (CEO) | 2023 | 5 | https://medik8.com/blogs/medik8-in-the-press/m… |
| C-suite | Lilia Santos | Chief Financial Officer (CFO) | 2016 | 5 | https://careers.medik8.com/people/2003131-lili… |
| C-suite | Daniel Isaacs | Chief Product Officer – Research & Development (Founding Partner) | 2011 | 0 | https://careers.medik8.com/people/2003133-dani… |
| C-suite | Antony Proctor | Chief Operations Officer (COO) | 2024 | 10 | https://www.linkedin.com/company/medik8/posts/… |
| C-suite | Kingsley Richardson | Chief Supply Chain Officer – Operations & Supply Chain | 2019 | 5 | https://careers.medik8.com/people/2003130-king… |
| C-suite | Holly Tomlin | Chief Brand Officer – Global Customer Experience | 0 | https://careers.medik8.com/people/2003135-holl… | |
| N-1 | Christopher Young | Vice President of Sales, North America – Global Markets US | 2026 | 6 | https://careers.medik8.com/people/3995060-chri… |
| N-1 | Selin Bozkaya Ketchum | Global Brand Director – Global Customer Experience | 2026 | 6 | https://careers.medik8.com/people/4355761-seli… |
| N-1 | Kamal Anwar | Head of Quality – Governance | 2023 | 0 | https://careers.medik8.com/people/2003119-kama… |
| N-1 | Gabriele Dadalt | Head of Formulation – Research & Development | 0 | https://careers.medik8.com/people/2003120-gabr… |
Repeating the task
Run per company. Re-run after a leadership announcement to pick up the change.
Schema (17 fields)
| field | type | required | description |
|---|---|---|---|
| notes | string|null | False | Ambiguities, gaps or interim status |
| company_name | string | True | Company name as given in the input |
| linkedin_url | string|null | False | |
| current_title | string | True | |
| company_domain | string|null | False | |
| executive_name | string | True | |
| previous_roles | array | True | |
| previous_roles[].title | string | True | |
| previous_roles[].employer | string | True | |
| previous_roles[].end_year | string|null | False | |
| previous_roles[].source_url | string | True | |
| previous_roles[].start_year | string|null | False | |
| start_year_current_role | string|null | False | |
| current_title_source_url | string | True | Company leadership page, filing or press release confirming the current role |
| level | string | False | C-suite, N-1 or N-2 (from the run-level skill override on 2026-10-15) |
| reports_to | string|null | False | Name of the manager when a public source states it |
| n_previous_roles | integer | False | Count of previous_roles |
Medik8 reviews, Oct 2025 to Sep 2026
Customer sentiment
Every review on a retailer product page in a date window, copied as displayed and tagged with a fixed feature taxonomy; the time series and liked features come from counting them.
The user asks in Claude
Claude starts the agent
Claude passes the retailer, the product page and the date window to the agent, one run per product, retailer and quarter, and starts the runs in parallel.
Task the agent receives
Retailer: lookfantastic.com. Product: Medik8 Crystal Retinal 6 (product ID 11899386). Product page: https://www.lookfantastic.com/p/medik8-crystal-retinal-6/11899386/ . Window: 2026-07-01 to 2026-09-30. Return every review published in the window, one row per review.
The agent completes the task
The agent opens the product's review pages on the retailer site, pages through them newest first until it passes the start of the window, copies every review as displayed (date, stars, title, text, verified flag), checks page continuity, then tags each review with the liked and criticised features from a fixed taxonomy.
The result comes back
One row per review, plus the monthly series and feature counts built from them.
For a retailer, product and date window, returns every customer review published in the window on that retailer's product page, one row per review, with date, star rating, title, text, verified flag and source page, plus liked and criticised features tagged from a fixed, versioned skincare taxonomy (v1). Stars, dates and text are copied exactly; tags are in separate fields.
Result files
| File | What it holds | Confidence |
|---|---|---|
| medik8_reviews_2025-10_to_2026-09.csv | One row per review (8,501 rows, 3.6 MB) | medium 73% · high 27% |
| monthly_sentiment_timeseries.csv | Month × retailer: count, average stars, net sentiment | medium 73% · high 27% |
| product_month_pivot.csv | Product × month counts and averages | medium 73% · high 27% |
| top_liked_features.csv | Liked-feature labels, agent and keyword counts | medium 73% · high 27% |
| top_criticised_features.csv | Criticised-feature labels | medium 73% · high 27% |
| schema.csv | Field, type, required and description for every column | |
| retail-review-history.json | The agent definition: instructions, output schema and sources |
Confidence is the agent's own grade of how consistently the returned values are backed by their citations (high, medium or low), given per run. Where a file merges several runs, the share of rows from each grade is shown.
Sample: first 10 rows of medik8_reviews_2025-10_to_2026-09.csv
| retailer | product_name | review_date | stars | review_title | verified_purchase | liked_features | criticised_features |
|---|---|---|---|---|---|---|---|
| cultbeauty.com | Medik8 Advanced Night Restore | 2025-10-04 | 5 | Magic! | True | ||
| cultbeauty.com | Medik8 Advanced Night Restore | 2025-10-13 | 5 | One of the best ! | True | ||
| cultbeauty.com | Medik8 Advanced Night Restore | 2025-10-13 | 4 | Stubborn wrinkle | True | ||
| cultbeauty.com | Medik8 Advanced Night Restore | 2025-10-16 | 5 | Night staple | False | ||
| cultbeauty.com | Medik8 Advanced Night Restore | 2025-10-19 | 5 | Good night cream base | True | ||
| cultbeauty.com | Medik8 Advanced Night Restore | 2025-10-21 | 4 | Great product, but don't like the packaging | False | ||
| cultbeauty.com | Medik8 Advanced Night Restore | 2025-10-29 | 5 | Perfect! | True | ||
| cultbeauty.com | Medik8 Advanced Night Restore | 2025-10-30 | 5 | Holly grail produkt | True | ||
| cultbeauty.com | Medik8 Advanced Night Restore | 2025-10-30 | 5 | The best! | True | ||
| cultbeauty.com | Medik8 Advanced Night Restore | 2025-11-03 | 5 | Great | True |
Repeating the task
Each new quarter is one more run per product and retailer; the monthly series extends as the rows are added.
Schema (17 fields)
| field | type | required | description |
|---|---|---|---|
| stars | integer | True | Star rating 1-5 exactly as shown |
| author | string|null | False | |
| retailer | string | True | Retailer domain |
| product_id | string | True | |
| source_url | string | True | URL of the page the review was read from |
| review_date | string | True | YYYY-MM-DD exactly as shown on the review |
| review_text | string|null | False | Review body, first 400 characters |
| product_name | string | True | |
| review_title | string|null | False | |
| liked_features | string | False | Semicolon-separated LIKED labels from the fixed taxonomy (4-5 star reviews only), or empty |
| pdp_rating_avg | number|null | False | Overall average rating shown on the PDP at read time |
| pdp_review_count | integer|null | False | Total review count shown on the PDP at read time |
| taxonomy_version | string | False | Always the string v1 |
| variant_mentioned | string|null | False | Product strength or size the reviewer says they used, if stated (e.g. 'Retinal 3') |
| verified_purchase | boolean|null | False | |
| criticised_features | string | False | Semicolon-separated CRITICISED labels from the fixed taxonomy, or empty |
| syndicated_duplicate | boolean | False | True if the same author, date and text already appears under another product on the same retailer (lookfantastic syndicates reviews across related products); e… |
Creating your own agent
A new question becomes a new agent in one conversation
The four agents here were built the same way any new one is. In Claude, describe the task and Claude creates the agent through the Nimble connector; from then on it runs like the examples.
What Claude sets on the agent
- Skill: the instructions in your words: what counts, what to exclude, how to cite.
- Output schema: the columns you named, so every run returns the same table.
- Sources: sites to prefer or avoid.
- Effort: how long and deep a run goes.
Run it once on a known example and ask Claude to adjust the instructions if anything is off. Nimble can also build and tune agents, as with these four.
Documentation