One Nimble agent per use case
- A Nimble Web Search Agent is a research agent that runs on Nimble's platform.
- It takes a plain-text input and returns JSON in a fixed schema.
- Your Claude agents start a run with one API call and read the JSON when the run completes.
- Both agents read LinkedIn through Nimble's LinkedIn API: company pages, people search and full profiles.
- Each agent checks every person on that person's own LinkedIn experience before returning them.
Account mapping
- You send one company from your target list.
- The agent returns its people in user acquisition, marketing, creative, growth, monetization and leadership.
- Each person comes with a current title, seniority, start date and full career.
- A watch list of known profiles comes back as same, new title or left.
Talent search
- You send a role, with seniority, location and companies when you have them.
- The agent returns ranked candidates whose current title fits the role.
- Each candidate comes with a full career and one sentence on why they fit.
- Past-company filters find people who worked at a given studio.
Every run takes three steps
Resolve the company
The agent finds the LinkedIn company page and checks its website domain. Two companies can share a name, so the domain decides.
Search LinkedIn people
The agent runs a LinkedIn people search for each keyword of each department. The currentCompany filter limits each search to the company, and the agent reads up to 10 pages per search.
Check every profile
The agent reads each person's LinkedIn experience. It keeps a person only when a current position at the company fits the department.
Each person record holds these fields
| Field | What it holds |
|---|---|
full_name, linkedin_url, linkedin_id | The person and their LinkedIn profile. |
current_title | The title of the current position, taken from the experience section. |
department, seniority | Labels the agent sets from the title, from fixed lists. |
location | The location on the profile. |
current_role_start_date | The start month of the current position. |
experience | Every position on the profile, with company, title, start and end month. |
experience_status | Full, partial or not read in this run. |
last_refreshed | The date the run read the profile. |
The LinkedIn API covers profiles, filters and paging
| Question | Answer |
|---|---|
| Is there an endpoint that returns a full LinkedIn profile with experience? | Yes. GET /linkedin/v1/profile/{id}/experience returns every position with company, title and dates. Both agents call it for every person. |
| Can LinkedIn people search filter by current company and page? | Yes. search/people takes currentCompany with the numeric company ID and returns a cursor. The first page holds 5 people and later pages hold 10. One search for "user acquisition" at Playtika returned 90 people over 10 pages. |
| Does it search by title, seniority and location across companies? | Yes. search/people also takes title, locationUrns and pastCompany. The talent search agent uses them. |
| Is there a change feed or webhook? | No. Send your watch list with each monthly run. The account mapping agent reports each profile as same, new title, left company or not found. |
Call an agent from your code
- One POST starts a run and returns a run ID at once.
- Your code checks the run every 30 seconds until its status reads completed.
- The result endpoint returns the JSON under
output.content.
import os, time, requests BASE = "https://sdk.nimbleway.com/v2/agents" H = {"Authorization": f"Bearer {os.environ['NIMBLE_API_KEY']}"} AGENT = "wsa_3a8832ba8b7f4130bc26d721782887a4" # account mapping agent def run_agent(agent_id, text): run_id = requests.post(f"{BASE}/{agent_id}/runs", headers=H, json={"input": text}).json()["id"] while requests.get(f"{BASE}/{agent_id}/runs/{run_id}", headers=H).json()["status"] not in ("completed", "failed"): time.sleep(30) return requests.get(f"{BASE}/{agent_id}/runs/{run_id}/result", headers=H).json()["output"]["content"] result = run_agent(AGENT, "Company: Playtika, playtika.com. Departments: user_acquisition, creative.") for p in result["people"]: print(p["full_name"], p["current_title"], p["current_role_start_date"])
The agent IDs on this page belong to Nimble's test account. Your account gets its own IDs when we create the agents there.
Account mapping returns the people at a target company
You send
| Company | Name, website domain or LinkedIn company URL. Send the domain whenever you have it. |
| Departments | Any of user_acquisition, marketing, creative, growth, monetization and leadership. The default is all six. |
| Filters | Seniority, title keywords and country. All are optional. |
| Watch list | LinkedIn profile URLs to re-check. This is optional. |
Example run
People returned
| Name | Current title | Department | Seniority | Since | Career |
|---|
The run returns five sections
| Section | What it holds |
|---|---|
company | LinkedIn company ID, employee count, offices, and the count of people found per department and per seniority. |
people | One record per confirmed person, with the full career. |
watch_list | One row per profile you sent, with same, new title, left company or not found. |
searches | Every LinkedIn search the agent ran, with pages read and profiles returned. |
excluded | Profiles a search returned that the agent dropped, each with the reason. |
Full JSON of this run
Talent search returns ranked candidates for a role
You send
| Role | Role or title keywords. This is the only required field. |
| Seniority and location | For example manager and above, in New York. |
| Companies | Current companies, past companies or an industry such as mobile gaming. |
| Count | The number of candidates. The default is 25 and the maximum is 50. |
Example run
Candidates returned
| # | Name | Current title | Company | Why they fit |
|---|
The run returns four sections
| Section | What it holds |
|---|---|
search | The criteria as the agent read them, with the LinkedIn IDs it used for location and companies. |
candidates | One record per confirmed candidate, ranked, with the full career and a reason. |
searches | Every LinkedIn search the agent ran, with pages read and profiles returned. |
excluded | Profiles the agent dropped, each with the reason. |
Full JSON of this run
We set up both agents in your account and tune them with you
We create the agents
We create both agents in Sett's Nimble account under the same names. You call them with your own API key.
You run them on your list
Run account mapping on 5 to 10 companies from your target list. Run talent search on 2 or 3 open roles.
You send feedback
Send us the run IDs and what you want changed. We update the agents, and you run them again.
You can change these settings
| Setting | What we can change |
|---|---|
| Departments | The six departments and the search keywords for each one. Gaming terms such as LiveOps or ad monetization can move between departments. |
| Seniority | How titles map to seniority levels. |
| Fields | Fields you want added, renamed or removed in the JSON. |
| Run size | One run per company, or one run per company and department for large studios. |
| Ranking | How talent search orders candidates. |
We check the runs against your success criteria
| Criterion | Your target | How we measure it |
|---|---|---|
| Coverage | 90% or more | People returned, compared with the people LinkedIn shows for the company and department. |
| Accuracy | 95% or more | Share of returned people whose LinkedIn shows them at the company today. |
| Careers | 90% or more | Share of returned people with experience_status full. |
| Changes | Within one monthly cycle | The watch-list result of a re-run, compared with LinkedIn. |